安卓逆向学习--某简单游戏破解学习记录

安卓逆向学习--某简单游戏破解学习记录


一、环境以及所用到的工具

  • 真机:android 4.4.4
  • AndroidKiller
  • JEB

二、破解思路

将该游戏拖进手机安装打开以后尝试打开商城充值,发现支付失
等字样,将该APK拖进AndroidKiller中,搜索支付失败字符串,发
现未找具体的支付实现方法,后面在游戏刚载入处发现移动MM支付
这些信息,推断为移动MM支付,尝试搜索onBillFinish方法(该方法为移动MM支付支付完毕之后的一个判断结果方法,大致是这样吧),在IAPListener类中发现该方法,使用JEB将smail转换为Java可以很清楚看到逻辑(使用JEB转换为Java比jd跟好一些),当变量arg5等于102或者104再或者是1001时判定为支付成功,然后做相应处理,逻辑分析到了这里,在smail层可以很轻易破解成功,这里用最简单的方法:在smail层修改支付失败时逻辑也跳转到支付成功时执行的代码块,在smali中将涉及到的判断if-eq修改为if-ne即可(相当于支付失败时即变量arg5不等于1021041001时跳转到跳转到支付成功时应该执行的代码处)。最后编译打包即可。当然砖石增加都在so层,但这里能直接在smail层破解掉就不去看so了。(ps:这个简单游戏是某大佬发出来的教程带的的练习APK,会在文章最后附上大佬对这个简单游戏破解的链接)

安装截图

关键代码截图

关键代码转java截图

修改代码截图

破解成功截图1

破解成功截图2


三、相关链接

某大佬的链接:https://blog.csdn.net/guiguzi1110/article/details/40586339

作者github链接(可下载相关附件):https://github.com/windy-purple/TTXLM

PS:未经作者许可,严禁转载!!!

写作不易,觉得作者还可以的话,可以请作者喝杯奶茶哟!!!
请作者喝奶茶支付宝二维码

原文地址:https://www.cnblogs.com/aWxvdmVseXc0/p/11773745.html