战场的女武神2吧 关注:1,468贴子:19,528
  • 4回复贴,共1

【授人以鱼】寻找金手指地址+分享锁定回合数1金手指代码

只看楼主收藏回复

一楼祭度娘。


1楼2019-03-27 18:32回复
    前言:
    第二遍想打全S,但是又想佛性游戏,不想算的太厉害,就想找个无论如何锁定S评价的。网上找到:
    _C0 战斗评价 S
    _L 0x20222128 0x24020000
    _L 0x201FA0A4 0x240203E7
    _L 0x2001E6C0 0x24022710
    _L 0x2020C70C 0x24022710
    _L 0x20223088 0x24042710
    _L 0x202856F8 0x00000000
    _L 0x205607A4 0x43100000
    _L 0x20002000 0x3C013FC0
    _L 0x20002004 0x0A2BD53B
    _L 0x20002008 0x4481A000
    _L 0x2021CF34 0x0E200800
    然而,一用就死机,于是只好自己琢磨了下金手指的原理:
    本质上来说,金手指的代码就是锁定内存地址上的数值为后面的。每一条代码由两部分组成,以十六进制表示,第一个数字是内存地址,第二个数字是锁定的数值大小,比如CP最大金手指代码如下:
    _C0 CP最大
    _L 0x0087A3FC 0x00000014
    其意义为锁定地址0x0087A3FC处的数值为20,所以CP就一直是20了。


    2楼2019-03-27 18:36
    回复
      好了,现在开始操作;
      我们第一个任务,尝试使用内存修改工具来锁定回合数:
      首先打开游戏,随便选一个关卡,开始游戏。
      这一步的原理是:通过数值的变化规律,找到符合该变化规律的内存地址。进而得到游戏中某一个数值对应的内存地址。
      此时打开game master,选择“资料搜寻”菜单栏,并选中对应的进程:
      如下图所示:

      然后此时回合数为1,在“搜寻目标”输入要查找的数值1,点击搜寻按钮:

      此时可以看到有很多个地址都是1,无法确定具体是哪个表示的回合数;所以我们要让游戏中的这个数值发生变化;
      所以回到游戏,进入下个回合,当回合数变成2,再次搜索2,这个工具会在第一次搜索的基础上再次搜索上面那些地址变成了2的部分:

      可以看到还是有很多地址,我们再进入下个回合,使其变成3,然后搜索3,如此重复,直到我们得到最终1-2个的数值。

      其实到了这一步,已经可以通过game master来实现锁定回合数的功能了。
      我们也找到了存储回合数的内存地址是:14085E98,十六进制表示应该是0x14085E98
      懂程序的同学应该会注意到这个地址比较大,似乎不是正确的地址,接下来会说到。


      5楼2019-03-27 19:10
      回复
        我直接将这个地址作为金手指代码写入模拟器发现并不起作用,于是我们要查找起作用的金手指和我们这里得到的内存地址之间的关系,所以以CP为例,
        CP的金手指代码如下:
        _L 0x0087A3FC 0x00000014
        意思是锁定0x0087A3FC地址处的数值为0x14,也就是20.表现到游戏里面就是始终拥有20个CP。
        那么按照上面的方法,我们使用gamemaster来查找一下CP。
        注意,要重新搜索,在gamemaster处需要新建目标或者清除之前的目标,注意搜寻次数和结果数目的提示。
        我现在要重新找一个地址,点击新建任务,游戏里此时CP数目为20,所以直接搜索20,如图所示:

        然后消耗CP使数目改变,继续搜,如上所述,我们最终得到相对稳定的结果如下图:

        这里我们得到了两个地址:
        13FEFFBC和1407A3FC,那么到底哪一个才是真正的CP数值呢?
        这里我们通过Game master分别对这两个数值进行修改,看看那个真正影响到了游戏,就得到最终真实的CP树的地址:
        比如我修改13FEFFBC的数值为20,然后游戏里进行操作,发现并没有什么卵用。
        然后再修改1407A3FC的数值为20,此时游戏里的变化符合我的预期:

        所以我们知道CP对应的内存地址应该是0x1407A3FC


        6楼2019-03-27 19:23
        回复