吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20539|回复: 47
收起左侧

[Android 原创] 【新手】彩虹岛1手游内购破解分析过程

  [复制链接]
hyc199844 发表于 2017-8-24 15:53
本人菜鸟一枚,这是我独立破解的第一个APP,如有分析不对或者不恰当的地方还请大佬们指正~~~{:1_914:}{:1_914:}{:1_914:}
《彩虹岛1》很久之前就已经开发好的一款安卓游戏,最高只支持800*480分辨率的手机,在大屏手机运行时会弹出出错信息无法进入游戏。游戏过程中需要内购,而内容提供者早就停止了服务,于是本人将其反编译成smali后对逻辑进行了一些修改,并编写了一个简易的内购破解程序,以下是修改之前的一些截图:


1280-720.PNG
Screenshot_2017-08-24-14-00-53.png
修改前2.PNG


首先将APK导入到AndroidKiller工程中,从string.xml中找到内购相关字符串:

2.PNG
1.PNG


这里出现的相似词汇比较多,“订购成功”“购买成功”“支付成功”,于是我看了下包名,发现了

3.PNG

通过搜索,发现yeepay就是上面弹窗中的“易宝支付”,于是进入com.yeepay.android.plugin包,查看一下里面的类,发现在YeepayPlugin继承了Activity,且类中有setResult()方法,

7.PNG
4.PNG
5.PNG


那么推测肯定游戏相关的某个类调用了startActivityForResult()方法,且intent中传入了YeepayPlugin.class,于是搜索YeepayPlugin

8.PNG

果然在com.sdwl.game.latale.charge中发现了两处!查看其java代码分析逻辑

9.PNG
10.PNG

当然,我们并不关心它是如何启动这个YeepayPlugin这个Activity的,我们关注的是onActivityResult()这个方法,于是我在同一个包中仔细寻找,发现

11.PNG

推测这两个break会造成购买失败,也就是说,之后要编写的破解器传回的intent中一定要有“requestId""amount"这两个内容。
至此,游戏中调用支付插件并获取返回信息的部分就分析结束了,我们回到YeepayPlugin类中来分析
在onCreate()方法中,我们发现:

6.PNG


先后调用了a(Context paraContext)和a(),而a(Context paraContext)会产生寻找"com.yeepay.android.service"并产生PackageManager.NameNotFoundException,a()会寻找"com.yeepay.android.plugin"并产生ActivityNotFoundException,方便起见,我将a(this)处的跳转直接改成相反,直接执行a(),而a()会启动"com.yeepay.android.plugin"这个action,因此之后编写的内购破解器的activity设置为这个名字就好了
也就是说如果找到了这个activity,就不会执行setResult(0)。下面开始编写内购破解器:
在AS新建一个工程,要写的内容之前都分析到了,因此直接上代码:

13.PNG
14.PNG

打包生成APK,安装在手机上即可。运行效果如图:

Screenshot_2017-08-24-14-00-42.png

Screenshot_2017-08-24-14-01-05.png
Screenshot_2017-08-24-14-01-17.png

至于高分辨率的适配,由于做的不是很好,所以在此就不发分析过程了,破解的成品在原创发布区,详见:
https://www.52pojie.cn/thread-638261-1-1.html


我还是菜鸟,这是我独立破解的第一个APP,如有分析不对或者不恰当的地方还请大佬们指正~~~{:1_914:}{:1_914:}{:1_914:}
1920x1080强制改为800x480.PNG
Screenshot_2017-08-23-21-29-26.png
12.PNG

免费评分

参与人数 32吾爱币 +42 热心值 +30 收起 理由
jianailing + 1 + 1 我很赞同!
红尘落〃叶 + 1 + 1 谢谢@Thanks!
xsnxxpxzx520 + 1 + 1 谢谢@Thanks!
china1213100 + 1 + 1 热心回复!
dagelaokao99 + 1 + 1 我很赞同!
SomnusXZY + 1 + 1 谢谢@Thanks!
温华 + 1 + 1 谢谢@Thanks!
闭上眼 + 1 + 1 用心讨论,共获提升!
lm531142331 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
振林555 + 1 + 1 谢谢@Thanks!
Chlrun + 1 + 1 支持原创
MC日月星辰 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
gyfv369 + 1 + 1 热心回复!
52破解☆ + 1 + 1 我很赞同!
爆青筋的茄子 + 1 + 1 我很赞同!
zuxy007 + 1 谢谢@Thanks!
zhog + 1 + 1 热心回复!
vking + 1 + 1 谢谢@Thanks!
mini07 + 1 + 1 用心讨论,共获提升!
孤独之悔 + 1 + 1 谢谢@Thanks!
eteleD + 1 + 1 谢谢@Thanks!
流年回忆 + 1 + 1 谢谢@Thanks!
qwerttqqaz + 1 我很赞同!
hy5234768 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
夏雨微凉 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wjh + 1 + 1 谢谢@Thanks!
1455018613 + 1 热心回复!
luckyduanyh + 1 + 1 热心回复!
南宫萧 + 1 + 1 用心讨论,共获提升!
fen3641 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qtfreet00 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
会飞的丑小鸭 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| hyc199844 发表于 2017-8-25 13:14
guidao 发表于 2017-8-24 23:02
支持,学习一下,顺便问下,这java要学到什么程度才能做到啊?

emm...其实我java也没学得多好..我觉得把基础知识看懂了之后要用的时候再查一查
guidao 发表于 2017-9-5 00:37
hyc199844 发表于 2017-8-25 13:14
emm...其实我java也没学得多好..我觉得把基础知识看懂了之后要用的时候再查一查

哦哦,谢谢啦
会飞的丑小鸭 发表于 2017-8-24 16:10
lanxuanyue 发表于 2017-8-24 16:51
这样玩手游,简直飞一般的感觉
Henry3II 发表于 2017-8-24 16:52
学习学习
x280368646 发表于 2017-8-24 16:53
能发个大气点的游戏吗
429645667 发表于 2017-8-24 16:54
单机还是网游?
zhubaobei 发表于 2017-8-24 17:15
支持了 学习看看
While_Shark 发表于 2017-8-24 18:08
谢谢分享
 楼主| hyc199844 发表于 2017-8-24 18:48
x280368646 发表于 2017-8-24 16:53
能发个大气点的游戏吗

233333
 楼主| hyc199844 发表于 2017-8-24 18:49

单机。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表