Fate/Grand Order的那些事

2016-10-13 6,514 ℃

日服v1.15

在一个月的时间里经历了太多事情,现在终于可以慢慢的写下这篇马后炮了。

调试

Fate/Grand Order在v1.11换了个保护并禁止了root过的手机,其实当时我早已卖号弃坑,不过为了拯救基友root过的手机,我又重新捡了起来。说起这个新保护,我不是很能理解官方为什么要抛弃上一套opcode修改的方案,我个人认为opcode修改的方案再配合其他一些搅屎棍强度完全可以超过这新的保护,这新保护在我所有搞过的保护里难度也就中下水平,没有烦人的反调试,也没有乱序那些搅屎棍,检测的相关代码改一个位置就能跳过,dump出DLL也是在标准位置。1.11以后每个版本官方都多给一个so加层保护,然而这并没有提升半点强度,因为用的同套方案的缘故,每个so调试时断的点都一样我已经不想吐槽了,这做法大概也就延长点调试的时间和游戏的启动速度了吧。1.13官方还是有了点动静,加了个fgo.so,并把DLL的部分代码塞了进去,不过用的还是同套方案强度还是那样。。。1.14官方又想了个新招,这次从标准位置dump出来的DLL methon body部分还是加密着的状态,不过既然只是加密那总要在内存中解密,所以只要换个姿势dump出来就好了。1.15因为某些你懂得的原因就没有任何变化了。。。

免检

前面只是调试部分,如果只是写个脱机挂之类的到这里就结束了,不过为了拯救基友root的手机还得继续往下走。凭我的能力唯一能做的就是做个去除检测的修改版。1.11把classes.dex替换成上个版本,然后把dump过的dll直接塞进去就行,1.12虽然官方在libmain.so上用了同套方案,但是因为没换mono的版本,所以直接用上个版本的libmain.so就行。1.13增加了libfgo.so把key塞了进去,为了绕过检测dump出so后照抄原来的代码还原到DLL上。至于1.14,mono版本还是没变,所以libmono.so继续使用老版本,不过这次官方几乎把整个CatAndMouseGame类都塞进了so里,因为代码看的不是特别习惯的缘故第一次做的时候没有成功还原所有代码,所以才再贴吧发了一贴。虽然后来过了一段时间重新看的时候搞定了,不过都是过去式了。
1.13之后的fgo.so应该有更好的处理方案,比如像群里其他大佬做的把dump后的so修改下丢进去就能跑,这样就不用辛苦的还原DLL的代码,或者更进一步,一开始就选择做绕过检测的插件之类的。然而我的安卓编程经验为0,叫我写个安卓的hello world我都写不出来,这些东西也只能可望不可即了。

尾声

现在已经有大佬写了绕过检测的插件,免检版也可以退下历史的舞台了。最后就丢个东西算个有始有终吧。
Fate/Grand Order v1.15 CatAndMouseGame.cs

Github

如果使用了代码希望注明一下啦(
最后,为了增加自己的技术水平,今天回宿舍的路上去图书馆借了几本安卓的书,不过我这三分钟热度能看多久呢…

BanG Dream修改相关

版本:1.1.0 好久没有写游戏修改的文章了,最主要的原因是没有感兴趣入坑的游戏。这次新出的BanG Dream个人还是挺喜欢的,除了上拉note感觉有点反人类。然后...

阅读全文

超简单的il2cpp游戏修改教程

本文较旧,已不适合参考 锁链战记3.0版本也是换上了il2cpp,所以刚好就用它来写一篇简单的il2cpp修改教程 使用的是日服3.0.1版的锁链战记 首先要使用一款工具...

阅读全文

mukaRCrypto

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

阅读全文

39 条评论

  1. 参见大佬!我最近在尝试反编译崩坏3的dll,但是感觉和我以前做的套路很大不同,
    以前的经验都是在mono_image_open_from_data_with_name这个函数中看它怎么还原,
    但是这次我发现该函数好像没有被改动!
    大佬可以挑战一下给点思路嘛?

      1. 谢谢,不过试了竟然没有搜出来任何东西。看来还是不行,不知道大神还有什么其他思路吗

  2. 跑去试了ROOT隐藏插件然后无奈的发现对于我的神奇的国产手机并不适用….讲真的还是希望P神出免检…不过已经弃RF奔GF也就没啥所谓了…非常感谢之前P神做的免检让我续命几个月…

  3. 看到很有用,请问一下楼主
    如果想做脱机的工具,怎么获取那一堆加密解密的函数或者说方法呢?
    方便的话提供一下大概思路即可,我自己去学习
    国服..目前是通过修改回包来实现挂,想研究下有没有脱机的。。

  4. 可以請教一下
    this.attack.Value = um.AttackValue();
    如果我想改成
    this.attack.Value = um.AttackValue()*10;
    il語系要怎麼改或是net.reflector能直接用c語言直接下去改嗎?

  5. dalao 那些DLL在unity3d文件里面的,提取出来怎么打包回去呢?还有IL2CPP你会破解吗 求指教

  6. 大佬,请问一下大佬能不能尝试寻找一下崩坏3的模型?我用大佬的那个unit3d studio和下载的3DSMAX都找不到。不知道是什么原因。

    1. 。。。我只教一遍啊,不懂就没办法了
      解压apk,打开UnityStudio,选择globalgamemanagers,scene hierarchy勾上你要导出的模型,菜单栏export-select 3d object,导出FBX和贴图,丢进3DMAX就行了

  7. P神你好撒,感谢一直做了那么久的免检测出来…尽管这回发布的1.15不会用的说…但是还想问一下…现在号卡在我的手机里..木有root..号ID一直都是我加别人…也没有记过…无法申诉w(゚Д゚)w,请问有什么办法能把ID或者资料“提”出来吗? 先谢过(≧Д≦)

  8. 大神, 我目前的進度如下, 麻煩你再給我一點想法
    我的ida是6.8, 不知道為什麼載完libunity之後偶爾會有一個線程干擾我, 使我的ida報錯(segmentation fault)
    順利的話我可以dump出dll, 但如同大神說的, 只能看到method_name, 其他都看不到了
    所以我就先把有興趣的記憶體區段記下來, 等到載入libfgo後再dump出dll一次, 這次dll的rva反而有問題了
    再來就是libfgo感覺有加密, 但是我不知道怎麼取得進入點, 而且來到這邊之後不是ida當了, 就是被發mail
    感覺距離解開還有一段路, 大神認為很簡單, 我卻只能憑著興趣慢慢前進, 希望大神能給些建議, 感謝

    1. il2cpp其实并不是非常好用,并不适合所有的il代码,游戏一开始就用il2cpp开发还好,后面再转的话一般都要改非常多的东西。。。

欢迎留言

6 + 8 =