使用 Detours 挂钩 Api 在 Detach 上崩溃
Posted
技术标签:
【中文标题】使用 Detours 挂钩 Api 在 Detach 上崩溃【英文标题】:Hooking Api with Detours crashes on Detach 【发布时间】:2013-05-10 14:03:11 【问题描述】:我试图通过将 .dll 注入 explorer.exe 来绕过 NtQueryVolumeInformationFile。
在我尝试弹出 dll 之前它工作正常。弹出 .dll 后,explorer.exe 崩溃。
操作系统:Windows 7 32 位 编译器:Visual Studio 2012 with Detours 3.0 Libary
DllMain.cpp:http://pastebin.com/6PgZcdhi Header.h:http://pastebin.com/BGQ527Ym
我希望有人可以帮助我找出问题所在。我现在在这个问题上工作了 2 天,但没有任何线索。
感谢您的帮助:)
【问题讨论】:
【参考方案1】:如果至少有一个挂起的调用,从目标进程分离是不安全的,所以安全分离需要一种机制来检测挂起的调用,据我所知,detours没有这样的机制,你必须自己做。顺便说一句,您可以在 windbg 中获取故障转储和 !analyze -v
它,这有助于诊断分离时发生的情况。
【讨论】:
以上是关于使用 Detours 挂钩 Api 在 Detach 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Detours 不能再在 Windows 7+ 中挂钩 shell32.dll 函数
Detours - 挂钩类成员函数 - 设置目标函数偏移的语法?
detours hooked CreateFile 函数触发堆栈溢出