C++——Detours(Win32 API劫持)——劫持类方法

Posted

技术标签:

【中文标题】C++——Detours(Win32 API劫持)——劫持类方法【英文标题】:C++ -- Detours (Win32 API Hijacking) -- Hijack Class Methods 【发布时间】:2009-10-25 22:29:50 【问题描述】:

很长一段时间以来,我都没有遇到过使用 Detours 劫持函数的问题...当我尝试劫持类方法时(在我的情况下,IhtmlDocument2::write from mshtml.dll)我遇到了无穷无尽的问题(主要是类型不匹配)。由于我在网上没有找到任何相关示例,我开始怀疑这是否可行。

我的问题是:是否可以使用 Detours 劫持类方法?请问我可以举个例子吗?如果没有,是否可以使用另一个挂钩库以更简单的方式劫持类方法?

提前谢谢各位!

【问题讨论】:

【参考方案1】:

IHTMLDocument2::write 不仅仅是一个类方法;这是一个COM方法。这意味着更多。例如,还有一个等效的 C 声明。您可以在绕过方法时使用该 C 签名;它仍然是相同的功能。

【讨论】:

【参考方案2】:

http://pastebin.com/f6559d448

是的!

【讨论】:

以上是关于C++——Detours(Win32 API劫持)——劫持类方法的主要内容,如果未能解决你的问题,请参考以下文章

Detours简介 (拦截x86机器上的任意的win32 API函数)

25.Detours劫持技术

MS Detours库,绕行非win api函数

如何在 C++ 中使用 Detours 扩展程序内函数而不进入无限循环?

运用Detours库hook API(原理是改写函数的头5个字节)

C++ Win32 API 控制消息