VC++托管代码如何hook 函数
本帖最后由 jerry_dqh 于 2013-10-15 19:38:44 编辑 有一个原来的c++工程,我在vs2010中改成/clr编译,编译没有问题,但是我使用原来的hook函数的方法,好像hook不成功。hook的是自己的函数。去掉/clr,hook是成功的。
hook的原理就是修改原函数的代码段,jmp到新的函数地址去。在/clr下,我跟了一下代码,发现无法看到实际的代码段,运行的代码,每个函数是都从0x00000000开始。但是在去掉/clr编译选项情况下,运行的是实际的代码段
请教一下,如何在clr情况下,hook自己的一些函数。目前我搜索了一下,好像有一个easyhook支持.net的hook,但不知道啥原理。 vs2010 clr hook
[解决办法]
还真没这方面的经验。
[解决办法]
你是用/clr 编译hook的win32 dll吗?
混合代码不能被dll入口函数调用,网上有过用混合代码写dll的文章,我没有尝试过,你可以搜搜看一下。
easyhook 和detours都有用过,easyhook有免费的64bit hook挺好的,至于他的托管hook是怎样做的,没有研究。
建议还是用纯C C++来写