夏诺雅吧 关注:321贴子:12,659

国外(其实就是如本)一个战棋游戏的修改器制作(简易版的)

只看楼主收藏回复



IP属地:湖北1楼2021-09-08 21:59回复
    上面是日本,非如本,打错字了


    IP属地:湖北2楼2021-09-08 21:59
    回复
      首先,需要准备一些工具,因为也是才接触这些,所以很是初级
      需要的工具:1 易语言(我的是免费版5.8)
      2 ce修改器(全名Cheat Engine我是7.2非会员版,一般够用,主要是为了查看内存)
      3 od(全名Ollydbg大名鼎鼎的,额,反正就是反汇编工具,当然和ce一样,也是国外大神做的)


      IP属地:湖北3楼2021-09-08 22:04
      回复
        先打开od,用od打开游戏程序

        我用的是爱盘下载工具,汉化过的


        IP属地:湖北4楼2021-09-08 22:07
        回复
          打开后是这样的,点击文件打开需要分析的游戏


          IP属地:湖北5楼2021-09-08 22:08
          回复


            IP属地:湖北6楼2021-09-08 22:09
            回复
              刚开始附加到程序(也就是你的游戏时时暂停状态的),需要点击运行


              IP属地:湖北7楼2021-09-08 22:10
              回复
                点击三角运行按钮后,游戏开始运行


                IP属地:湖北8楼2021-09-08 22:12
                回复
                  这时候,我们开始游戏,并进入其中的一关。我们打开ce

                  然后进入ce是这样的

                  点击电脑图标,打开运行的程序


                  IP属地:湖北9楼2021-09-08 22:17
                  回复
                    然后找到你的游戏,点击打开

                    这是我们回到游戏,找到一个容易改变的数值,因为数值一般是最好搜索的东西,我找的是经验值

                    接着,记住这个值,去ce中搜索


                    IP属地:湖北10楼2021-09-08 22:22
                    回复
                      接着在游戏中操作这个人物,让他的经验值变动,在去ce中填写变动的值,点击上方的"再次扫描",知道找到一个地址,或者几个地址时。比如我找到了3个地址,随便双击一个地址,添加到下方。

                      然后修改这个值,看看游戏中是否改变,如果改变,那这个值就是对的,没改变就换下一个地址


                      IP属地:湖北11楼2021-09-08 22:28
                      回复
                        双击1号位置修改数值,2号位选择框是锁值,也就是游戏中的锁血功能

                        进游戏,我们发现数值改变了
                        那么说明我们修改对了

                        好的,本次教程完结。开玩笑的,这是ce找数值的部分,但是这个东西,只能你自己用,别人也想作弊怎么办呢?也就是在小伙伴面前装逼怎么办呢?(或者是别人想花钱让你修改游戏)


                        IP属地:湖北12楼2021-09-08 22:36
                        回复
                          那么,就下来就是怎么把这个东西做成一个可执行程序(windos上面是exe文件)
                          不慌,我们先来了解一个概念,就是windos中,每次游戏打开,系统给游戏分配的内存都是变化的,所以,你修改的话,每次都得从新找值,这样很麻烦,但是,有一个标准,就是存放人物数据的代码那一块,相对于游戏的开始代码总是不变的。(举例一下就是,地球相对与太阳一直都是变化的,那么我们相对于太阳也是一直变化的,但是我们相对于地球的位置是不变的---假设我们只在中国---如果从太阳系中找到你,是很难的,但是如果先找到地球,在根据地球来找到中国,进而找到你,那么是不是容易一些了呢),所以游戏人物的基址就相当于你在地球的国家,偏移地址,就相当于你所在的身份,街道等等。那么,继续下一步


                          IP属地:湖北13楼2021-09-08 22:43
                          回复
                            打开ce搜索刚找到的地址


                            我们用dd 指令来跳转地址 ps:直接dd + 地址是跳转到地址 dd + [地址] 是把地址中的存放的32位值当做地址,跳转到这个32位地址


                            IP属地:湖北14楼2021-09-08 22:50
                            回复
                              我们找到这个地址,发现它存放的值是63,也就是16进制的99,和我们的数值吻合

                              接下来就是为个地址打上断点,查看是那段程序改变了它的值,左键选中当前地址(也就是跳转的地址,第一行就是)右键这一行,点击断点->内存写入(这里无法截图),这时游戏被下了断点,当经验值改变时,就会停止

                              可以看到,我打敌人结束后,游戏停止了,我们看向od,发现在箭头所示的位置,后面是汇编代码
                              这句什么意思,把eax里的值存到ecx + 16c中,明显可以看到,16c是经验的偏移地址(你的头发相对于你心脏的位置,我们现在要找心脏,找到你这个人)所以人物的基址是ecx中


                              IP属地:湖北15楼2021-09-08 23:00
                              回复