-
-
[讨论]解析某个外g的源码
-
发表于:
2023-12-12 13:52
4920
-
dll形式注入,申请控制台方便打印数据调试
这里有两个函数,第二个暂且不知道是什么,后面不用第一个也能实现效果,那先分析第一个。
获取主程序模块基地址,这个没什么好说的
分析Mono::InitMono
获取Mono.dll里面的导出函数,后面要用到这些函数定位游戏数据内存地址,俗称调用引擎函数。
调用了这个函数
获取这个全局变量,类似UE4世界数组的东西
分析StartThread
在主程序模块里面搜索48 8B 05 ?? ?? ?? ?? 48 8B A8 ?? ?? ?? ?? 48
根据这个以及后面的,推测是替换地址0x12038B40里面的值,
原来
经过外ghook后
推出这是IAThook,
看得出这是在绘制,所有该外g是不创建窗口,直接替换虚表函数进行HOOk来达到绘制方框的目的。
这个未知,后面测了不能少HOOk这个,必须HOOk这个
这个就是绘制函数,分析这个。
是个dll里面的未导出函数,搜索这个dll文件没找到。。。。
往下看,R9这个寄存器没有被保存下来直接被覆盖
,推出该函数有三个参数,
下断,一直run,断下来的线程不变返回地址不变,eax被覆盖,则该函数没有返回值
这个函数声明的返回值应该是VOID,或者说返回值可以忽略
问题:是否可以HOOk别的地方?
因为是绘制函数,则该函数一定在调用,但是找了很久也没见哪个函数在跑的,似乎这个函数是唯一的。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)