最近公司需要测试安卓app安全,但安卓基本上0基础,决定了解下安卓逆向
根据吾爱破解上教程 《教我兄弟学Android逆向系列课程+附件导航帖》
https://www.52pojie.cn/thread-742703-1-1.html ,感谢此教程帮助我快速了解了安卓逆向
破解的程序: https://pan.baidu.com/s/10hxJITuLYr11p9MfrmGpRA 提取码:r7wa
第三章任务是破解水果大战
首先打开游戏,发现是有很多地方需要收费的,我们就反编译这个app,改动一些函数,使我们直接跳过收费的地方达到破解的目的(以下行为仅供学习及测试用途)
首先用Android KIller打开
然后搜索 "失败" 转码后的函数
应该是MymmPay那里,打开看看,可以转成java大致看一下是不是和支付有关的函数。
基本上是这里了,然后回到AndroidKiller 打开,浏览以下发现有以下几个关键函数:
payResultCancel() payResultFalse() payResultSucess()
分别代表着支付取消,支付失败,支付成功
如果我们吧支付取消,支付失败的内容都改换成支付成功的内容,那岂不是不管如何操作都代表着支付成功了
我们就把支付成功的函数复制到其他两个里面
复制. method publi payResultSucess()函数里 .payResultSucess()下面 到.end method上面的内容到 payResultCancel() payResultFalse()里边(替换方框里的内容)
复制从这里开始
中间省略。。。
到这里结束
最后删除可能会产生费用的危险权限:
在AndroidManifest.xml里搜索(或者可以直接搜索下面的这个)
android.permission.SEND_SMS
删掉
<uses-permission android:name="android.permission.SEND_SMS"/>
最后再编译打包,就可以无限再游戏里消费了
方法2.
上边的方法是,替换购买失败部分的smail函数,让用户支付失败也会成功
换个思路,我们去找哪里调用payResultFalse方法 然后我把这个方法名字改成支付成功方法的名字:
看java,搜索定位到这里
这里就是支付失败的方法,下面就是支付成功的方法,然后就去寻找跳转到失败的方法,把他改成成功
回到Androidkiller
定位到这里,可以修改这两个跳转位置
此方法同样可以破解
参考链接吾爱破解:
https://www.52pojie.cn/thread-642371-1-2.html