2016-04-25 3 views
3

Меня интересует внутренность ProcDump (утилита Sysinternals): это по сути отладчик? Каким образом удается сбрасывать процесс с исключениями, исключениями из первых шансов и даже управляемыми исключениями (CLR)?Как работает ProcDump? Это, по сути, отладчик?

Я вижу, что он имеет импорт, такой как DebugActiveProcess из kernel32.dll. Его строки также содержат имена библиотек CLR, поэтому я предполагаю, что он динамически загружает их, чтобы использовать API отладки CLR (хотя я не вижу mscordbi.dll в строках - должен ли я?).

ответ

3

Я попытаюсь дать элементарный ответ на мой собственный вопрос, посмотрев ProcDump с IDA Pro.

По крайней мере, для неуправляемой стороны ProcDump использует API отладки Win32: он использует DebugActiveProcess и цикл отладки WaitForDebugEvent & ContinueDebugEvent. Затем, в зависимости от параметров запуска, это может быть, например, проверять исключение и выгружать содержимое из ReadProcessMemory в устройство ввода-вывода.

Смежные вопросы