使用WinDBG调试Windows 10,我已经通过COM隧道连接到OS。 我正在运行一个进程,想打开一个名为“ MyFile”的特定文件时,我想中断一下。 我所要做的是在ntdll!NtCreateFile上添加一个断点,当断点时,我使用以下命令检查文件名:
dt _OBJECT_PROPERTIES @r8
哪个给我:
+ 0x10 ObjectName : 0xADDRESS_OF_STRING C:/Folder/NotMyFile
问题是此函数被调用了很多次,所以调试太慢了。有没有一种方法可以使用WinDBG的条件断点自动执行此操作?
答案 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时才会中断
仅在您的进程打开许多文件或多次打开特定文件时才使用条件语句,否则您将不需要任何条件语句