В windbg Как установить точку останова на все функции в kernel32.dll? - PullRequest
3 голосов
/ 04 декабря 2009

Я хочу выяснить последовательность вызовов и функций для kernel32.dll в функции example() в example.DLL.

В windbg, как установить точку останова для всех функций в kernel32.dll?

Я пытался bm kernel32!*, но, кажется, не работает.

Ответы [ 3 ]

5 голосов
/ 04 декабря 2009

Я бы не поступил так, как заявлено. Конечно, это возможно, но если сделать это с bm /a kernel32!*, то вы случайно установите бит / бит также для символов данных (в отличие от реальных функций). В вашем случае wt - данные отслеживания и просмотра (вы можете посмотреть их в debugger.chm, поставляемом с вашим пакетом windbg) могут быть тем, что вам нужно.

5 голосов
/ 19 декабря 2013

Установка точек останова при некотором низком уровне вызова DLL службы ядра может вызвать исключения приложения.

Вы можете использовать монитор API rohitab , чтобы наблюдать за его вызовами DLL, а затем устанавливать точки останова на вашем интересные звонки.

2 голосов
/ 04 декабря 2009

Kernel32 - интенсивно используемая DLL-библиотека - вы, вероятно, обнаружите, что взлом каждой функции слишком шумный. Вам также не нужно разбивать каждую функцию kernel32, только те, которые она экспортирует.

На вашем месте я бы запустил "link / dump / exports kernel32.dll", записал выходные данные в файл, а затем написал простой скрипт, который захватил бы имя функции и выписал "bp kernel32!" + имя функции для нового файла. Затем просто вставьте содержимое этого файла в командное окно windbg.

Вероятно, существует простой способ сделать это с помощью поддержки сценариев в отладчиках, но вы можете взломать вышеуказанный сценарий вместе, за меньшее время, которое потребуется, чтобы научиться делать это с помощью сценариев отладчика.

...