Как отладить до уровня сборки с Visual Studio Express? - PullRequest
2 голосов
/ 14 августа 2010

Мне интересно, как некоторые функции реализованы под капотом, например:

pEvent->WaitForCompletion(INFINITE, &evCode);

Я пытался вмешаться, но не смог.

Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 02 мая 2011

Вы не говорите, какая актуальная версия Visual Studio, но я полагаю, что все версии содержат возможность установки на дизассемблирование собственного кода, для которого у вас нет исходного кода.

Однако параметры отладчика по умолчаниючасто устанавливается отключить этот вид дисплея.Проверьте параметры отладки в Tools-> Options и включите 'show disassembly, если источник недоступен', отключите 'just my code' и другие подобные параметры.

Одно предупреждение: вполне возможно, что основная реализацияWaitForCompletion находится в коде режима ядра (особенно, если pEvent является оберткой для HANDLE, созданного CreateEvent).В этом случае вам понадобится отладчик ядра, чтобы пройти через внутреннюю работу.

Martyn

0 голосов
/ 14 августа 2010

Если вы хотите отлаживать в чистом ассемблере, у меня есть лучший инструмент для вас - OllyDbg http://www.ollydbg.de/. Загрузите с ним исполняемый файл, а затем найдите все вызовы WaitForCompletion (RMB в представлении ассемблера -> Поиск -> Имена -> Выберите «WaitForCompletion» -> RMB -> Найти ссылки). Затем создайте точки останова во всех случаях и запустите исполняемый файл. Отладчик должен остановиться на одной из точек останова, и вы можете перейти к своей функции.

Счастливый реверс-инжиниринг.

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