事先准备一下:
这个是ce修改器
这个是自带的教学关卡
将他们都打开,然后在CE中点击右上角的小电脑图标,将CE附加到教程关卡。
2.1 第二关
(1)在数值输入100,然后选精确值,首次扫描。
(2)点一下教学关卡里“打我”的按钮,数值一栏中填现在的血量,再次扫描。
(3)将这个结果双击加入地址栏,修改数值为1000,即可通关。
2.2 第三关
(1)扫描类型选择“未知的初始值”,点击“首次扫描”。
(2)点击“打我”,选择“减少的数值”再次扫描。
(3)不断重复操作,直到只剩一个结果,双击加入地址栏,修改值为5000,即可通关。
2.3 第四关
(1)扫描类型选择“精确数值”,数值类型选择“单浮点”,输入健康值,点击“首次扫描”,然后点击“打我”,再输入当前的健康值,其他选择同上,重复多次,直到只剩一个结果,双击加入地址栏,修改值为5000。
(2)扫描类型选择“精确数值”,数值类型选择“双浮点”,输入弹药值,点击“首次扫描”,然后点击“开火”,再输入当前的弹药值,其他选择同上,重复多次,直到只剩一个结果,双击加入地址栏,修改值为5000,即可过关。
2.4 第五关
(1)同第二关方法一样,找到地址,右击地址,点击“是什么改写了这个地址”。
(2)再次改变数值可以看到框内出现了指令,右击它,然后点击“使用空指令替换”,然后点击确定,点击改变数值,即可过关。
2.5 第六关
(1)用第二关的方法找到数值地址。
(2)右击该地址,点击“是什么改写了这个地址”,然后再次改变数值,双击出现的指令,出现如下窗口
(3)将可能的指针数值可能是的值复制,将该窗口保留不要关闭,然后返回到主页,粘贴复制的数,选择16进制,进行精确值首次扫描,将绿色的地址(即为基址)记录下来。
(4) 点击“手动添加地址”,勾选“指针”,输入刚刚的基址,找到刚刚保留的窗口,找到并输入偏移量,点击确定,将值改为5000,并锁定。改变指针,即可通关。
2.6 第七关
(1)同第二关方法一样,找到地址,右击地址,点击“是什么改写了这个地址”。
再点击打我,选中刚刚出现的指令,点击右侧的“显示反汇编代码”。
然后点击“工具”,选择“自动汇编”
在自动汇编的窗口里在模板中分别点击“代码注入”与“CT表框架代码”
在newman后输入 add [ebx+00000478],03 点击执行,即可通关
newman:
add [ebx+00000478],03
2.7 第八关
(1)用第二关的方法找到数值地址。
(2)右击该地址,点击“是什么改写了这个地址”,然后再次改变数值,双击出现的指令,将可能的指针数值可能是的值复制,将该窗口保留不要关闭,然后返回到主页,粘贴复制的数,选择16进制,进行精确值首次扫描,将该地址
(3)右击该地址,点击“是什么访问了这个地址”,其余步骤同上,直到找到基址。添加到地址栏。
(4)返回ce主页点击“手动添加地址”,选择指针,填入相应的数据,点击“确定”
(5)将刚生成的指针地址数值修改为5000,并锁定,即可通关。
2.8 第九关
(1)试用精确值搜索健康值,发现没有结果,于是试用单浮点型搜,分别找到四个人的健康值的地址,
(2)对这四个地址右键,找到是什么访问了这个地址,发现它们4个都指向同一个地址,这就是公用代码。
(4)对4个人的血量地址都进行“浏览相关内存区域”然后进行对比。
可以发现相关内存区域第二行的最后分别为4人的名称,蓝色部分不同,01为友,02为敌。
(4)开始注入代码,选择任意一人的血量地址,找到是什么访问了它,改变改值后选中代码,右侧点击“显示反汇编程序”
选择该操作码点击“工具”——>“自动汇编”
然后在模板中选择如图的两次注入
原来的代码是 mov [ebx+04],eax,意思为血量在 ebx+04 的位置。Dave 血量地址是 019E0794 和队伍编号地址 019E07A0,两者十六进制相减(019E07A0 - 019E0794 = 0C)得到0C,如果血量为 ebx+04,那么队伍编号就应该是 ebx+04+0C 就是 ebx+10
于是创建新变量label(wjx)
在newmen后注入cmp [ebx+10],1 判断其是否为1
je wjx 如果相等为友,跳转到wjx即结束
在源代码处mov下一行加上wjx: 为1则跳过攻击
(5)点击“执行”,然后确定,点击“重启游戏并自动执行”,即可通关。
今天就教到这里,喜欢的话,麻烦动动手指点个赞,点个关注更好哦。