ce吧 关注:195,751贴子:3,798,599

【CE扫盲系列·第六弹】CE第六关:代码注入: (密码=013370)

只看楼主收藏回复

前言:本教程使用的工具为:
Cheat Engine 7.4 64位
官网网站为:https://cheatengine.org/
如果您没有CE,那么请参考这篇教程,他会教您如何下载并安装一个CE
https://tieba.baidu.com/p/8126971048?pid=146028156375&cid=0#146028156375
本教程修改游戏目标为:
Cheat Engine 7.4 自带的默认新手教程(64位游戏),如果您没有看过前面的教程,推荐您先看完前面的教程然后再观看此次教程。


IP属地:湖南1楼2022-11-19 17:16回复
    注:本教程旨在带领新人小白熟悉和使用CE,如您应该能够熟练掌握并使用CE,那么您可以略过本教程。


    IP属地:湖南2楼2022-11-19 17:17
    回复
      这一关和前面的第四关是类似的,只不过这次我们不是要替换(也就是置为nop)了,而是要对代码进行一定的修改,从而达到我们想要的效果。


      IP属地:湖南3楼2022-11-19 17:17
      回复
        这里我们先看关卡描述:
        步骤 7: 代码注入: (密码=013370)
        代码注入是将一小段你写出的代码注入到目标进程中并执行它的技巧。
        在这一步教程中,你将有一个健康值和一个每按一次将减少 1 点健康值的按钮,
        你的任务是利用"代码注入",使每按一次按钮增加2点的健康值。
        查找这个地址,然后看看是什么在改写它("找出是什么改写了这个地址")。
        当你看到那条减少数值的汇编代码后,选择"显示反汇编程序",然后打开"自动汇编窗口"(菜单-工具->自动汇编 或 按下快捷键 Ctrl+a ),选择"模板"中的"代码注入"。CE 将自动生成一部分汇编代码并为你输入指令做好准备(如果 CE 没有给出正确的地址,你也可以手工输入它)。
        注意 alloc 这部分代码,它会为你的代码分配出一小块空白的内存,过去,在 Win2000 之前的系统,这种行为存在安全隐患,很可能导致系统崩溃,幸运的是,这种情况在 win2000 以后的操作系统得到改善。
        也要注意line newmem: 、originalcode: 以及用文本"此处放置你的代码"标示出的空白部分
        正如你猜测的, 在这儿可以写下每次增加2点健康值的代码。
        在这种情况下推荐你使用 "ADD" 汇编指令,
        下面是一些示例:
        "ADD [00901234],9" 使 [00901234] 地址的值增加9
        "ADD [ESP+4],9" 使地址指针 [ESP+4] 的值增加9
        在本关的情况下,你可以使用相同的手法处理减少健康值的那条原代码方括号之间的部分。
        提示 1:
        推荐你从原代码中删除减少健康值的那行代码,否则你得加 3 点健康值(你增加了3点,原代码减去1点,最终结果才会增加2点),这样看上去很容易让人迷惑,但最终方案还是由你来决定好了。
        提示 2:
        某些游戏中,原代码可能在多条指令之外,有时候(并非一向如此),它可能由不同的地方跳转至你的指令中并结束运行,其结果可能引起未知的错误;如果出现了这种情况,通常应当查看附近的那些跳转指令,进行修改,或者尝试使用不同地址进行代码注入,确认无误后便可以将你修改的代码注入到原代码中了。


        IP属地:湖南4楼2022-11-19 17:18
        回复
          可以看出,这一关要求我们把
          点击打我这一条件修改为,点击"打我"后,血量会+2,这里我们用第四关教的,找到修改这个地址的代码。

          先找到保存这个数值的地址。然后选择地址,右键选择 —> "找出是什么改写了这个地址"


          然后点击打我。


          IP属地:湖南5楼2022-11-19 17:19
          回复
            这里就会出现一条指令

            然后就会弹出这个界面。

            这里我们选择 —> 工具 —> 自动汇编



            IP属地:湖南7楼2022-11-19 17:24
            收起回复
              然后选择"模板" —> CT表框架代码


              然后再点击"模板" —> 代码注入


              点击OK,选择注入这一条指令。


              IP属地:湖南8楼2022-11-19 17:26
              回复

                这里的自动汇编就会自动生成好一个代码模板。
                然后接下来,我们我们把这个
                sub dword ptr [rsi+000007E0],01
                修改为
                add dword ptr [rsi+000007E0],02
                就行了。
                注意,sub是减法操作,add是加法操作。


                IP属地:湖南9楼2022-11-19 17:27
                回复

                  然后运行脚本

                  回到游戏,点击"打我"。


                  这样就通关了。


                  IP属地:湖南10楼2022-11-19 17:28
                  回复
                    OK那么到这里,第六关就结束了。


                    IP属地:湖南11楼2022-11-19 17:28
                    回复


                      IP属地:山西来自Android客户端12楼2022-11-19 23:26
                      回复
                        这也能水,


                        IP属地:河南13楼2022-11-20 09:47
                        收起回复
                          大佬,在一个游戏中,人物的血量和伤害是未知的,应该怎么查找?还有就是一个数值是8,每次仅增加1点,搜索出来的数值很多怎么办?


                          IP属地:山东14楼2022-12-19 07:28
                          收起回复
                            啥时候出定位机制和偏移的课


                            IP属地:重庆来自iPhone客户端15楼2022-12-19 11:03
                            收起回复
                              顶大佬


                              IP属地:四川16楼2022-12-30 17:01
                              回复