mt逆向系列-内购破解原理

mt逆向系列-内购破解原理

mt逆向系列-内购破解原理-狐说社区
请站长喝瓶冰露
此内容为付费阅读,请付费后查看
1
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费阅读
已售 1

[初夏原创] mt逆向系列-内购破解原理
原作者:葫芦侠@【Rain】雪儿
本教程通过实战的方式详细分析内购PJ的原理,让你对内购PJ有更深的理解,从而遇到各种各样的游戏都可以自行分析并PJ。

通过本教程的学习可以达到以下目标:
1.明白内购PJ是什么
2.了解内购PJ分类
3.了解内购PJ原理
4.通过内购PJ游戏

二、内购PJ是什么
内购指的是游戏内购买,而内购PJ是通过修改游戏的支付代码以达到跳过内购支付过程,免费购买游戏内的金币、道具等目的。
简单的说就是当你购买游戏金币时,弹出支付界面,这时点击返回或取消即可购买成功。
三、内购PJ的分类
按照PJ方法可分为:
1.将支付成功的代码复制并替换掉支付失败的代码
2.将支付失败的跳转改成支付成功的跳转
3.删除支付成功的判断

按照PJ类型可分为:
1.软件内购PJ
2.游戏内购PJ
四、内购PJ的原理
内购PJ的原理很简单,就是通过反编译修改游戏的支付代码,使其在支付失败或支付取消时直接执行支付成功的代码,从而免费获取游戏货币。
五、实战内购PJ一款游戏
在了解了以上知识点后我们就可以进入实战环节了,我将采用详细分析的方式来给大家讲一下内购PJ一款游戏的整个流程,让大家对内购PJ有更深的理解,从而遇到各种各样的游戏都可以自行分析并进行PJ。

本次实战的游戏是汤姆猫跑酷,这貌似还是一款联网游戏。
首先,我们从4399游戏盒下载汤姆猫跑酷:
1654757430354
试玩该游戏后我们发现这款游戏支持微信和支付宝购买小炸药:
1654757484453
当点击确认充值后弹出支付界面,取消支付后又弹出取消充值的界面:
1654757543130
通过对游戏的信息收集,我们得知该游戏支持微信和支付宝充值,并且取消支付后会弹出取消充值的界面。那么我们就可以从该游戏的支付宝或微信充值着手,本次实战我打算从支付宝着手。

下面正式开始分析内购PJ的流程:
打开MT管理器并找到游戏安装包,点击查看:
1654757618660
因为游戏的支付代码在dex文件里,而该游戏有多个dex文件,我们不知道支付代码具体在哪一个里面,所以全选该游戏的dex文件:
1654757692229
既然我们想从支付宝着手,那么肯定要知道支付宝的支付成功状态码是多少,这里我直接给你们了:支付宝的支付成功状态码是9000,而9000的十六进制是0x2328,所以我们要搜索0x2328。
1654757754499
得到如下结果:
1654757794270
我们点击名为t2的类进入smali代码界面:
1654757836381
进入后发现0x2328是在a方法里面的,所以我们可以将t2类转为Java文件看一下:
1654757877551
通过对上图的分析又有了新的发现,我们搜索的0x2328在转为Java文件后变成了9000,这足以说明0x2328就是支付成功的状态码。

其次,我们可以看到包含pay_status_success字符串的代码是在else代码块里的,这说明只有当以上if条件都不满足时才会执行支付成功的代码,也就是说当执行else代码块时才会支付成功。

那这不就好办了吗,直接将以上if条件的代码块全替换为else代码块的代码不就行了吗?因为替换后不管你怎么支付都会执行支付成功的代码。
1654757877551
回到smali代码界面

通过150行代码可知148-156行代码是支付成功的代码,将它复制。1654757976256
通过178行代码可知176-184行代码是支付取消的代码,将支付成功的代码粘贴到这里即可,修改后的代码:
1654758038996

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容