吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 75078|回复: 234
收起左侧

[Android 原创] 初探开心消消乐的内购破解

    [复制链接]
erebusx 发表于 2017-5-24 19:35
本帖最后由 erebusx 于 2017-5-25 14:14 编辑

把问题写到前面吧,方便补充
1、重新登录之后还有的,但是28的只能买4次,第5次就直接提示“本次支付失败”。应该是每日限额。
这句话代码里搜不到,怀疑是在lua脚本内做了控制,lua的解密正在努力,不过还没什么突破,也希望各位大神给点指导
2、成品的问题,几个原因没发,最重要的是看到版规禁止发破解成品的,其次这只是个技术贴只是破解了内购部分,
签名验证其实并没有破解,只是用别的方法绕过去了而已,如果看不明白的单纯伸手拿去了也根本安装不了,为了避免
被无谓的喷。
3、封号问题,我完成破解只是尝试了下功能ok,昨天买过1200风车币,今天号还健在。
至于之后的事情,只能说在非单机的游戏里cheat就得有心理准备。

开心消消乐相信很多人都不陌生,网上我只找到1.14版的内购破解,现如今已经升级到1.44了,只好自己动手试着破一下。

其实本来是想修改程序的内部逻辑,实现步数不递减,精力无限啥的,后来发现加密的lua文件真不是好弄的,所以就先从内购破解入手了。
把apk直接丢进AndroidKiller反编译没什么问题,然后发现有2个dex文件,仔细看smali文件夹下的源码,发现只是个保护壳,
真正有用的代码都在smali_classes2下,于是果断删掉smail,然后smali_classes2->smail,修改AndroidManifest.xml中的application入口,
这样打包安装之后,可以运行,但是很快就发现签名验证的问题,搜了一下signature发现好多地方啊,偷懒借用
看雪的一篇帖子:http://bbs.pediy.com/showthread.php?t=190876 中提到的用官方包的RSA文件替换的方法绕过验证。
这种方法的好处很明显:简单!
坏处也很明显:不通用,要么给系统打补丁,要么依赖于xposed框架,否则这种篡改RSA之后的apk文件根本没法安装。
然后正式开始内购的破解,这里用的思路是走电信运营商的支付机制,并把所有的支付接口都调用电信,目的是简化破解过程。
搜索电信“46003”,总共6处。
46003.png
第2,3处是com.baidu.location包下的,看了下都是一堆比较之后返回一个值,那么索性直接返回吧,贴一个修改之后的:
[Plain Text] 纯文本查看 复制代码
.method public static do(Landroid/content/Context;)I
    .locals 2
    const/4 v0, 3
    return v0
.end method

这2处修改后来觉得可能是不必要,不改也无所谓的。

第1,4处是2个enum类型里的函数,也是一堆判断之后返回一种运行商类型,那么修改成直接返回成电信的:
cn.egame.terminal.sdk.log.at.a(Ljava/lang/String;)修改成
[Plain Text] 纯文本查看 复制代码
.method public static a(Ljava/lang/String;)Lcn/egame/terminal/sdk/log/at;
    .locals 2
    sget-object v0, Lcn/egame/terminal/sdk/log/at;->a:Lcn/egame/terminal/sdk/log/at;
    return-object v0
.end method

另外一个也类似。

第5,6处都是一个比较,那么把比较后面的if-eqz删掉,让程序流程永远走到电信的通道即可。

到这里已经可以让所有手机走电信通道了,接下来就是让所有支付直接成功。
搜索paysuccess,payfailed发现下面这处比较可疑,
payfail.png
尝试把payfailed改成paysuccess却发现
点支付程序直接退出了。
仔细看了下java源码,应该是paysuccess,payfailed和paycancle对应了3个具体处理函数,
既然把payfailed改成paysuccess不行,那么把payfailed内部的处理函数改成和paysuccess内的一样就是了,
修改之后安装运行,果然可以了,可以不弹支付界面直接成功了。

最后有个小插曲,本来昨天破解到上面就完成了,我今天尝试的时候开着飞行模式,居然被提示
“当前正处于飞行模式,无法支付,是否关闭飞行模式?”,晕倒,继续改吧,搜索这句话
飞行模式.png
继续搜索animal_tip_pay_change_airplane_mode,下面这处可疑,
airplane.png
看smali代码,函数名isAirPlaneModeOn,
就是它了,直接改成:
[Plain Text] 纯文本查看 复制代码
.method public isAirPlaneModeOn()Z
    .locals 2
    .line 37
    const/4 v1, 0x0
    return v1
.end method

顺便把isAnySimCardAlready和isSimCardAlready都改了,到这里为止开着飞行模式也可以直接支付成功了。

新人刚开始接触安卓逆向,内容粗浅,高手勿喷

忘了成果图,补上
Screenshot_2017-05-24-17-59-41_com.happyelements.AndroidAnimal.png

点评

求原版练手。  发表于 2017-5-25 15:28

免费评分

参与人数 55威望 +1 吾爱币 +62 热心值 +53 收起 理由
wangleishu + 1 用心讨论,共获提升!
shouminga + 1 谢谢@Thanks!
sunnylds7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
死鱼哥vs + 1 + 1 谢谢@Thanks!
微凉如梦 + 1 + 1 谢谢@Thanks!
dweic + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ming莫 + 1 + 1 已答复!
lyd971108 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
dowell + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
老章不老 + 1 + 1 已答复!
masaike + 1 + 1 用心讨论,共获提升!
jinghuaof + 1 + 1 我很赞同!
zhuzaiting + 1 + 1 谢谢@Thanks!
yyysh + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
3325 + 1 我很赞同!
午时怎么还没到 + 1 + 1 热心回复!
阿丶若 + 1 + 1 谢谢@Thanks!
loooooooong + 1 + 1 谢谢@Thanks!
18261770390 + 1 + 1 来个可以直接玩的好不好呀 心累
a165690447 + 1 + 1 谢谢@Thanks!
godi + 1 + 1 用心讨论,共获提升!
天边一滴泪 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
paomian + 1 + 1 我很赞同!
Tunny + 2 + 1 成品在哪里。虽然只是偶尔玩
D.Priest + 1 + 1 谢谢@Thanks!
tp_soon + 1 + 1 用心讨论,共获提升!
王志坚 + 1 + 1 谢谢@Thanks!
粉黛香榭清つ + 1 + 1 啥都不懂的人只想要别人修改的成果。。
mmww0703 + 1 + 1 用心讨论,共获提升!上公众号推送了,恭喜恭喜~
h080294 + 1 + 1 我很赞同!
hezy1986 + 1 + 1 谢谢@Thanks!
canyang + 1 + 1 我很赞同!
soyiC + 2 + 1 用心讨论,共获提升!
刺芯 + 1 + 1 我很赞同!
无奈红茶妃子笑 + 1 + 1 谢谢@Thanks!
xing4293160 + 1 + 1 请问下载链接在哪?
kkpljat + 1 + 1 谢谢@Thanks!
看世间百态 + 1 + 1 速度围观大神
harchi + 1 + 1 用心讨论,共获提升!
winner911 + 1 + 1 楼主厉害了。我小白一枚。。。
qtfreet00 + 1 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
13666243330 + 1 + 1 我很赞同!
黑色行动 + 1 + 1 用心讨论,共获提升!
ayong219 + 1 我很赞同!
610100 + 1 谢谢@Thanks!
、神通广大 + 1 + 1 我很赞同!
chantoushiwo + 1 谢谢@Thanks!
假面具 + 2 + 1 玩消消乐的人挺多啥时候我也下个去
wmsuper + 1 + 1 我很赞同!
xu1997 + 1 + 1 我很赞同!
♂偶是屌丝℡ + 2 + 1 小伙子我很看好你,加油。
ai921570595 + 1 + 1 谢谢@Thanks!
凌乱丶烟雨 + 1 + 1 我很赞同!
辰梦 + 1 + 1 我很赞同!
Shark素 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

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

dowell 发表于 2017-6-23 17:38
纯白,还不是小白的水平,只是按照楼主的帖子顺序来操作,有几个地方还请楼主指点:
1. “第2,3处是com.baidu.location包下的,。。。”提供的代码是第2处的,第三处不知道怎么修改,但是看了楼主说“这2处修改后来觉得可能是不必要,不改也无所谓的。”就忽略了,问一下只是因为“强迫症”而已。。。

2. “第1,4处是2个enum类型里的函数,。。。”
提供的代码我替换了包里的“.method public static a。。。”了,但是“另外一个也类似。”我看不懂,不知道怎么修改

3. “第5,6处都是一个比较,那么把比较后面的if-eqz删掉,让程序流程永远走到电信的通道即可。”
比较后面的if-eqz删掉,针对5和6,具体删除到哪里,

4. 我apk的名字是xxl_1.44.apk,以上修改后,编译,提示“文件名或扩展名太长。”我看后面也有层友提到了,不知道怎么解决。

以上,感谢楼主{:1_931:}
妲己再美终是妃 发表于 2017-7-21 12:25
楼主的锁电信的方式是错误的。
为什么要加入这句代码? sget-object v0, Lcn/egame/terminal/sdk/log/at;->a:Lcn/egame/terminal/sdk/log/at;
楼主没有说清楚。
另外,这句话,“既然把payfailed改成paysuccess不行,那么把payfailed内部的处理函数改成和paysuccess内的一样就是了”
什么意思?
我把Onsuccess的代码替换为onfail里的代码·购买闪退,不知为何?
另外我的Androidkiller为啥显示不出来源码?
我一切都是没有看源码的情况下修改的,所以可能有偏差。

a769872964 发表于 2017-5-24 19:52
彡诛天灭世彡 发表于 2017-5-24 19:53 来自手机
楼主已成大神666666
xuewujianlee 发表于 2017-5-24 19:53 来自手机
膜拜大神6666666
so小涌 发表于 2017-5-24 19:54
重新登录还有?每日应该还是一样最多1000把
MD誰丶董丨 发表于 2017-5-24 19:54
简化破解过程!!!
 楼主| erebusx 发表于 2017-5-24 19:54
a769872964 发表于 2017-5-24 19:52
联网后还可以用吗?谢谢

本来就是在联网下的呀,看最后补的那张成果图,拔了sim卡用wifi测试的
xiaolan 发表于 2017-5-24 19:59
66666666
555鹫命猫 发表于 2017-5-24 20:02
谢谢楼主。。。。。。。。。。。。。。。
mixi139 发表于 2017-5-24 20:04 来自手机
下来看看 要是飞行模式下完美运行的话 修改的就没问题了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

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

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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