|
|
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版本中不可用。 下面是一个完整的示例(但没有完整的错误检查)。它似乎可以工作,但没有看到太多的测试。
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |