本帖最后由 534590526 于 2020-3-14 22:03 编辑
吾爱破解论坛
全网没找到这游戏的河蟹~
今天心血来潮给破了
本人也是第一次发帖,一个小白,初中就接触到了论坛,但是那时没网银,买不了邀请码。
等着2015中考毕业后有了银行卡,麻溜把吾爱的账号注册了,但基本上都是在论坛上“淘宝”,喜欢用些破解软件。
现在大学了,学到了些计算机、编程的皮毛知识,就自己对破解来了兴趣,现在玩手游乐趣并不在手游,而是在于破解手游.......
操作也都是在论坛上学的,想着自己运用一下,也回报52论坛这么多年给我带来的惊喜。
若有写的不好的地方,请大神多多指教~
这次修改也是模仿了很多相关游戏破解帖子 游戏截图
taptap游戏页面:https://www.taptap.com/app/60637
修改工具:
1.MT管理器 2.7.2 (这个自己找)
3.il2cppdumper 地址:https://www.lanzouj.com/i5s3x5e
一、判断是否为Unity3d IL2cpp机制打包的游戏(小白也别贪心,本贴也只能教你改这类机制打包的游戏,并不是所有游戏都适用。其他类游戏有其他的方法)
用MT管理器打开apk安装包,在\lib\armeabi-v7a目录下发现了libil2cpp.so文件,以及在\assets\bin\Data\Managed\Metadata发现了global-metadata.dat文件,所以判定为IL2cpp机制打包的游戏。
二、把libil2cpp.so和global-metadata.dat这两个文件拷贝到电脑上,用上我们的工具il2cppdumper。
打开 Il2CppDumper.exe,会弹出 文件选择窗口,这时我们找到拷到电脑上的.so文件,
然后又会弹出一个选择窗口,这时我们选择.dat文件。
然后让你输入unity版本,就输入5.6就好了, 然后 回车 (这里我也不知道如何看游戏的unity版本,不过亲测5.6多数有效。望指教)。
然后选择模式,按2就好
dump结束,在il2cppdumper目录里会生成几个文件,但我们需要用到的是dump.cs的文件。
这个文件可以用文本编辑器打开,不过格式会有点乱,不过不影响。
这里我用的是Visual Studio 2017打开,(之前安装的,系统默认就用这个打开了),记事本也可以。
三、猜测相关函数名称
打开后ctrl + F搜索
这里我想,游戏的购买部分是以解锁的方式,所以我试了下lock,
果不其然,搜出一大堆,,,想着找到内购相关的函数得找多久啊,找到还不一定对。
于是我把关键词换成了unlock,咦!
爽,一下子少了90%的结果。在我翻到第4、5个unlock的时候,发现它所在类里面的函数有点意思“get_IsBuyCatCookies”“get_IsBuyStory”,这不就是我想找的嘛。
虽然猜的关键词有点歪,但不也曲线救国了嘛
发现这些函数的返回值类型是BOOL型,也就是0或1,
一般来说 0代表假,1代表真。那我们把函数的返回值强制改为1是不是就可以了呢?
然后找到函数“get_IsBuyCatCookies”后面的地址0x11CBC04,就是在.so文件中实际的函数地址了,我们复制下来
我们打开 十六进制编辑器(010 Editor)
将libil2cpp.so文件打开(可以拖入打开)
打开后就是一堆十六进制,然后Ctrl + G跳转到刚刚找到的地址0x11CBC04,改成如图 01 00 A0 E3 1E FF 2F E1。
这串十六进制就代表这 “mov r0 , #0x1 ;BX LR”,汇编语言这里就不介绍了,大家可自行了解,掌握一些常用的就可以了,个人认为若不是专业的看着还是挺费劲的。知道这是将函数返回值强制变为1就行了。 四、保存修改 保存,将修改过后的libil2cpp.so拷到手机,(推荐将MT管理器的一侧目录就置为一个固定目录,用来放.so文件,因为很多时候改游戏不是一次就成了,需要多次改动。) 然后用MT管理器长按将.so文件放进apk安装包它原来的位置 之后会MT自动签名,反正一路按确定
这里需要说明一下,我之前看的类似的帖子都是在电脑上都修改好,并且给apk签名打包了,然后再将apk拷到手机上安装,这里只是拷贝.so文件,剩余操作在手机上完成,个人感觉这样会快上不少。
安装好游戏,打开后发现项目已购买
YES!!!
到此,便知道函数找对了,于是把剩下几个函数 也改了,方法亦如上
下面是成果图
修改完成,一小丢丢的激动~
第一次发帖,就希望发个原创帖,还要有点长度,要有点内容,所以发了个小教程咯,,
(*^▽^*)希望各位像我一样的“老新人“也能学到想学的知识!
更新 在玩游戏时,阅读主线故事时需要查找隐藏线索时会用到药水道具
而这道具是有CD冷却时间的。
虽然之前已破解了游戏内购,但我个人比较急性子,想着无CD玩着就快很多了。
于是又想着把药水CD给改没,开干。
继续之前的教程第三步。也就是打开dunp.cs文件后,Ctrl+F,搜索关键词“get_SmallThinkCD” 就可以看见这2个函数“get_SmallThinkCD” “get_BigThinkCD”
猜测思路这里我确实没有,这是之前我修改内购时,往下翻了几页,发现这些函数有点意思,于是就尝试着改了改。 然后就试了试这几个函数,发现这两个函数确实就是控制药水CD的。
这两函数分别就表示获取游戏里面大药水和小药水的冷却时间,我们把它们返回值改为0。 和第三步一样,复制函数后面的地址,在十六进制编辑器(010 Editor)中Ctrl + G 转到地址,如图改为 00 00 A0 E3 1E FF 2F E1 这串十六进制表示“mov r0 , #0;BX LR”,也就是将函数返回值强制改为0 ps:我不知道float类型的数据汇编是不是这样返回的,不过在这里改至少达到了无CD的目的 将两个函数都这样改了,和之前一样保存,将.so用MT管理器打包进apk。 安装,修改完成。
若有帮助到大家,给在下评个分,以作鼓励,感激不尽!
再次声明:仅用作学习目的!!
|