找回密码
 立即注册
函数线程调用堆栈 | 易语言编程 2023-09-10 75 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
该模块包含一组少量编程中常用的函数:

获取变量堆栈指针,A2W,W2A,Call(任意数量的参数,内部会维护堆栈平衡),获取函数的真实地址(可以是Naked函数,需要自己维护堆栈平衡),和一些堆函数;

还有两个比较特别的:

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

二十个SDJ_InlineHook,翻遍了很多论坛的代码,都是直接jmp,然后在调用原来函数的时候临时恢复调用。

这种方法有一个隐患,就是在多线程中,如果一个线程挂起Hook,而这个函数恰好被另一个线程调用,那么那个线程就调用了原来的函数!没有上瘾。

我使用的方法是写jmp。调用原函数时,将原函数的前几行代码复制到内存中,并添加jmp。这样可以保证多线程下的安全。

另外,这个Hook采用了链表机制,可以按照随机顺序卸载。

16363365751[下载].rar



上一篇:精易模块源码v7.6.0
下一篇:易语言源码打造自己的"二维码" 把数据保存到图片,