![]() |
1
4
也许亡灵巫师的一个不那么坏的方法是 Microsoft Research's Detours package 挂接dll的入口点以监视dll进程分离通知。 使用此函数可以找到给定HMODULE(由LoadLibrary返回)的入口点:
您的入口点替换可以采取直接操作,或者增加您在主循环中检查的计数器,或者增加它对您很重要的地方。(几乎可以肯定地称之为原始入口点。) 更新:感谢@LeoDavidson在下面的评论中指出这一点。Detours 4.0现在使用自由麻省理工学院许可证获得许可。 我希望这能有帮助。 |
![]() |
2
10
一个非常糟糕的方法(被星际争霸2使用)是让你的程序连接到它自己,然后监视dll卸载调试事件(
http://msdn.microsoft.com/en-us/library/ms679302(VS.85).aspx
),否则你要么就得挂钩
|
![]() |
3
7
尝试使用 LdrRegisterDllNotification 如果你在Vista或更高版本。它确实需要使用getprocadaddress从ntdll.dll中查找函数地址,但这是正确的方法。 |
![]() |
4
4
@亡灵,你的链接 The covert way to find the Reference Count of DLL 对我来说,这太有趣了,以至于我不能忽略它,因为它包含了实现这个替代解决方案所需的技术细节(我昨天就想到了,但是缺少Windows内部的内容)。谢谢。我投票支持你的答案是因为你分享了这个链接。
链接的文章展示了如何到达内部
就在这里
这个
这都是Windows内部的。它(主要)有记录,但是 the MSDN documentation 警告ZwQueryInformationProcess可能已更改或在以后的Windows版本中不可用。 下面是一个完整的示例(但没有完整的错误检查)。它似乎可以工作,但没有看到太多的测试。
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 7 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 7 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 7 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 7 月前 |