人造指针&基址
实验目标:通过向游戏注入一段特殊汇编代码,实现自动获取动态地址.省略找基址的麻烦
为什么会出现人造指针 ?
1.基址偏移层数太多,很难找
2.有些游戏根本找不到基址
人造指针有什么优缺点?
1.人造指针就算游戏更新也无需去重复找基址
2.缺点是,需要注入代码,获取钩子
1.打开并附加游戏进程,老样子找到阳光的动态地址,这里我们不去找基址,而是人造一个基址
选择mov eax,[esi+00005560]这一行
显示反汇编程序,选择工具->自动汇编
选择模板->点击CT表框架代码
选择模板->代码注入->点击确定按钮
写入以下汇编代码,意思是取出动态地址,赋值给指定内存地址,这个内存地址先空着
上面窗口不要关闭->在内存浏览器->选择视图->内存区域
在下面找出具有读写权限的空地址,并且属于映像的,(这里不要选择系统领空的资源,注入错了会完犊子的)双击会跳转到指定区域
我们记下这个地址
返回自动汇编框架,然后单击文件->分配到当前的CT表
填入刚才的人造基址 00722000
此时,修改人造基址就等于修改了游戏的参数
注释:alloc(00722000,4)函数(4表示/4字节)可以将一个只读地址转换成可读写地址,一般情况下用不到!
拓展:特征码Hook一个内部Call
CE+X64dbg寻找本地Call
实验目标:通过遍历阳光产生的时间,寻找阳光产生的本地Call,使用代码注入器注入,自定义生成阳光
阳光遍历技巧:
进入植物大战僵尸-> 当出现阳光后->马上搜索未知初始数值
返回游戏-> 马上切回CE-> 搜索减少的数值 -> 掉一点搜一点
最后排查出它的掉落地址-> 锁定1即可实现无限掉落
首先你要经过上面的步骤找到这个动态