【新手贴】尝试破解小游戏内购。大牛勿笑
新手的第一帖,排版什么的都不是很懂,有什么问题欢迎大家指出。游戏:登山赛车之天朝历险
原版下载链接:http://www.migu.cn/game/detail/10000000006058079000.html
百度云:链接:https://pan.baidu.com/s/1pNfxhqV 密码:z0p2
破解之后的版本:链接:https://pan.baidu.com/s/1cOCzoE 密码:hdru仅供学习学习使用,如若喜欢,请支持正版!
0x01:首先,安装正版游戏(这里我用的雷电模拟器),获取更多金币,弹出
0x02:然后,将APK拖到Android Killer v1.3.1中反编译。搜索“付款失败”
找到一个,打开找到的这个.smail。发现后面有一个switch语句
有两个case,一个跳转到付款失败,我觉得按照一般的套路,另一个应该就是付款成功。然后让两个case都调到付款成功那里
如图:
保存,编译。把生成的包拖到模拟器。
好像是成功了。但是后面我发现,这破解的只能买其中的一种。
点击其他的时候提示
取消后什么反应都没有,金币也没有加。
当时我真的是一脸懵逼,为啥偏偏第一个可以,其他都不行。
0x03:我在打开Android Killer v1.3.1,进入刚刚改的哪里发现在pswitch_0里会获取BillingResult里面一个函数返回值
由于才刚接触逆向,很多都不是很懂,我索性直接在搜索onresult
发现一个可疑的.smail,根据名字判断是一个什么什么付费的回执函数,打开
又是一个switch语句,在观察发现,除了:pswitch_0外,其他都是改变v1的值然后执行:pswitch_0
看:pswitch_0后面的语句
new-instance v0, Lcom/mygamez/billing/BillingResult;
invoke-direct {v0}, Lcom/mygamez/billing/BillingResult;-><init>()V
.line 46
.local v0, "result":Lcom/mygamez/billing/BillingResult;
invoke-virtual {v0, v1}, Lcom/mygamez/billing/BillingResult;->setResultCode(I)V
开始调用了BillingResult的构造,然后用v1作为参数调用setResultCode(I)V得到一个什么值。因为没有直接
搜索到BillingResult.smail,直接在工程管理器里找到打开它
哇,一进去就仿佛发现了什么。到这里了就应该知道前面v1的值应该和支付成功还是失败这些有关,我
直接回到ChinaBillingPayCallback$1.smali里,在:pswitch_0后面加上const/4 v1, 0x1。
保存,编译。
点击购买,然后取消,弹出购买成功。
在破解过程中我也有好多东西不是很懂,如有什么错误,欢迎大家指出。
最后,感谢一些大佬提供的逆向学习教程。
附教程链接:https://www.52pojie.cn/thread-397987-1-1.html
https://www.52pojie.cn/thread-654654-1-1.html
https://www.52pojie.cn/thread-632178-1-2.html
https://www.52pojie.cn/thread-687375-1-2.html
duxiangyedehei 发表于 2018-1-30 22:35
我用了论坛的自动配置软件,但是还是不成功,可能我是WIN10的?又或者是我下载jdk下载错了吗?
我下载安 ...
和操作系统还真没什么关系,我用的也是win10啊。我太懒,就不截图了,直接说吧,首先你得安装java的JDK啊,官网下这个jdk-8u151-nb-8_2-windows-x64;
我是懒,安装路径都是默认:
C:\Program Files\Java\jdk1.8.0_151,有这个就算完成安装了
那么接下来你就用环境变量配置工具配置完成(win10下似乎要以管理员权限运行),完了以后你确认下环境变量里是否有以下变量(可以直接复制粘贴):
变量名:JAVA_HOME
变量值 C:\Program Files\Java\jdk1.8.0_151
还有(复制粘贴冒号以后的是一个符号都不能少):
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
这还没完,你要去Android KILLer里把java安装路径保持一致,基本上就没什么问题了。 df4528 发表于 2018-1-30 11:30
你这个是环境配置错了,检查下java版本和安装路径,重新做环境变量试试。我猜的,因为我看到java不是内部 ...
我用了论坛的自动配置软件,但是还是不成功,可能我是WIN10的?又或者是我下载jdk下载错了吗?
我下载安装之后是 《jdk-9.0.4_windows-x64_bin》这个东西,弄了一晚上快炸了,谁能帮助下我吗,我是真纯小白 看来你是个学习派 加油。 哥们。。。。这游戏虫虫助手已经破解了~~~~~~~~~~~~~~加油! 已经很厉害了 多分享这种逆向破解的帖子,感谢 这个很好,大概看得明白:lol 大牛大牛,我都看不懂这是在干嘛 厉害厉害 学习学习~{:301_1007:} 厉害厉害 我想学这方面的知识 该从什么入手呢·· Rock_L 发表于 2018-1-26 19:08
厉害厉害 我想学这方面的知识 该从什么入手呢··
置顶的入门导航贴