锁链战记3.0版本也是换上了il2cpp,所以刚好就用它来写一篇简单的il2cpp修改教程
使用的是日服3.0.1版的锁链战记

首先要使用一款工具:Il2CppDumper,暑假pokemon go火起来的时候国外出现了一堆U3D的修改工具,这就是其中之一。这里推荐使用这个增加了交互功能的版本,可以省的自己重新编译。至于这工具具体功能我就懒得介绍了,反正往下看就知道啦~

使用Il2CppDumper

从apk解压出libil2cpp.soglobal-metadata.dat,把libil2cpp.so丢进ida,等分析结束后,在左侧Functions window搜索il2cpp::vm::MetadataCache::Register
qq%e6%88%aa%e5%9b%be20161206174523
双击.plt那一行,在右侧可以看到一个引用,双击qq%e6%88%aa%e5%9b%be20161206175012可以看到这个qq%e6%88%aa%e5%9b%be20161206175145
接下来把上面的Il2CppDumperlibil2cpp.soglobal-metadata.dat放在一起,双击运行,分别输入上图的头两个offset,就是174E8581739C10,等待几秒后就能生成dump.cs啦

修改

打开dump.cs看一眼,你大概就可以猜出Il2CppDumper的功能了。接下来就是找修改的位置,这里直接参考了我去年写的一篇文章,里面列举了非常基础的修改位置,可以看出修改攻击力的话就是修改CardInfo下的get_ATK函数的返回值,在dump.cs里搜索就能找到,右侧的值就是函数所在的位置啦
qq%e6%88%aa%e5%9b%be20161206180421
接下来就是修改so,因为这就是个返回攻击力int数值的函数,所以修改思路就是让它返回一个大值,这里il的代码还是有点参考价值的,arm下也就是两句话
mov r0,#0x19000  —>  ldc.i4 0x19000
bx lr                       —>  ret
注意arm里不是所有数都可以是立即数的,具体的就自行百度啦
接下来就把这两句话转换成HEX,用这个在线转换网站,输入上面两段代码,在ida里明显可以看出代码的间隔是4字节,也就是32位,所以就选x32,点击Convert后就可以得到HEX
190AA0E3
1EFF2FE1
接下来就在16进制编辑器里,跳转到偏移0x91ae50,把上面的HEX写进去就修改成功啦~

Fate/Grand Order的那些事

日服v1.15 在一个月的时间里经历了太多事情,现在终于可以慢慢的写下这篇马后炮了。 调试 Fate/Grand Order在v1.11换了个保护并禁止了root过的手机,其实当时...

阅读全文

mukaRCrypto

无聊尝试用C++/CLI写的程序,发现这东西还真的有点好用啊 Σ( ° △ °|||)︴ 看到还有人在问怎么得到的,其实这次加密根本就没什么难度,直接搜索“.mukaR”,定位...

阅读全文

OZ Chrono Chronicle相关

版本:1.0.1 前言 我对这种换装的萌系游戏其实并不感冒,这次也是被群里硬拉过去玩,玩的这几天来看,这是一个重氪+爆肝的游戏,体力恢复的简直不要太快,目...

阅读全文

21 条评论

  1. 版主您好,不知道你對鎖鍊戰記的網路傳輸封包是否有研究?

    小弟玩的是台版,本來台版在密路傳輸過程中都是沒有加密的明文,可以簡單透過wireshark或是fiddler之類的debug proxy瞭解到封包內容。

    但是從2.7.2之後,response給加密了起來,因為日版是早已加密過的了,不知道版主是否有經驗能從反組譯的apk當中找到加解密的function可以分享一下

  2. 又再來打擾P大你.. 302的地址真的不知怎樣找.. 雖然已經跟據你提供的get_ATK地址修改好了.. 但還是不會找地址.. 希望P大能再分享多一點經驗.. 謝謝~

  3. Perfare大大, 最新版 3.0.2用 IDA Pro打開 libil2cpp.so 時會出現

    This file contains non standard usage of relocations.
    Please send the input file to

    按OK進去後, 也搜尋不到 “il2cpp::vm::MetadataCache::Register”……

  4. 感激P大的教程..
    有一點想P大具體說明一下: 就是說跟以往要修改不用mana珠就能發動必殺技的這類修改是不是不可行? (要把變量 增加或縮減 一個整數或浮動數值)

    1. 首先你要找到变量的位置,然后具体问题具体分析,就会有很多种修改方式,比如
      mov r0,r1的时候改成add r0,r1,#1
      或者改为B到一个没用到的地方,add完以后再b回来
      或者还有很多修改的方法我这里就不列举了

      1. 謝謝回覆.. 了解多了..
        我怕的就是把某段刪減後, 整體位置都會亂掉..
        例:
        A0 mov r4,r0
        A4 mov r6,r1
        A8 mov r1,#0x123
        AC …
        … …
        把A4 mov r6,r1 刪除後, 是不是要把往後的地址全都要改?

          1. 還是不明白.. 用mov r0,r0 只把要刪掉的那一句替換就可以?
            因為我查看P大修改的3.0.0 版, 發現是整段函數只有兩句.. 但原本是有8句.. 教程中說到只替換兩句就完成.. 這點一直想不明白.. 是要把後面的HEX都置零?

              1. 报告!报告! 终於成功修改了.. 虽然也就是跟P大修改相同的地方而已.. 但已经有突破点..

                应该要花更多时间才可以修改无限技能, 快速超必杀技, 10倍速, 完成宝箱等, 较复杂的修改..

                再次谢谢P大的教程和回覆我的愚问~ 感激..

欢迎留言

9+5=