NtCreateFile上的WinDBG条件断点

时间:2018-08-07 15:48:10

标签: windbg

使用WinDBG调试Windows 10,我已经通过COM隧道连接到OS。 我正在运行一个进程,想打开一个名为“ MyFile”的特定文件时,我想中断一下。 我所要做的是在ntdll!NtCreateFile上添加一个断点,当断点时,我使用以下命令检查文件名:

dt _OBJECT_PROPERTIES @r8

哪个给我:

+ 0x10 ObjectName             : 0xADDRESS_OF_STRING C:/Folder/NotMyFile

问题是此函数被调用了很多次,所以调试太慢了。有没有一种方法可以使用WinDBG的条件断点自动执行此操作?

1 个答案:

答案 0 :(得分:1)

!process 0 0 YourProcessName

Example 

kd> !process 0 0 calc.exe
PROCESS 85c9ed40  SessionId: 1  Cid: 0ae8    Peb: 7ffdd000  ParentCid: 075c
    DirBase: 7e248560  ObjectTable: e44da728  HandleCount:  71.
    Image: calc.exe

从此获取EPROCESS地址

并设置特定于过程的断点,如

bp /p 85c9ed40 nt!NtCreateFile 

这应该大大减少匹配,并且只有在您的进程下调用NtCreateFile时才会中断

仅在您的进程打开许多文件或多次打开特定文件时才使用条件语句,否则您将不需要任何条件语句