Как мне найти командную строку / параметр неизвестного exe-файла с помощью инструментов отладчика? - PullRequest
1 голос
/ 16 августа 2011

Предположим, у меня есть скомпилированный exe, и я хочу найти параметр или аргумент командной строки exe, как мне это сделать с помощью отладчика?Я думаю, что эта тема входит в категорию обратного инжиниринга, но я не могу найти руководство о том, как добиться этого трюка.

Самое близкое, что я мог бы получить, это использовать отладчик на exe, иустановить точки останова на CreateProcess.Однако как мне найти функцию CreateProcess внутри отладчика?

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Некоторые отладчики позволяют вам вызывать произвольную функцию в контексте отладчика, поэтому, если ваша поддерживает это, вы можете вызвать функцию GetCommandLine ().PEB структуры.Вам нужно будет перейти к fs: 30h ( PEB ), затем ProcessParameters и проверить там поле CommandLine.

0 голосов
/ 29 августа 2011

Запустите exe-файл с некоторым параметром командной строки, например, «target.exe -whateverabc». Затем, когда ваш отладчик загрузит exe-файл, найдите в памяти -whateverabc и установите точку останова чтения в этой области памяти и возможных дубликатах.Надеемся, что когда сработает точка останова, вы окажетесь внутри функции, которая проверяет параметры командной строки в этом exe-файле.

Чтобы установить точку останова на CreateProcess, вы можете ввести bpx CreateProcess в некоторых отладчиках или написать небольшое приложение.который использует LoadLibrary для kernel32.dll или w / e dll, который содержит вашу функцию, а затем GetProcAddress с именем функции для получения ее адреса. Затем вы устанавливаете точку останова на выполнение по этому адресу;

...