【贪吃蛇】的内购 从java层到so层分析
1. 先反编译再打包,安装运行测试没毛病说明没有签名校验,点击购买 然后取消如图所示——
2. 取消后提示支付取消,那就搜索字符串【支付取消】然后跟进去
3 .然后查看java代码:分别有支付成功,支付失败,支付取消
3.重点来了,看到这个很熟悉的字眼那就不用多说了,只需要看到这调用的函数【BuyFailed】【BuySccess】
说明要么成功 要么失败。修改的方法很简单,只需要把失败的函数全部替换为成功的函数即可完成内购。
==================================分割线=======================================
【上面是java层代码的修改方法,几乎很简单,没啥挑战难度,接下来增加点难度 ,从so层修改】
1. 跟进支付成功 和支付失败的方法。
2 .跟到了so文件这里,修改APK为压缩包形式 拖出【libgame.so】文件
3 。载入so文件之后。
4。跟进这两个方法。【BuyFailed】【BuySccess】并且对比两个方法
5 。切换到16进制按F2输入法切换为英文再输入【C0 46】 再按 F2保存。
6.看到nop掉了代码。
7. 保存so文件 并且放进压缩包
8. 购买
9 . 如果嫌【购买弹出的支付窗口很麻烦】很简单直接注释掉 这两行代码即可。即可直接快速购买
===================================================
很少发帖 ,这次希望大家多多支持 热心啥的{:301_1009:}
原版:【https://www.lanzouj.com/ia22a1a】
成品:【https://www.lanzouj.com/ia229ud】
三个小时了,终于按照楼主的操作全部完成一遍了。有几点想提醒后来的和我一样的新手朋友们:
1、IDA不要用64位的,因为64位中插件的打包不可用,也就是modifyfile不可用。这个真是让我费劲了心思才发现。反复下了好几个版本,下了好几个插件。。。心酸。新人的摸索。
2、用winrar直接打开apk,so文件就可以直接解压出来了,lib里面有三个文件夹都有这个libgame.so。直接用第一个armeabi里的就行。等修改好后,如果是用模拟器,把armeabi文件夹里的文件替换即可,如果用手机,可以考虑把三个文件夹的文件都替换了。
3、ida新手真的不好上路。建议先看看鸭子大神的新手帖https://www.52pojie.cn/thread-732298-1-1.html。
4、文件替换好后,安装有时会提示安装失败。是因为没有签名造成的。最简单就是用mt签个名。用mt打开你替换好的apk如图,点击功能,然后点击apk签名即可自动签名。然后就可以安装了。
5、有问题多摸索,反正折腾不坏机子。多交流。 学到了学到了 好好学习学习学习 最下面两张图为。。。【不知道怎么回事 估计排版的问题把】 可以忽略掉{:301_971:} 这篇文章写得真好,每一步都有详细说明,很有学习意义。希望在多写一点类似的。 礼问源文件。 感谢楼主分享精彩教程 感谢楼主分享,小白努力学习中 感谢楼主分享教程 楼主厉害 。。。。。。