If-Koubou

Разбиране на процеса на наблюдение

Разбиране на процеса на наблюдение (Как да)

Днес в това издание на Geek School ще ви научим как инструментът за мониторинг на процесите ви позволява да надничате под капака и да видите какви са вашите любими приложения в действителност зад кулисите - до какви файлове те влизат, използване и др.

УЧИЛИЩНА НАВИГАЦИЯ
  1. Какви са SysInternals Tools и как ги използвате?
  2. Разбиране на процеса Explorer
  3. Използване на Process Explorer за отстраняване на неизправности и диагностика
  4. Разбиране на процеса на наблюдение
  5. Използване на процесния монитор за отстраняване на неизправности и откриване на системни хакове
  6. Използване на автомати за работа с процеси на стартиране и злонамерен софтуер
  7. Използване на BgInfo за показване на информация за системата на работния плот
  8. Използване на PsTools за управление на други компютри от командния ред
  9. Анализиране и управление на вашите файлове, папки и дискове
  10. Обвиване и използване на инструментите заедно

За разлика от помощната програма Process Explorer, която прекарахме в продължение на няколко дни, Process Monitor трябва да бъде пасивен поглед към всичко, което се случва на вашия компютър, а не активен инструмент за убиване на процеси или затваряне на дръжки. Това е като да погледнете глобален лог файл за всяко събитие, което се случва на компютъра ви с Windows.

Искате ли да разберете кои ключове в регистъра в любимото ви приложение всъщност съхраняват настройките си? Искате да разберете какви файлове докосват дадена услуга и колко често? Искате ли да видите кога приложение се свързва с мрежата или отваря нов процес? Това е Process Monitor за спасяване.

Вече не правим много статии за хак на системния регистър, но когато започнахме, ще използваме Process Monitor, за да разберем кои ключове в системния регистър са били достъпни и след това да ощипваме тези ключове в системния регистър, за да видим какво ще се случи. Ако някога сте се чудили как някой измислил някакъв регистър, който никой никога не е виждал, вероятно е бил чрез Process Monitor.

Помощната програма Process Monitor е създадена чрез комбинирането на две различни помощни програми за старата школа, Filemon и Regmon, които се използват за наблюдение на файлове и регистърна дейност, както предполагат техните имена. Докато тези комунални услуги все още са на разположение там и докато те биха могли да отговарят на вашите конкретни нужди, ще бъдете много по-добре с Process Monitor, защото може да се справи с голям обем събития по-добре поради факта, че е проектиран да го направи ,

Заслужава да се отбележи, че Process Monitor винаги изисква администраторски режим, защото зарежда драйвера на ядрото под капака, за да заснеме всички тези събития. В Windows Vista и по-късно ще бъдете подканени от диалогов прозорец UAC, но за XP или 2003, ще трябва да сте сигурни, че използваният от вас профил има администраторски права.

Събитията, които обработват монитора

Мониторът за процес събира тон от данни, но не заснема всяко нещо, което се случва на вашия компютър. Например Process Monitor не ви пука, ако движите мишката наоколо, и не знае дали вашите драйвери работят оптимално. Тя няма да следи кои процеси са отворени и че губите CPU на компютъра си - това е задачата на Process Explorer, в края на краищата.

Това, което прави, е да улавяте конкретни видове операции вход / изход (вход / изход), независимо дали те се случват чрез файловата система, регистъра или дори мрежата. Освен това ще следи още няколко други събития в ограничена степен. Този списък обхваща събитията, които е заснел:

  • регистратура - това може да бъде създаването на ключове, четенето им, изтриването им или заявката им. Ще се изненадате колко често това се случва.
  • Файлова система - това може да бъде създаване на файлове, писане, изтриване и т.н., и то може да бъде както за локални твърди дискове, така и за мрежови устройства.
  • мрежа - това ще покаже източника и местоназначението на трафика TCP / UDP, но за съжаление не показва данните, което го прави малко по-малко полезно.
  • процес - Това са събития за процеси и нишки, в които се стартира процес, започва или излиза нишка и т.н. Това може да е полезна информация в определени случаи, но вместо това често е нещо, което бихте искали да погледнете в Process Explorer.
  • профилиране - Тези събития се заснемат от Process Monitor, за да проверят количеството време на процесора, използвано от всеки процес, и използването на паметта. Отново бихте искали да използвате Process Explorer за проследяване на тези неща през повечето време, но е полезно тук, ако имате нужда от него.

Така че процесният монитор може да заснеме всякакъв тип I / O операция, независимо дали това се случва чрез регистъра, файловата система или дори мрежата - въпреки че действителните данни, които са написани, не са заснети. Просто гледаме на факта, че процесът пише в един от тези потоци, за да можем по-късно да разберем повече за това, което се случва.

Интерфейсът за мониторинг на процесите

Когато заредите интерфейса за процесния монитор, ще получите огромен брой редове от данни, с по-бързо подаване на данни и това може да бъде преобладаващо. Ключът е да имате поне някаква представа за това, което търсите, както и за това, което търсите. Това не е видът на инструмента, който прекарвате в релаксиращ ден, докато преглеждате, защото в рамките на много кратък период от време ще видите милиони редове.

Първото нещо, което ще искате да направите, е да филтрирате тези милиони редове до много по-малката подгрупа от данни, които искате да видите, и ще ви научим как да създавате филтри и нула точно за това, което искате да намерите , Но първо трябва да разберете интерфейса и какви данни всъщност са налични.

Преглеждайки колоните по подразбиране

Колоните по подразбиране показват тон полезна информация, но определено ще ви е необходим контекст, за да разберете какви данни всъщност съдържа, защото някои от тях може да изглеждат като нещо лошо, когато те са наистина невинни събития, които се случват през цялото време качулка. Ето какво се използва за всяка от стандартните колони:

  • път - тази колона е доста ясна, показва точното време, в което е настъпило събитие.
  • Име на процеса - името на процеса, генериращ събитието. Това не показва пълния път към файла по подразбиране, но ако задържите курсора на мишката върху полето, можете да видите точно кой е бил той.
  • PID - идентификационния процес на процеса, генериращ събитието. Това е много полезно, ако се опитвате да разберете кой процес svchost.exe генерира събитието. Това също е чудесен начин да се изолира един процес за мониторинг, като се предположи, че процесът не се стартира отново.
  • операция - това е името на операцията, която се регистрира, и има икона, която съвпада с един от типовете събития (регистър, файл, мрежа, процес). Те могат да бъдат малко объркващи, като RegQueryKey или WriteFile, но ние ще се опитаме да ви помогнем чрез объркването.
  • път - това не е пътят на процеса, той е пътят към всичко, което е било обработено от това събитие. Например, ако има събитие WriteFile, това поле ще покаже името на файла или папката, които се докосват. Ако това е събитие в регистъра, ще се покаже достъпът до пълния ключ.
  • резултат - Това показва резултата от операцията, която кодира като SUCCESS или ACCESS DENIED. Докато може да се изкушавате автоматично да предположите, че BUFFER TOO SMALL означава нещо наистина лошо, това не се случва през повечето време.
  • детайл - допълнителна информация, която често не се превежда в обикновения свят за отстраняване на проблеми.

Можете също така да добавите допълнителни колони към дисплея по подразбиране, като отворите Опции -> Избор на графи. Това не би било наша препоръка за първата ви спирка, когато започнете да тествате, но тъй като обясняваме колони, вече си заслужава да се споменава.

Една от причините за добавянето на допълнителни колони към дисплея е, че можете бързо да филтрирате тези събития, без да сте претоварени с данни. Ето някои от допълнителните колони, които използваме, но в зависимост от ситуацията може да намерите употреба за други в списъка.

  • Командна линия - докато можете да кликнете два пъти върху всяко събитие, за да видите аргументите от командния ред за процеса, генерирал всяко събитие, може да ви бъде полезно да видите с бърз поглед всички опции.
  • Име на фирмата - Основната причина, поради която тази колона е полезна, е, че можете да изключите бързо всички събития на Microsoft и да ограничите мониторинга си до всичко останало, което не е част от Windows. (Вие ще искате да сте сигурни, че нямате странни процеси rundll32.exe, които работят с Process Explorer, тъй като те биха могли да скрият злонамерен софтуер).
  • Родителски PID - това може да бъде много полезно, когато отстранявате неизправности в процес, който съдържа много детски процеси, като например уеб браузър или приложение, което продължава да създава скитни неща като друг процес. След това можете да филтрирате чрез родителското PID, за да се уверите, че заснемате всичко.

Заслужава да се отбележи, че можете да филтрирате по данни от колони, дори ако колоната не се показва, но е много по-лесно да кликнете с десния бутон на мишката и да ги филтрирате, отколкото да ги направите ръчно. И да, споменахме отново филтри, въпреки че все още не сме ги обяснили.

Разглеждане на едно събитие

Преглеждането на нещата в списък е чудесен начин бързо да видите много различни точки от данни едновременно, но определено не е най-лесният начин да разгледате отделни данни и има толкова много информация, която можете да видите в списък. За щастие можете да кликнете два пъти върху всяко събитие, за да получите достъп до съкровище на допълнителна информация.

Разделът "Събитие по подразбиране" ви дава информация, която до голяма степен е сходна с тази, която сте видели в списъка, но ще добавите малко повече информация към партията. Ако разглеждате събитие на файлова система, ще можете да видите определена информация като атрибутите, времето за създаване на файла, достъпа, който е опитван по време на операцията за запис, броя на записаните байтове и продължителността.

Преминаването към раздела "Процес" ви дава много добра информация за процеса, генериращ събитието. Докато обикновено искате да използвате Process Explorer, за да се справите с процесите, може да бъде много полезно да разполагате с много информация за конкретния процес, генериращ конкретно събитие, особено ако това е нещо, което се случи много бързо и след това изчезна от списък на процесите. По този начин данните се заснемат.

Разделът Stack е нещо, което понякога е изключително полезно, но често пъти няма да е полезно изобщо. Причината, поради която бихте искали да погледнете стака, е да можете да отстранявате неизправностите, като разгледате колоната "Модул" за всичко, което не изглежда съвсем правилно.

Като пример, си представете, че процесът непрекъснато се опитва да запитва или да получи достъп до файл, който не съществува, но не сте сигурни защо. Можете да разгледате раздела Stack и да видите дали има някакви модули, които не изглеждат правилно, и след това ги изследвайте. Възможно е да намерите остарели компоненти, или дори злонамерен софтуер, причинява проблема.

Или може да откриете, че няма нищо полезно тук за вас, и това също е добре. Има много други данни, които да разгледате.

Бележки за препълване на буферите

Преди да продължим нататък, ще искаме да отбележим кода на резултата, който ще започнете да виждате много в списъка и въз основа на всичките ви познания досега, може би ще ви изненада малко. Така че, ако започнете да виждате BUFFER OVERFLOW в списъка, моля, не предполагайте, че някой се опитва да проникне в компютъра ви.

Следваща страница: Филтриране на данните, които обработват мониторите