吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 24091|回复: 44
收起左侧

[Android 原创] 【饥饿鲨 进化】Android游戏 完美破解流程分析记录

[复制链接]
liye1320 发表于 2015-8-13 11:36
本帖最后由 liye1320 于 2015-8-13 14:13 编辑

原始Apk文件(来自爱游戏):http://pan.baidu.com/s/1mgJ4fHI
破解工具:Android Killer 等等等
其他说明: 1. 本文适合初学者,破解过程中没有高级的技术手段,都是常规分析及破解。
                  2. 破解过程中,还区分了有SIM卡,无SIM卡(平板),是否联网等情况,移动联通电信区分待定(欢迎留言)。
回帖问题反馈:
      1.有人说失效了,我上面提供的是原始apk,未破解的,破解的在原创发布区http://www.52pojie.cn/thread-400016-1-1.html
      2.@淡然出尘 大神 提到有二次打包校验,目前我测试了平板和手机,也测试了一段时间了,暂时没有发现呢。请大家也测试下。

0x01 游戏界面
1.jpg 2.jpg 11.jpg

0x02 寻找关键位置
        寻找关键位置是一个可以完全靠经验积累迅速完成的工作,新手没经验的话也可以参考我的另外一篇文章从界面开始找关键位置http://www.52pojie.cn/thread-392856-1-3.html
        下面是常见的 支付相关的关键函数:

              (爱游戏)
              pay
              paySuccess
              payFailed
              payCancel

              doBilling
              onBillingSuccess  
              onBillingFail  
              onUserOperCancel

              onBillingFinish   (移动MM的支付方式)

              onresult()
              onActivityResult
        由于这个游戏是爱游戏内购,所以我们直接搜索paySuccess,结果如图:
         3.jpg
        第一条带有abstract,是抽象函数,一般都是空的,可以直接忽略。那么直接进入第二条,代码如图:
         4.jpg
        这样关键位置就找到了。

0x03 破解内购,适用于所有情况
        payCancel  payFailed  paySuccess
        这三个函数的意思很明确,支付取消,支付失败,支付成功。
        一般直接交换函数名,比如说payFailed和paySuccess的函数名互换,那么支付失败后,调用的其实是支付成功的代码。但是如果他们参数不一样,就不能直接换函数名了,这种情况也是经常有的。
        这时候,我们可以稍微分析下paySuccess的代码,把关键代码拷贝过去,越少越好,拷贝代码需要很仔细。
        稍微分析一下,我们发现,paySuccess和payCancel  payFailed分别调用的是 Ourpalm_Statics.PaymentSuccess()和Ourpalm_Statics.PaymentFail(),那么我们把Ourpalm_Statics.PaymentFail()换成Ourpalm_Statics.PaymentSuccess()即可。
         5.jpg
        paySuccess下面还开启了一个线程,如图,我们先不管,看看破解是否完成,失败了的话,我们再把它拷贝到payCancel  payFailed中。
         6.jpg
        测试,可以成功购买!说明破解是有效果的。平板和移动SIM卡手机上均测试成功。

        但是,发现2个问题:
        1.如果设备是联网状态,购买的时候,会有相当长的一段验证时间,虽然最后还是会成功,但是总感觉不好。
        2.对于有SIM卡的手机,点击购买的时候会出现支付框,需要点击支付或者取消支付才会支付成功,虽然最后还是会成功,但是总感觉不好。
        下面我们就解决这2个破解瑕疵问题!

0x04 完美破解,去掉验证过程
        经测试,这个验证时间是在设备联网的时候才出现的,所以我们有足够的理由推测,让设备判断网络不通,则可达到目的。可能有人想直接去掉网络权限,但是之前发现,很多app如果去掉了联网权限和读取设备信息的权限,app就直接崩溃了,所以我不推荐在修改配置文件的时候把联网权限去掉,当然,个别app可以这样做。
        Android判断网络环境都是调用的 ConnectivityManager 所以我们搜索这个函数,得到结果如图:
         7.jpg
        发现结果太多了,完全无从下手。这里可以慢慢分析推测,但是我们还可以想想在调用支付函数的那块,程序究竟做了什么。
        我们通过paySuccess所在的文件,找到了下面这里:
         8.jpg
        基本所有的支付相关的代码都在这里了,我们看看这个.java文件中,都有些什么函数,很快可以发现下面这个:
         9.jpg
        这里就好办了,我们直接让函数NetworkIsAvailable()返回false,让设备觉得网络不可用。如图:
         10.jpg
        重新编译,安装,果然发现不论联网还是不联网,现在都是秒付成功!

0x05 完美破解,去掉支付框
        这种情况是在有SIM卡的手机上出现的,支付框弹出,是因为走了正确的支付流程,为了不让它弹出来,我们需要修改流程。查看对应的代码,如图:
         12.jpg
        我们看 EgamePay.pay,这个是要进入正确的支付流程了,我们进入到里面看看:
         13.jpg
        破解,无非就是让app走我们自己的流程,达到最后走向支付成功的地方,我们已经修改了payFailed为支付成功,那么这里沿着箭头的方向,直接让其跳到最后调用payFailed,不就可以了吗,我们试试。
         14.jpg
        重新编译,安装运行,购买道具,讨厌的支付框没有了,购买及成功,秒付。这样,这个问题就解决了。


0x06 修改AndroidManifest.xml配置文件
        现在,我一般,只去掉,发短信,打电话,定位,修改联网状态等权限。
        像读手机信息,联网,这2个权限,我一般都不会去掉,因为经历了无数次的崩溃呢,有些手机崩溃,有些手机不崩。

0x07 其他相关
        如果App支付方式区分了网络制式,即,移动,联通,电信有不同的支付方式,我们可以修改代码,让其总是判断为移动,或者其他。
        关键函数为:getSimState()
         15.png

0x08 结束
        到此,这个APP就破解完美了,支持无sim卡(平板),手机,无需联网,秒付,无支付弹窗。

应用宝截屏2015081302.png

免费评分

参与人数 13威望 +2 吾爱币 +1 热心值 +13 收起 理由
younghare + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
小草哥哥 + 1 谢谢@Thanks!
KOchiu + 1 谢谢@Thanks!
黑桃J + 1 谢谢,学习了
我love破戒 + 1 谢谢@Thanks!
katkat + 1 我很赞同!
469164323 + 1 赞一个
爱浩树 + 1 无SIM卡的平板不是要联网支付吗
亿联网络 + 1 我很赞同!
叼烟的声音 + 1 鼓励转贴优秀软件安全工具和文档!
qtfreet00 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
spguangz + 1 我很赞同!
piglet + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| liye1320 发表于 2015-8-28 13:49
Tab123 发表于 2015-8-28 12:27
0x05 完美破解,去掉支付框
这一步讲得不明不白

做破解,最好还是有一点软件开发的基础比较好,这样有软件开发的逻辑思维,就好理解了。

第三步中,已经让支付会出现的三种结果(支付取消,支付失败,支付成功)都变为了支付成功。
那么,我们在弹出支付框之前,让支付函数失败,就行了,这步就是这个意思。

一般的调用某个功能函数之前,都会有很多条件判断,这里用的就是这个条件,让它能够失败。
fengzhonying 发表于 2015-8-13 11:44
renfeng 发表于 2015-8-13 11:51
feob 发表于 2015-8-13 12:10
很喜欢这个,谢了
xzf680 发表于 2015-8-13 12:21
看似不错,收藏
韩哲 发表于 2015-8-13 12:40
还是支付失败,不能购买
淡然出尘 发表于 2015-8-13 12:40
我记得是验证的啊?二次打包的验证
寡人 发表于 2015-8-13 12:42
牛逼的楼主  甚好甚好
韩哲 发表于 2015-8-13 12:43
求发破解软件,不能用了失效了
头像被屏蔽
bilibili 发表于 2015-8-13 12:48
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-1-9 01:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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