|

楼主 |
发表于 2021-10-5 10:35:01
|
显示全部楼层
本课内容
今天这节课要用到的工具: 易语言
上节课,我们用CE找到了自动拾取阳光的地址,通过对一条跳转指令的修改,把 jne 修改成 jmp
0043158F - EB 08 - jmp PlantsVsZombies.exe+31599
也就是在这条地址上,修改了机器码
EB 的十六进制 改成十进制 235
08 的十六进制 还是 08
本课编程代码如下:
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 游戏句柄, 整数型
.程序集变量 游戏进程ID, 整数型
.程序集变量 一级偏移, 整数型
.程序集变量 二级偏移, 整数型
.子程序 __启动窗口_创建完毕
时钟1.时钟周期 = 1000
游戏句柄 = 取句柄 (, “MainWindow”, “植物大战僵尸中文版”)
游戏进程ID = 取窗口进程ID (游戏句柄)
.子程序 _时钟1_周期事件
.判断开始 (游戏句柄 = -1)
标签1.标题 = “游戏未开启”
.默认
标签1.标题 = “游戏己运行”
.判断结束
一级偏移 = 读内存整数型 (游戏进程ID, 十六到十 (“006A9EC0”), ) + 十六到十 (“768”)
二级偏移 = 读内存整数型 (游戏进程ID, 一级偏移, ) + 十六到十 (“5560”)
.子程序 _按钮1_被单击
.判断开始 (写内存整数型 (游戏进程ID, 二级偏移, 到整数 (编辑框1.内容)))
信息框 (“写入成功!”, 0, , )
.默认
信息框 (“写入失败!”, 0, , )
.判断结束
.子程序 _按钮2_被单击
写内存字节集 (游戏进程ID, 十六到十 (“00487290”), { 144, 144, 144 }, )
.子程序 _按钮3_被单击
写内存字节集 (游戏进程ID, 十六到十 (“0043158F”), { 235, 8 }, )
|
|