【凯特原创】MT逆向系列_内购PJ原理

优选教程   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-6-8

本教程通过实战的方式详细分析内购PJ的原理,让你对内购PJ有更深的理解,从而遇到各种各样的游戏都可以自行分析并PJ。

11楼
Rain雪儿 2022-6-8
打开MT管理器并找到游戏安装包,点击查看:

12楼
Rain雪儿 2022-6-8
因为游戏的支付代码在dex文件里,而该游戏有多个dex文件,我们不知道支付代码具体在哪一个里面,所以全选该游戏的dex文件:

13楼
Rain雪儿 2022-6-8
既然我们想从支付宝着手,那么肯定要知道支付宝的支付成功状态码是多少,这里我直接给你们了:支付宝的支付成功状态码是9000,而9000的十六进制是0x2328,所以我们要搜索0x2328。

14楼
Rain雪儿 2022-6-8
得到如下结果:

15楼
Rain雪儿 2022-6-8
我们点击名为t2的类进入smali代码界面:

16楼
Rain雪儿 2022-6-8
进入后发现0x2328是在a方法里面的,所以我们可以将t2类转为Java文件看一下:

17楼
Rain雪儿 2022-6-8
通过对上图的分析又有了新的发现,我们搜索的0x2328在转为Java文件后变成了9000,这足以说明0x2328就是支付成功的状态码。

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

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

18楼
Rain雪儿 2022-6-8
回到smali代码界面

通过150行代码可知148-156行代码是支付成功的代码,将它复制。

19楼
Rain雪儿 2022-6-8
通过178行代码可知176-184行代码是支付取消的代码,将支付成功的代码粘贴到这里即可,修改后的代码:

20楼
Rain雪儿 2022-6-8
到这里已经PJ成功了,当取消支付时就会执行支付成功的代码,从而欺骗游戏的支付系统,获得游戏内的付费物品。

评论

登录后才可发表内容
  • 主题

    3

  • 帖子

    175

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0480s Mem:2027Kb