安卓逆向学习--某简单游戏破解学习记录
一、环境以及所用到的工具
- 真机: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不等于102\104\1001时跳转到跳转到支付成功时应该执行的代码处)。最后编译打包即可。当然砖石增加都在so层,但这里能直接在smail层破解掉就不去看so了。(ps:这个简单游戏是某大佬发出来的教程带的的练习APK,会在文章最后附上大佬对这个简单游戏破解的链接)
三、相关链接
某大佬的链接:https://blog.csdn.net/guiguzi1110/article/details/40586339
作者github链接:https://github.com/windy-purple/TTXLM
|