本帖最后由 疯火戏猪猴 于 2020-4-17 20:10 编辑
游戏内购破解思路其实很简单,我分享其中一种思路吧。以咪咕SDK为例,我随便找一个APK试试。
第一步。首先要玩一遍游戏,了解大概游戏流程。知道计费点在哪里,怎么弹出的,有利于找到计费入口。
注:如果比较了解嵌入的这个SDK会更简单,直接搜索支付入口即可找到。
第二步。找计费入口,我们可以搜索 success、pay等关键字。我这里在搜索pay的时候就已经搜到了支付入口(这里可以适用工具jadx)。
1.png (14.22 KB, 下载次数: 4)
下载附件
2020-3-9 10:46 上传
它的回调函数暴露了它的成功失败给道具的函数。
大概看一眼topay的实现,可以判断出payid就是我们传入topay的第三个参数
2.png (5.79 KB, 下载次数: 4)
下载附件
2020-3-9 10:46 上传
那就简单了 ,只需要把我们的给道具方法替换topay购买方法即可
第三步,反编译(apktool,改之理等都可以)
具体操作,去找到那个要替换的类
3.png (22.18 KB, 下载次数: 5)
下载附件
2020-3-9 10:46 上传
因为topay以及回调函数属于内部类格式smail的格式为每有一层就加一个$所以回调函数是$2$1,只有$2$1有两层,所以我们就可以看出topay在$2smail里,给道具方法在$2$1里 。
第四步。我们只需要把2$1里的给道具方法替换$2里的topay即可i
4.png (26.11 KB, 下载次数: 5)
下载附件
2020-3-9 10:46 上传
之前我们说过了payid就是我们传入topay的第三个参数所以我们把
nvoke-static {p1}, Lcom/t3game/template/Scene/jinbi;->saveProps(Ljava/lang/String;)V
改为
nvoke-static {v4}, Lcom/t3game/template/Scene/jinbi;->saveProps(Ljava/lang/String;)V
把上面的topay注释掉或者删掉
最后一步。回编译,撒花完结
写帖不易,动动小手免费评分走一波呗,谢谢~