Трассировка Windows API из пользовательского режима в режим ядра

Я хотел бы отслеживать / регистрировать весь поток вызова API из пользовательского режима в режим ядра. Например, если приложение пользовательского режима вызывает API-интерфейс FindFirstFile (), я хотел бы зарегистрировать следующее:

FindFirstFile -> NtQueryDirectoryFile -> SYSCALL -> KiSystemService -> KiFastCallEntry -> NtQueryDirectoryFile -> IRP ->...

Есть ли сегодня какая-нибудь программа, которая может это сделать? (Rohitab API Monitor может выполнять трассировку API пользовательского режима, но не одновременно). Если нет, то какой самый элегантный способ развить такую ​​способность?

2 ответа

Так как ProcExplorer предоставляет полную трассировку потоков, это тоже можно сделать. Я нашел этот веб-сайт, который объясняет, как реализовать режим ядра GetThreadContext(), чтобы завершить картину стека (с StackWalk64).

http://blog.airesoft.co.uk/2009/02/grabbing-kernel-thread-contexts-the-process-explorer-way/

Да, вы можете сделать это, используя windbg, это программа от Microsoft, которая может отлаживать режим пользователя, а также режим ядра.

Вы можете начать отсюда.

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/getting-started-with-windbg

а также, если вы хотите прочитать об этом и увидеть пример этого, вы также можете увидеть здесь.

http://www.osronline.com/article.cfm?id=257

Удачи:-)

Другие вопросы по тегам