失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 安卓逆向010之实战破解内购(斗地主)

安卓逆向010之实战破解内购(斗地主)

时间:2018-11-07 19:57:36

相关推荐

安卓逆向010之实战破解内购(斗地主)

文章目录

快速定位关键代码实例分析~Jadx分析~AndroidKiller分析关键点分析附带常见方法名:

快速定位关键代码

1、 分析流程

搜索特征字符串搜索关键api通过方法名来判断方法的功能

2、 快速定位关键代码

反编译APK程序Android Manifest.xml => 报名/系统版本/组件程序的主activity(程序入口界面)每个Android程序有且仅有一个主activity分析程序的执行流程需重点关注的application(APK)Application执行时间授权验证

3、 定位关键代码的技巧

实例分析

~Jadx分析

Jadx可以在这下载:

/skylot/jadx/releases

使用jadx打开,搜索“9000”,

打开对应的代码处,

22行,在比较a是不是等于9000,23~29行,逻辑判断,等于2、等于7、等于30分别做对应的操作。这里一个小问题是这里的“ 2、7、30 ”分别对应的什么,安装软件,先看看界面,或许可以找到一些关键信息。

这里可以判断23、25、27行的“ 2、7、30 ”对应的是天数。24、26、28行的“ 2、6、20 ” 对应的就是金额。简单总结支付的逻辑就是,当我们先选择对应的“套餐”,调转支付宝支付,支付宝将结果返回,支付成功返回9000,否则为8000。假设支付成功,则获取你刚刚选择的是哪个“套餐”,发放相对应的记牌器天数。

~AndroidKiller分析

查找“9000”,跳转到对应的位置,

49行,定义一个V1,值为900051行,把V0与V1比较,53行,将结束保存到V1内55行,假设V1=0,跳转到“:cond_4”

先说说常见的判断条件语句:

我们可以跟着到“:cond_4”处,看看代码是什么意思。

198行,给V1赋值“8000”,这里就是支付失败的含义了。200行,把V0与V1进行比较,202行,将结果保存到V0中,204行,假设V0=0,跳转到“ :cond_1”,206行,直接跳转到“:goto_1”,跟踪到“ :cond_1”,发现下边就是结束本次流程,返回空。

总结这个“:cond_4”处,就是支付失败了的逻辑,

关键点分析

这里的思路就和明确了,即不让他跳转到“ 支付失败 ”的“:cond_4”,而是让代码继续向下执行“ 支付成功 ”的代码,比如直接注释掉” If-eqz v1, :cond_4 ”或者将上述语句改为“ If-nez v1, :cond_4 ”,这样付款成功就失去了效果,但是付款失败反而得到记牌器。当然除了上述,还有很多其他的方法,这里就抛砖引玉一下。修改完毕,CTRL + S保存之后直接回编译即可完成破解。

附带常见方法名:

和游戏方法名onResult,onchinabilling,resulton,Paycenter,Callback爱游戏方法名:paySuccess(成功)payFailed(失败)payCancel(成功)沃游戏方法名:OnPayResult,PyaResulton,Activity,result,callback4399游戏方法名:notifydelivergoods 支付宝和银行卡方法名:handle,message移动MM方法名:onBillingFinish,Billing,CallBack360支付:onfinished onActiv ityresult支付宝搜索字符串:9000咪咕游戏搜索常量:onresult发送短信权:android.permission.SEND_SMS锁定支付模式关键字符串:CHINA_TELECOM支付上限:carrier_pay_out_limit, no_propriate_pay_method谷歌广告:Missing internet permission in AndroidManifest.xml

如果觉得《安卓逆向010之实战破解内购(斗地主)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。