starno01 发表于 2018-10-9 21:24

滚动的天空 最新 内购破解 我的破解之路(小白)

咳咳,真 小白 第一次发帖,请大佬勿喷
   跟随着《教我兄弟学Android逆向系列课程+附件导航帖》的学习,就打算拿一个游戏练练手,刚好课后作业就是 滚动的天空。
   虽说教程已经久远,但是还是姑且一试,教程贴:《教我兄弟学Android逆向03 破解第一个Android游戏 》https://www.52pojie.cn/thread-654654-1-1.html
                                                                                             安卓游戏内购破解之滚动的天空                                        https://www.52pojie.cn/thread-632178-1-2.html

咳咳,进入正题


工具:apktooljd-gui-windows-1.4.0dex2jar-2.0 以及 手机应用 mt管理器
   这里说明一下 我的apktool回编译总是不成功,反编译没有任何问题(   未知原因 )因此我只能在手机上完成 回编译 的操作

过程:
反编译 以及 dex2jar 开始准备过程不讲了,前面教程都有
直接上图

首先啊,我用工具打开jar文件,搜索了一下”支付失败“ (我在玩这个游戏时候,支付取消 会弹窗 支付失败)

这里是java代码我观察了一下整个函数发现支付失败这个东西 和其中的有一个变量paramstring 有很大关系
但是吧 我尝试搜索这个变量什莫东西都搜索不到
没办法我只能尝试一下找找这个函数了



瞧瞧我发现了什莫 if判断还是两个特定的数值 100 200 并且这两个数值多处出现,都是作为判断条件

这次瞎蒙应该比较靠谱

打开我的androidkiller 查看smali代码我主要需要的它的搜索功能 搜索0x64
发现查出来好多好多东西 线索好像断了然后我就去翻了翻 源码 主要看和pay有关的 付款嘛
然后发现了好像不得了的东西



    public static final int PAY_STATUS_CANCEL = 200;
    public static final int PAY_STATUS_FAIL = 200;
    public static final int PAY_STATUS_SUCCESS = 100;


至此差不多结束了,回到那个调用几个callpaycallback的那几个函数 定位到相应的smali文件夹
把那两个传值的200 改成 100,既0xc8改成0x64
搞定
回编译 签名 安装买买买,发现成功了! 创建订单后取消订单,支付失败后仍然可以得到相应的道具


我的第一款内购破解软件 运气居多吧






vae3489 发表于 2018-10-9 21:44

学习了,感谢楼主分享技术

旸谷晨曦 发表于 2018-10-9 23:11

感谢楼主的分享,上帝与你同在{:301_997:}

清淡 发表于 2018-10-9 23:15

厉害啊楼主

huanglin110119 发表于 2018-10-9 23:17

值得学习

a45255854 发表于 2018-10-9 23:42

学习一下,

笑哈哈123 发表于 2018-10-10 00:20

感谢楼主的分享

haoii123 发表于 2018-10-10 09:06

谢谢分享我来支持一下

lds114 发表于 2018-10-10 09:10

小学习一下,谢谢分享

y294945022 发表于 2018-10-10 10:08

顶你一个,恭喜
页: [1] 2 3 4
查看完整版本: 滚动的天空 最新 内购破解 我的破解之路(小白)