易语言实现多线程安全Hook

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

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

还有两个比较特殊的:

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

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

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

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

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

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

易语言实现多线程安全Hook》有0个想法

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注