Разбиране на процесния монитор
Днес в това издание на Geek School ще ви научим как полезността на Process Monitor ви позволява да надникнете под капака и да видите какво наистина правят любимите ви приложения зад кулисите - какви файлове получават, ключовете в регистъра, използване и др.
НАВИГАЦИЯ НА УЧИЛИЩАТА- Какви са инструментите на SysInternals и как ги използвате?
- Запознаване с Process Explorer
- Използване на Process Explorer за отстраняване на неизправности и диагностика
- Разбиране на процесния монитор
- Използване на процесния монитор за отстраняване на неизправности и търсене на регистър Hacks
- Използване на Autoruns да се справят с процеси на стартиране и Malware
- Използване на BgInfo за показване на системна информация на работния плот
- Използване на PsTools за контрол на други компютри от командния ред
- Анализ и управление на вашите файлове, папки и устройства
- Опаковане и използване на инструментите заедно
За разлика от помощната програма Process Explorer, която прекарахме няколко дни в покритието, Process Monitor е предназначен да бъде пасивен поглед върху всичко, което се случва на вашия компютър, а не като активен инструмент за убиване на процеси или затваряне на дръжки. Това е като да погледнете глобален лог файл за всяко събитие, което се случва на вашия компютър с Windows.
Искате ли да разберете кои ключове в системния регистър любимото ви приложение всъщност съхранява техните настройки? Искате да разберете какви файлове докосва услугата и колко често? Искате ли да видите, когато дадено приложение се свързва с мрежата или да отваря нов процес? Това е Монитор на процеса за спасяване.
Вече не правим много статии за рана, но когато започнахме, използвахме Process Monitor, за да разберем какви ключове в системния регистър имаме достъп, и след това да ги настроим, за да видим какво ще се случи. Ако някога сте се чудили как някой измамник е измислил някакъв регистър, който никой не е виждал, вероятно е бил чрез Process Monitor.
Помощната програма Process Monitor е създадена чрез комбиниране на две различни помощни програми за стари училища заедно, Filemon и Regmon, които са били използвани за наблюдение на файлове и активност на системния регистър, както предполагат техните имена. Макар че тези помощни програми все още са налични там и макар и да отговарят на вашите специфични нужди, ще бъдете много по-добре с Process Monitor, тъй като той може да се справи с голям обем от събития по-добре поради факта, че е проектиран да го направи..
Също така трябва да се отбележи, че Process Monitor винаги изисква администраторски режим, защото зарежда драйвера на ядрото под капака, за да улови всички тези събития. В Windows Vista и по-късно ще бъдете подканени с диалогов прозорец на UAC, но за XP или 2003 ще трябва да се уверите, че използваният от вас акаунт има администраторски права.
Събития, които обработват монитора
Process Monitor улавя много данни, но не улавя всяко нещо, което се случва на вашия компютър. Например, Process Monitor не се интересува дали движите мишката около себе си и не знаете дали драйверите работят оптимално. Това няма да проследява процесите, които са отворени и губят процесора на вашия компютър - в края на краищата, това е работата на Process Explorer.
Това, което той прави, е да заснеме конкретни типове операции за вход / изход (Input / Output), независимо дали се случват чрез файловата система, регистъра или дори мрежата. Тя допълнително ще проследи няколко други събития по ограничен начин. Този списък обхваща събитията, които прави:
- регистратура - това може да бъде създаването на ключове, четенето им, изтриването им или запитването им. Ще се изненадате колко често това се случва.
- Файлова система - това може да бъде създаване на файл, писане, изтриване и т.н. и може да бъде за локални твърди дискове и мрежови устройства.
- мрежа - това ще покаже източника и дестинацията на TCP / UDP трафика, но за съжаление не показва данните, което го прави малко по-полезен.
- процес - Това са събития за процеси и нишки, в които се стартира процес, започва нишка или излиза и т.н. Това може да бъде полезна информация в някои случаи, но често е нещо, което бихте искали да видите в Process Explorer вместо това.
- профилиране - Тези събития се улавят от Process Monitor, за да се провери количеството процесорно време, използвано от всеки процес, и използването на паметта. Отново, вероятно бихте искали да използвате Process Explorer за проследяване на тези неща през повечето време, но тук е полезно, ако имате нужда от него.
Така процесът Монитор може да улови всеки тип I / O операция, независимо дали това се случва чрез системния регистър, файловата система или дори в мрежата - въпреки че действителните данни, които се пишат, не са заловени. Просто гледаме на факта, че един процес пише към един от тези потоци, за да можем по-късно да разберем повече за това, което се случва.
Интерфейс на монитора на процесите
Когато за първи път заредите интерфейса на Process Monitor, ще ви бъде представен огромен брой редове с данни, с повече данни, които летят бързо, и може да бъде поразително. Ключът е да имаме някаква идея, поне за това какво гледате, както и това, което търсите. Това не е такъв тип инструмент, който прекарвате в релаксиращо преглеждане през деня, защото в рамките на много кратък период от време ще преглеждате милиони редове.
Първото нещо, което искате да направите, е да филтрирате тези милиони редове до много по-малката част от данните, които искате да видите, и ние ще ви научим как да създавате филтри и да нулирате точно това, което искате да намерите , Но първо трябва да разберете интерфейса и какви данни са налични.
Поглед към колоните по подразбиране
Стойностите по подразбиране показват много полезна информация, но определено ще се нуждаете от някакъв контекст, за да разберете какви данни съдържа всеки от тях, защото някои от тях може да изглеждат като нещо лошо, което се случва, когато те са наистина невинни събития, които се случват през цялото време качулка. Ето какво се използва за всяка от колоните по подразбиране:
- път - тази колона е доста очевидна, тя показва точния час на възникване на дадено събитие.
- Име на процеса - името на процеса, генерирал събитието. Това не показва пълния път до файла по подразбиране, но ако задържите мишката върху полето, можете да видите точно кой процес е бил.
- 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 в списъка, не допускайте, че някой се опитва да проникне в компютъра ви.
Следваща страница: Филтриране на данните, които обработват монитора