Ben*_*igt 6 windows winapi windbg wow64 handle
我正在尝试解决第三方二进制文件的缓慢启动问题(无源).它是在64位Windows 7上运行的32位应用程序.
我已经使用调试器进入应用程序,而它在启动期间挂起了0%的CPU使用率,它似乎正在等待ReadFile返回.第一个参数ReadFile是句柄值000000f0.windbg的!handle命令告诉我:
Run Code Online (Sandbox Code Playgroud)Handle f0 Type File Attributes 0 GrantedAccess 0x120189: ReadControl,Synch Read/List,ReadEA,ReadAttr,WriteAttr HandleCount 2 PointerCount 4 No Object Specific Information available
我想知道这对应的设备.但是,Sysinternals Process Explorer在其进程句柄列表中不包含此句柄.
我使用windbg跟踪所有调用ntdll!NtCreateFile并打印路径并返回句柄:此句柄不在其中.断点on kernel32!CreateNamedPipeW,kernel32!CallNamedPipeW和kernel32!WaitNamedPipeW永远不会被触发(这很奇怪,因为Process Explorer确实显示了另一个带路径的句柄\Device\NamedPipe\).
作为参考,这是在Windows x64上跟踪NtCreateFile(akak ZwCreateFile)的命令:
bp ntdll!NtCreateFile "!ustr poi(@r8+10) ; r $t0 = @rcx ; gu ; dd @$t0 L1 ; gc"
Run Code Online (Sandbox Code Playgroud)
还有File哪种类型的HANDLE 来自哪里?不要将其他HANDLE创建函数委托给NtCreateFile实际的系统调用(我猜不是)?
看起来只有在进行内核调试时才能获取文件句柄信息。所以有3个选择。
| 归档时间: |
|
| 查看次数: |
611 次 |
| 最近记录: |