我可以挂钩链接库中的函数吗?
使用 EasyHook,我已经成功挂钩了各种 C++ 类的导出函数和已知 vtable 函数。在所有这些情况下,目标程序都使用了 DLL。
如果我知道函数入口点的地址,当库已链接到目标程序而不是作为单独的库时,是否可以执行相同的操作?
Using EasyHook I have successfully hooked both exported functions and known vtable functions for various C++ classes. In all these cases target programs have used DLLs.
Provided I know the address of a function's entry point, is it possible to do the same when a library has been linked into the target program as opposed to being a separate library?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它与 EasyHook 一起出现,您可以挂钩任何地址可计算的子例程。
就我而言,在 OpenSSL 中挂钩静态链接的 SSL_read 和 SSL_write 就像使用我最喜欢的调试器识别偏移量一样简单,然后安装挂钩。
现在剩下的就是安装挂钩:
我应该提到,在这个示例中,您将需要 libeay32.dll 和 ssleay32.dll,因为后者依赖于前者。
快乐挂钩!
It appears with EasyHook you can hook any subroutine whose address is calculable.
In my case hooking static linked SSL_read and SSL_write in OpenSSL was as simple as identifying the offsets with my favourite debugger and then installing the hooks.
Now all that's left is to install the hook:
I should mention that in this example you'll need libeay32.dll and ssleay32.dll as the latter depends on the former.
Happy hooking!