好友
阅读权限100
听众
最后登录1970-1-1
|
涛之雨
发表于 2018-11-17 01:25
本帖最后由 涛之雨 于 2021-5-21 08:49 编辑
编辑自19/1/4
最新版的使用了so和dll动态加密。
可以参考论坛里大神的 会跳舞的线 的破解
下面的方法现已失效
仅供其他类似的软件参考和学习(文末百度云的链接里有相对应版本的原版和破解版例子
今天给大家带来的是滚动的天空最新破解方法。
说来惭愧,这是我第一次原创破解教程。毕竟本人能力有限,这个破解是之前偶然间看到的App Store上排名第一的游戏,觉得挺好玩,就来吾爱上找了一下,发现有坛友发了破解版的,但是不是最新版的。想玩的关卡没有。于是就诞生了自己动手破解的想法。
但是:之前下载了好几个版本的,逗游、网易、腾讯、360等等。但是都破解不了(尴尬*1)最终尝试了taptap。。就发出来了。不过好像出了点意外。就是我现在装了正版,也无法付费了(尴尬*2)。。
我分享的是本人亲身实验的过程包括思考和分析。如果有不懂或是错误以及有什么建议都可以在楼下回复(拒绝私聊。。老贵了)
注:从开始破解到完成,一共花了一个星期,破解,最考验的,个人以为应该不只是能力和思维,还有耐心,细心,恒心,(艰辛)
仅供新手小白们参考,大神请步过。。。当然啦进来提个建议,给个分啥的还是很欢迎的(滑稽)
感谢
《教我兄弟学Android逆向03 破解第一个Android游戏 》
https://www.52pojie.cn/thread-654654-1-1.html
【原创教程】利用MT管理器和apktool助手添加彩色弹窗(机械迷城)
https://www.52pojie.cn/thread-702792-1-1.html
=============正文起==============
准备部分:
工具:
开刀软件-rollingsky-正版(下自taptap);
MT管理器2;
其余软件自选(比如设置一个彩色弹窗【见【原创教程】利用MT管理器和apktool助手添加彩色弹窗(机械迷城)https://www.52pojie.cn/thread-702792-1-1.html】)
一颗求知的心(不然也不会点开看了吧)
有一定逻辑的脑子(这个应该有吧)
首先看一下,取消后会显示的关键词
(图COVER)
好,看见了。关键词是购买失败。
通用套路
打开MT,
新建一个文件夹,方便查找,设置一个奇怪的名字【.0000000】
因为在手机里有不少以【.】开头的文件,所以建一个这样的文件夹方便找
(图一)
一侧打开这个文件夹,另一侧定位到下好的apk原文件,长按,复制。
(图二)
在复制好的文件夹里点击apk,
点击【查看】,等待解析,查看原文件。
(图三)
点击代码所在的【classes.dex】文件,
选择打开方式(本人喜欢用dex编辑器++)
(图四)
点击【搜索】,点击【新搜索】,如图搜索关键词“失败”,点击确定。
(图五)
搜索到好几个文件(搜索支付失败好像只有一个还是两个结果,一开始没在意,后来就重现了我的破解过程,就没改)。
挨个测试、分析吧。点击第一个。
(图六)
点右上角【┋】点击【搜索】,
点击查找下一个。知道找到可疑的地方(本例只有一处)
(图七~八)
搜索到如下代码:
[Asm] 纯文本查看 复制代码 ......
.line 386
:cond_78
const-string/jumbo v0,""
.......
上面有一个【:cond_78】是一个标签,
应该有一个地方判断是否成功后,条转过来(注意,这只是一个猜想)
按①,②操作
(图九)
搜索到唯一一个跳转到这里的地方。
代码如下
[Asm] 纯文本查看 复制代码 if-ne p1,v0, :cond_78
(图十)
敲黑板!!
分析一下:
看到if显然是把p1和v0的值做比较,似乎差不多就是我们要找的那个关键跳(jmp)
顺便补充一下,文中出现的Smali语法
.method 方法
.line 12 此方法位于第12行
invoke-static 调用静态函数
条件跳转分支:
"if-eq vA, vB, :cond_**" 如果vA等于vB则跳转到:cond_**
"if-ne vA, vB, :cond_**" 如果vA不等于vB则跳转到:cond_**
"if-lt vA, vB, :cond_**" 如果vA小于vB则跳转到:cond_**
"if-ge vA, vB, :cond_**" 如果vA大于等于vB则跳转到:cond_**
"if-gt vA, vB, :cond_**" 如果vA大于vB则跳转到:cond_**
"if-le vA, vB, :cond_**" 如果vA小于等于vB则跳转到:cond_**
"if-eqz vA, :cond_**" 如果vA等于0则跳转到:cond_**
"if-nez vA, :cond_**" 如果vA不等于0则跳转到:cond_**
"if-ltz vA, :cond_**" 如果vA小于0则跳转到:cond_**
"if-gez vA, :cond_**" 如果vA大于等于0则跳转到:cond_**
"if-gtz vA, :cond_**" 如果vA大于0则跳转到:cond_**
"if-lez vA, :cond_**" 如果vA小于等于0则跳转到:cond_**文中所见的if-ne自然就是判断相等的,我们只要不让它跳转走就行了。
当然,有了刚才补充的知识,就有好几种操作的方法了,
举个栗子。
● 想我之前做的,把要比较的两个要比较的内容改成一样的,比如
[Asm] 纯文本查看 复制代码 if-ne v0,v0, :cond_78
(图十一)
当然,改成1,1啦2,2啦也应该都是行的,
● 或者,干脆删掉,用“#”注释掉也是OK的。
反正,随便选一种方案,改完。
如上图十一保存,
显示下图即可。
(图十二)
返回,保存(这次称作编译,毕竟专业点嘛不然会被笑话的)。
(图十三~十四)
退出。(刚才【编译】过了)
(图十五)
退到apk内部,会自动提示刚才的小动作把【classes.dex】被改变了,点击保存。
(图十六~十七)
保存完毕,
看到那个文件变绿没有?变绿说明被修改过了。
按返回。
(图十八)
点击apk--功能--apk签名
(图十九)
保持默认(除非想让软件管家之类的软件认为你安装的是危险软件或不是这个游戏),直接确定。
(图二十~二十二)
安装。
(图二十三)
检测一下。
OK
(剩下所有图片)
为了让大家自己动手破解,附件中的破解版有一个本人免责声明(出自论坛),
大家可以自己动手破解,跟着教程,不难的。
本文样本下载地址(仅有当时的原版供下载):
https://pan.baidu.com/s/1FVzYhMdvCG1UTXZ88k3ZZg 口令: z5qd
来个免费评分呗。。。被折磨的这么惨,先是熬夜码字,,又是因为手机不兼容,出来的全是乱码。。。
其实,相对于破解,发破文更难,不仅要再完整破解一遍,还要配字。。。
下一篇传送门:
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|