Cheat Engine Tutorial 闯关手记 第六关

转载自 76512

 

结合第四关与第五关的教程,可以将数值存储的真正地址找出来,锁定数值或修改游戏中的代码,如果你想制作在任何电脑上都能使用的修改器补丁,那么这两关的学习至少是个前题。

       本关的说明解释如下:

       步骤 7:代码注入 (PW=013370)

       代码注入是将一小段代码注入到目标进程中的技巧,然后使这个进程执行你写入的代码。

       在这一步教程中,你将有一个血值和一个每按一次将减少1点血值的按钮,你的任务是利用 代码注入 ,使得每按一次按钮增加2点的血值。

       开始查找这个地址,然后查看是什么在改写它("查找写入此地址的代码")。

       当你看到那条减少数值的汇编代码已经后,选择 "显示反汇编程序" , 然后打开 自动汇编窗口 (菜单-工具->自动汇编 或 按下快捷键 Ctrl+a ),选择 "模板" 中的 "代码注入" 。CE将自动生成一部分汇编代码并为你输入指令做好准备(如果CE没有给出正确的地址,你可以手工输入它)。

       注意 alloc 这部分代码,它会为你的代码分配出一小块空白的内存,过去,在 Win2000 之前的系统,这种行为存在安全隐患,很可能导致系统崩溃,幸运的是,这种情况在 win2000 以后的操作系统得到改善

       也要注意 line newmem 这部分代码,原代码,以及用文本 "此处放置你的代码" 标示出的空白部分,正如你猜测的,在这儿可以写下每次增加2点血值的代码。

       推荐你使用 "ADD" 汇编指令,下面是一些示例:

       "ADD [00901234],9" 使 [00901234] 地址的值增加9
        "ADD [ESP+4],9"   使地址指针 [ESP+4] 的值增加9

       在本关的情况下,你可以使用相同的手法去处理 减血值那条原代码方栝号之间的那部分。

       提示:

       推荐你从原代码中删除减血值的那行代码, 否则你得加3点生命值(你增加了3点,原代码减去1点,最终结果才会增加2点),这样看上去很容易让人迷惑,但最终方案还是由你来决定好了。

       提示:

       某些游戏中,原代码可能在多条指令之外,有时候(并非一向如此),它可能由不同的地方跳转至你的指令中并结束运行,其结果可能引起未知的错误;如果出现了这种情况,通常应当查看附近的那些跳转指令,进行修改,或者在尝试使用不同地址进行 代码注入,确认无误后便可以将你修改的代码注入原代码中了。

       本关的教程应当是第四关的补充,在第四关找到代码只是简单的改为空指令,游戏运行到你修改后的指令什么都不会做,比如,按照这样的方法,我们可以制作买东西不需要花钱的,又或是不掉血的修改补丁;这一次,我们深入一点,熟悉更多的汇编指令,如果弄明白,便可以制作出买东西倒找你钱,又或是越战血越多的补丁了。

       这次我们不啰嗦,按着前几关的介绍,查找到数值地址,右键 "查找写入该地址的代码" ,更改血值后,来到下图这一步:

       点击 "显示反汇编" ,打开 "内存查看器" 窗口,如下图:


       在 工具 菜单中选择 "自动汇编 或 按下快捷键 Ctrl+a ",如下图:


       按下图打开 "代码注入" :


       跳出地址填写窗口,如下图:


       点击 确定 ,自动汇编已帮我们创建了一部分的代码,如下图:


       能看懂汇编的,就不用我多解释了,这是一段很简单的代码,CE帮我们先开出了一小块内存用于注入我们自己的代码,然后在原地址处插入跳转语句,跳入我们输入的代码段,执行完毕后再跳转回原代码继续执行后边的代码。

       现在我们要做的就是将加血的代码输入在图中 newmem 的位置,如下图代码所示:


       你可以按照说明中所说的那样,在 newmem 区域,写入 "add [ebx+00000310],3",加3的原因是因为在执行完我们输入的代码后,原代码还要再减去1;当然,你也可以灵活运用我们的知识,直接将原代码改为 "add [ebx+00000310],2",那么在 newmem 区域就不用输写任何代码了,如下图:


       OK,写完代码,可以点击 "执行" 按钮了,弹出确认对话框,直按点击 "是",弹出 注入成功的窗口,并提示我们,新的代码段放置的位置,如下图:

       "确定" ,关闭 "自动汇编" 窗口,在 "内存查看器" 窗口 中的汇编代码部分,可以看到,原代码已被修改,如下图:


       回到 Tutorial.exe 窗口 ,点 "Hit me" ,增加了2点血值,next 按钮也可以点击了,记下第七关的密码(PW=525927),我们休息一下~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值