WinDBG Conditional Breakpoint on NtCreateFile
使用WinDBG调试Windows 10,我已通过COM隧道连接到OS。
我正在运行一个进程,想打开一个名为" MyFile"的特定文件时,我想中断一下。
我所要做的是在ntdll!NtCreateFile上添加一个断点,当断点时,我使用以下命令来检查文件名:
1 | dt _OBJECT_PROPERTIES @r8 |
哪个给我:
1 | + 0x10 ObjectName : 0xADDRESS_OF_STRING C:/Folder/NotMyFile |
问题是此函数被调用了很多次,所以调试太慢了。有没有一种方法可以使用WinDBG的条件断点自动执行此操作?
!process 0 0 YourProcessName
1 2 3 4 5 6 | 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地址
并设置特定于过程的断点,例如
1 | bp /p 85c9ed40 nt!NtCreateFile |
这应该大大减少匹配,并且只有在您的进程下调用NtCreateFile时才会中断
仅当您的进程打开许多文件或多次打开此特定条件时才使用条件语句,否则您将不需要任何条件语句