Как найти вызовы создания процессов Windows в разобранном коде? - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть программа, которая вызывает другую программу CLI, нет исходного кода ни для одной из этих программ. Мне было интересно, с какими параметрами первая программа вызывает программу командной строки.

С помощью Sysinternals Process Explorer мне удалось выяснить параметры. Одна из них была странной строкой. Будучи любопытным, я хотел знать, где происходит происхождение: от каких переменных он зависит или является ли он жестко закодированным.

Строка отсутствовала в форме ASCII. Итак, я хотел выяснить, где вызывается приложение CLI, чтобы я мог копать глубже. К сожалению, это было то, где я застрял. Я не знаю много о Windows API и о том, как создаются процессы. Я не могу найти ту часть, где создается процесс приложения CLI. Я попытался использовать инструмент под названием StraceNT, но нигде не смог найти звонки (я предполагал, что он будет использовать функции CreateProcess()).

Извините, если это глупый вопрос, но он показался мне интересным. Любое предлагаемое чтение, как самообразование, приветствуется.

1 Ответ

0 голосов
/ 26 апреля 2016

Вы можете использовать Process Monitor .Добавьте фильтр Operation begins with Process, если вы хотите видеть только процесс создания / завершения процесса.Затем он будет зарегистрирован при создании процесса, включая то, что его создал.

Затем вы можете дважды щелкнуть по интересующему вас событию «Создание процесса» и посмотреть вкладку «Стек».Вуаля, вы получаете стек вызовов, показывающий, как было инициировано создание процесса!

Здесь я запустил блокнот из проводника:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...