本帖最后由 疯火戏猪猴 于 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注释掉或者删掉

最后一步。回编译,撒花完结

写帖不易,动动小手免费评分走一波呗,谢谢~