易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

实现多线程安全Hook源码   [复制链接]

    2018-09-26 11:12:10
    高级教程源码
    易语言资源网
    3478 次浏览
    来源链接

该模块包含了小量编程时常用的函数集:

取变量栈指针、A2W、W2A,Call(任意数量参数,内部会维护栈平衡),取函数真实地址(可为Naked函数,需自己维护栈平衡),以及部分堆函数;

还有两个比较特殊的:

一是SDK_OBJ里边的函数集,允许用户通过This控制类,包括读写成员,调用方法,设置对象实例

二十SDJ_InlineHook,我翻了很多论坛里边的代码,都是直接jmp,要调用原函数时再暂时复原调用的。

这个方法有一个隐患,就是在多线程中,如果一个线程暂停Hook,恰好这个函数又被另一个线程调用,则那个线程调用的是原函数!没有被Hook。

本人采用的方法是写入jmp,调用原函数的时候,把原函数前几句代码拷入内存再加上jmp,如此便可保证在多线程下的安全了。

另外本Hook采用链表机制,可以乱序卸载。




点我下载 (已有 201 次下载)

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
eSDK.e 系统核心支持库 5.3 d09f2340818511d396f6aaf844c7e325


[错误报告]   上一篇:API获取窗口句柄,坐标,进程名源码...     下一篇: QQ模拟登录