旅行青蛙反编译学习-青蛙旅行破解

作者: 超威蓝猫l | 来源:发表于2018-01-25 14:42 被阅读2528次

    最近旅行青蛙风靡朋友圈 而我为了想给我的蛙蛙弄点好吃的(出去装逼),就萌生了反编译这个念头。

    教程仅仅提供于学习 不可作其他用途

    解压所需要的文件

    先下载apk 然后解压apk 在assets\bin\Data\Managed\Assembly-CSharp.dll 是unity编译出来的代码 所有的逻辑都在这里面。(WTF 我也不懂C#)

    反编译工具

    这里我下载了两款工具用于使用

    • JetBrains dotPeek
    • dnSpy
      刚开始我用的JetBrains家的dotPeek 这东西挺好用 跟android studio的快捷相似 能够通过点击跳转 找到逻辑
      找到需要的类之后 打开dnSpy去修改响应的值

    过程

    把 Assembly-CSharp.dll丢进去dotPeek image.png

    通过查看类名 发现了可能是数据储存的地方


    image.png

    点开SaveDataFormat,一进去就看到路径


    image.png

    通过查询 知道了该路径在android 上的path 是/storage/emulated/0/Android/data/package name/files
    查看手机 发现了GameData.sav两个文件

    刚开始我是想通过写C#将文件读出来 写进去的方式修改 但是后面发现二进制的序列化和反序列化没办法跨数据集,屡次失败 然后通过搜索 换了种思路(改dll)

    通过跳转查逻辑 最终发现SuperGameMaster这个类是显示以及获取数据的地方,游戏的逻辑是从数据包中读取数据 并将对象放到一个对象之后。然后通过一个方法获取响应的值。类似于java的get,看图就懂了


    image.png

    如下图,ticket是指抽奖券 那么现在开始修改 右键 编辑


    image.png

    先点击右下角的重置 将这个三个的勾选去掉 然后0 和 1 随便一个 右键删除指令 现在剩下一个操作和一个return 。修改操作码为idc.i4 将值改为你想要的值 比如200


    image.png

    点击确定后可以看出代码已经变成200了


    image.png

    当然了 限制不能超过999, 有一个方法做了处理。但是其实也没必要超过 因为现在已经是永远200 用不完的

    重打包

    将dll保存过后 替换掉原来的dll之后 需要重打包 因为android 签名的时候会将所有文件做一个hash 所以去搜索一个android的重打包 重新打一个包 即可。

    Tip:温馨提示 因为签名不一样 所以不能覆盖安装。因为先将GameData.sav先保存一份 然后卸载原来的 再安装自己反编译的 再将文件导进去即可。
    三叶草改 public static int CloverPointStock()方法即可

    这次反编译还请教了八哥、远远、学爷 让我能反编译下去(卡在序列化反序列化那个卡的我都想放弃了),这次我还发现反编译dll比想象中好像简单一点

    1. 用另类的方式修改三叶草/抽奖券
    2. 修改抽奖几率
    3. 修改保存的图片张数
    4. 获得珍稀照片
    5. 缩短旅行时间

    2018/2/1 更新。换种方式改三叶草/抽奖券

    旅行青蛙版本:1.0.4

    现在全程用dnspy修改

    先搜索 足 这个字。这个字是买东西不够钱会弹出来的提示。


    image.png

    setinfo 这个方法。定位到245行 将判断条件改了


    image.png image.png
    image.png
    image.png

    现在判断条件改成负数(你自己想要的值也可),就能直接买了
    但是钱还是会照扣,所以还要把写入数据的地方改了

    定位到同文件327行


    image.png
    image.png
    image.png
    image.png

    现在就是你买多少 给你多少钱

    那么抽奖券在第一个搜索关键字那里


    image.png
    image.png
    image.png
    image.png image.png
    image.png

    这样就能完成抽奖券的修改

    这样修改能让人不知道我们修改过

    修改抽奖几率

    在修改抽奖券的同一文件下


    image.png

    这个方法就是抽奖的方法


    白球60 篮球27 绿9 红三 金1
    这个是抽奖的概率。想要抽全是金就改成99就行 红球金球都想就改成98 绿也想就改成94


    image.png image.png

    修改保存的图片张数(待测试)

    image.png
    image.png

    现在修改成了600 现在我的图片还没到60,待测试是否通过
    只改这个到了60 还是会让你删除

    image.png

    这边的判断也改一下 就能保存了

    但是还存在 相册不能右翻页到11页的情况

    image.png
    这个也改掉就能 看10页以外的图片

    2018/02/03 加快游戏进程

    在initLoading的时候 会查看并刷新剩余出门时间


    image.png

    这个方法就是计算你剩余多久进行下一个活动。本来我是想让儿子立刻出门的。但是测试发现有问题,因为参数是互相纠缠在一起。因此不好弄。只好加快游戏进程


    image.png
    我们点进去这个方法
    image.png

    会发现都在减这个时间


    image.png
    看这个activeMath这个方法
    等这个时间减少之后 就发触发事件了(应该是这样的)
    回到loading
    image.png
    会发现传的参数是lasttime什么的
    点进去
    image.png

    发现是用现在设备的时间减去上一次登陆进去游戏的时间
    看上面 要是校验时间失败就会返回0
    Mathf。clamp这个方法搜索知道 这个时间不能大于一个月 不然算一个月
    因此想要时间加速就话就改参数吧
    这个是秒 那么我就想加速60倍 一秒当一分钟用
    ==================================
    错误示范


    image.png
    本来以为*60 会很难写 没想到试出来了 还好没放弃
    image.png
    加这两句
    ==================================
    以上是错误得 我有点天真 想着能够通过相乘进行加速 但是我弄不出来 相乘之后 会卡在initLoading那里
    最后实在没有办法 就将最小得值改为一个小时 就是说 你initLoading一次 就过去一个小时
    image.png

    2018/02/02 获得珍稀照片(测试中)

    ================
    测试中 不保证正确

    image.png

    如图 找到叫珍稀照片的关键字 知道是这个getEvt方法获得的list里判断的


    image.png

    将判断条件改了应该就ok了


    image.png
    此外 合影我也想要
    image.png

    2018/02/03 更新 改这个参数只是能更轻松进入到待选席位上


    如上图 timeSpanSec 会在刷新的时候减去这个参数
    所以 要想办法减少这个参数就行
    如图是普通的(应该就是单身狗)
    这个就不管了

    ~~后面的一判断条件一层一层 暂时没想到法子能直接弄 ~~
    在珍稀的这个方法中 有一个叫flag的东西


    image.png

    把flag都改成true就行了


    image.png

    但是改了还是不一定能每次有ssr

    =============================================

    相关文章

      网友评论

      • 骑驴去看海:我就想要你重新打包的游戏而已
        超威蓝猫l:老了 现在好像已经1.多版本了
      • sala_674e:我就想要你重新打包的游戏而已
        超威蓝猫l:@__9491 可以的 把限制改掉就行了 分别是插入时候的判断 以及相册的长度 都改掉就可以了 你看我代码
        __9491:@超威蓝猫l 请问你修改张数成功了吗?测试的三叶草数量和抽奖劵倒是成功了,照片依旧只有十页
        超威蓝猫l:不敢给你 出事不就gg

      本文标题:旅行青蛙反编译学习-青蛙旅行破解

      本文链接:https://www.haomeiwen.com/subject/ayjvaxtx.html