我如何验证CreateToolhelp32Snapshot()是否正在使用NtQuerySystemInformation?

时间:2014-05-08 08:53:20

标签: c++ winapi

我读到CreateToolhelp32Snapshot()EnumProcesses()和Windows TaskManager都使用了未记录的NtQuerySystemInformation函数。

有什么方法可以验证这个吗?我正在寻找一个工具,可以向我展示调用该程序的所有底层api。

1 个答案:

答案 0 :(得分:1)

有一个名为ReactOS的项目,它主要是Windows的逆向工程。可以在文件toolhelp.c中找到CreateToolhelp32Snapshot及其附加信息:

[ReactOS Path]/dll/win32/kernel32/client/toolhelp.c

实际上调用了此链中的NtQuerySystemInformation

CreateToolhelp32Snapshot
  |
TH32CreateSnapshot
  |
NtQuerySystemInformation

至于EnumProcessesdll/win32/psapi/psapi.clib/epsapi/enum/processes.c):

EnumProcesses
  |
PsaEnumerateProcesses
  |
PsaEnumerateProcessesAndThreads
  | 
PsaCaptureProcessesAndThreads
  |
NtQuerySystemInformation

或使用反汇编程序,IDA:

NtQuerySystemInformation references to

http://i.stack.imgur.com/1rS6q.png