吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 75410|回复: 142
收起左侧

[Android 原创] 教你在不懂Smali语法的前提下如何破解安卓软件

    [复制链接]
挥着翅膀男孩 发表于 2015-6-14 00:33
前言
经常遇到这种问题,最新版的软件更新了,但是却没有最新版的破解版,等待破解作者更新,有可能很快,也可能很漫长,更甚者,作者已经停更了!自己动手,又不懂smali语法,怎么办呢?那么,接下来,本文档就教你如何在已有破解版的基础上去更新破解新版,下面以AIDE为例:

准备工作:
需要的工具有:电脑一台,JDK(配置好环境变量),AndroidKiller(反编译回编译),BeyondCompare(进行分析对比数据)等;
所需工具下载:http://pan.baidu.com/s/1qW1aTEO密码:uchj

破解思想
首先下载同一版本号的正版软件和破解版软件,使用AndroidKiller对软件进行反编译,再使用BeyondCompare对反编译得到的资源进行对比,从分析的数据可以看出有正版与破解版之间哪些改动,然后根据这些,再对新版软件进行反编译,对照着改动的位置,进行编写修改代码,最后回编译,安装调试!

分析过程:
1.      下载软件(以aide2.9.6版本为例):正版:http://pan.baidu.com/s/1bnbdbjT 密码:6vua,
破解版:链接:http://pan.baidu.com/s/1dDwDDZz 密码:zygt
2.      使用AndroidKiller对下载的软件进行反编译,详细如图(左为正版反编译截图,右为破解版反编译截图):

正版截图

正版截图

破解版截图

破解版截图


3.      使用BeyondCompare对刚刚反编译的资源文件夹(AndroidKiller反编译的资源在*\AndroidKiller_V1.2\projects\文件夹内,如图3.1)进行对比分析:

反编译对比

反编译对比
5.png

使用BeyondCompare对比分析结果截图:

从图中可以看出以下四个.smali文件有改动,我们只需要关注这四个文件(牢记该文件所在路径)即可,如下详细路径:
*\smali\com\aide\engine\service\Native.smali
*\smali\com\aide\ui\af.smali
*\smali\com\aide\ui\j.smali
*\smali\com\dropbox\client2\android\a.smali

下面就各个.smali文件进行分析,摸索差异(图中有颜色的部分即为差异部分):

(1)    Native.smali的分析
6.png
关于Native.smali的修改,可参见@蠻荒搜神大大的这个帖子:
http://tieba.baidu.com/p/2689006027?share=9105&fr=share,Native.smali这个主要是签名验证的作用,实例中,直接替换即可,感谢蛮大编写的Native.class,在这里,我们称此处为第1处修改


(2)    af.smali的分析
7.png 8.png
af.smali这个文件,通过对比可以发现,在if-eqz v0, :cond_4这个条件判断之后,增加了一条goto :goto_1跳转,使其跳过了原本的语句,直接跳转到:goto_1

invoke-static {p0},Lcom/aide/ui/af;->FH(Landroid/app/Activity;)V这条语句,所以,我们只需要在最新版软件中,定位到该语句,修改跳转即可,如何定位呢?可以根据文中的修改的语句的上下文中截取部分特色代码,使用AndroidKiller搜索即可,我截取这个"AIDE Premium Sale"进行搜索,只是更方便定位到所需语句罢了。在这里,我们称此处为第2处修改。

(3)    j.smali的分析

j对比

j对比
j.smali只是对FH函数中的const/4 v0, 0x0语句下面增加了一条const/4 v0, 0x1语句,使用了v0本地寄存器,并把值0x1存到v0中,可以不懂不理解,知道在这里增加一句修改就好,对于该j.smali文件修改,首先定位到FH函数,在对应位置进行修改即可,我们也可以使用AndroidKiller截取部分代码搜索,定位到需要修改的位置,我选择截取的是"AIDL",然后找寻需要修改的位置!在这里,我们称此处为第3处修改

(4)    a.smali的分析

a对比

a对比
a.smali这个文件,是在if-nez v1, :cond_1判断下,增加了goto :goto_1跳转,让程序即使判断了条件,也会跳转到:goto_1
invoke-virtual {p1,v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V语句,同样,对于修改,只需要定位到位置,对应修改即可,对于该文件,可以截取const/high16 v1, 0x10000000这个语句使用AndroidKiller进行搜索定位。在这里,我们称此处为第4处修改。



破解过程:
1.      反编译:
下载最新版软件(截止目前AIDE3.1版本),并对其进行反编译,分析等
下载链接:http://pan.baidu.com/s/1eQ6LcLc 密码:nu9a

2.      第1处修改:

提取破解版的Native.smali文件,直接替换到最新版反编译的资源文件夹的对应目录进行替换,即可,如图!

第1处修改

第1处修改

3.      第2处修改:

使用AndroidKiller搜索"AIDE Premium Sale",得到结果位于*\smali\com\aide\ui\ag.smali,我们双击打开搜索的结果,定位到if-eqz v0, :cond_4判断语句,在其后增加goto :goto_1,再找到该方法的最后,根据前面的分析,在 :cond_4之后增加:goto_1,再次检查对比,检查错误,然后保存!如下图:

第2处对比1

第2处对比1

第2处对比2

第2处对比2

4.      第3处修改:
打开AndroidKiller,搜索"AIDL",会得到5条结果(如下图4.1),我们选择位于*\smali\com\aide\ui\目录的,也就是*\smali\com\aide\ui\j.smali这个,双击打开它,再搜索const/4v0, 0x0,再和前面分析的对比,定位到FH函数,找到需要修改的位置,在const/4 v0, 0x0一句下增加一条const/4 v0, 0x1(图4.3),然后保存。

第3处修改1

第3处修改1

第3处修改2

第3处修改2

第3处修改3

第3处修改3

5.      第4处修改

搜索const/high16 v1, 0x10000000,得到9条结果,我们需要的是*\smali\com\dropbox\client2\android\目录下,也就是*\smali\com\dropbox\client2\android\a.smali这个文件,双击打开,定位到if-nezv1, :cond_1判断,在下面添加goto :goto_1,再找到:cond_1,在后面加上 :goto_1,然后保存!

第4处修改1

第4处修改1

第4处修改2

第4处修改2

6.      保存并回编译

最后,就是保存所有修改的文件,回编译,回编译的文件会在日志输出最后一行显示,将回编的软件安装到手机进行调试!
9.png


软件安装调试

提取软件之后,将软件安装到手机,从运行的截图,可以看出以成功破解,
破解版下载:http://pan.baidu.com/s/1o6xbrTK 密码:xpzi,截图如下:

运行截图1

运行截图1

运行截图2

运行截图2

运行截图3

运行截图3

运行截图4

运行截图4

关于&鸣谢


首先感谢AIDE团队,多么强大的移动端IDE,以及破解作者:@蠻荒搜神 大大,没有他的破解版,不会有这个教程文档,然后感谢AndroidKiller的制作团队,Beyond Compare的制作团队,编写出这么强大的工具,最后就是JAVA_JDK了,其重要性就不用说了,致谢!


或许因网页等多方面因素影响,排版难免有所不同,所以写了word文档,下面放出链接,不想看网页的排版的,可以下载word版本!
下载:http://pan.baidu.com/s/1ntMLOed 密码:4172

破解教程.7z

2.06 MB, 下载次数: 135, 下载积分: 吾爱币 -1 CB

点评

我来学习一下子[/color=Red]  发表于 2016-5-9 15:54
[color]楼下变红[/color=Red]  发表于 2015-7-22 17:38
[/color=Green]  发表于 2015-7-9 10:52
楼下全部变粗  发表于 2015-7-3 14:58
给我变红![/color=Red]  发表于 2015-7-3 14:56
[color]楼下变红[/color=Red]  发表于 2015-7-3 14:54
如果是作者加功能了,这样反而会误导。  发表于 2015-6-20 09:55
虽然不利于深造,但非常适合小白们 谢谢楼主  发表于 2015-6-20 08:29
一定要懂smail和java,只会对比的话永远不会懂得到底为什么要这么做,为什么要修改这行代码,这样走不深  发表于 2015-6-18 12:19

免费评分

参与人数 40吾爱币 +3 热心值 +40 收起 理由
辰世浪子 + 1 + 1 [color=Red]不利于深造[/color=Red]
demo筑梦 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
18个春秋 + 1 + 1 谢谢@Thanks!
破解就业难 + 1 热心回复!
cp328 + 1 谢谢@Thanks!
FallStop + 1 已答复!
125733578 + 1 [color=Red]我来学习一下子[/color=Red]
cdeath + 1 谢谢@Thanks!
xiaozhantongxue + 1 谢谢@Thanks!
yyyz + 1 我很赞同!
asdasduijk + 1 我很赞同!
kanade + 1 用心讨论,共获提升!
boycesh + 1 虽然写的比较基础,但是这类教程实在是太少.
青羽毕方 + 1 我很赞同!
zcytelove2014 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
scootseeder + 1 谢谢@Thanks!
1006706246 + 1 我很赞同!
刺蝴蝶De箫启灵 + 1 支持[color=Purple]
zhaojingpo + 1 代表党和国家给你评分
ZiPP + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
dagangwood + 1 谢谢@Thanks!
stly1015 + 1 我很赞同!
cszssj + 1 谢谢@Thanks!
鹧鸪天 + 1 谢谢@Thanks!
lowkey + 1 热心回复!
bfchengnuo + 1 谢谢@Thanks!
本帐号已消失 + 1 收藏了!
evido + 1 谢谢@Thanks!
Tortoise + 1 谢谢@Thanks!
妖妖大人 + 1 第一次给别人,CB。。。。。。
yzh2004 + 1 谢谢@Thanks!
无趣水瓶 + 1 谢谢楼主啦
smile1110 + 1 这就是对比法了,不错不错,很详尽
7151493817 + 1 写的很详细
fsfnet + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
逍遥枷锁 + 1 谢谢@Thanks!
无痕软件 + 1 暂时没接触安卓破解,不过理解语意才是王道.
巅烽2 + 1 精华
马斯维尔 + 1 我很赞同!感谢word版,不错!
ssyveic + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

lsyAndroid 发表于 2015-7-24 08:00
这个并不是最好的办法,对于自己的水平并不能提高多少,如果他重新开发了,例如基于Android5.0的新API,而你用4.x版本的旧软件去对比的话,很容易出问题,所以还是从基础做起,这个方案当做是一个权宜之计吧!
冰楓丶殘瀷 发表于 2015-6-14 00:43
ssyveic 发表于 2015-6-14 00:44
lincxks 发表于 2015-6-14 01:55 来自手机
给我来个破微信签名验证
ZMLoveLH 发表于 2015-6-14 02:01
多谢楼主的无私分享,这个技术我正需要
mei命 发表于 2015-6-14 02:14 来自手机
这个对我大有帮助谢谢楼主
柳暗花明年冰儿 发表于 2015-6-14 04:33 来自手机
学习一下!!
niuniu919 发表于 2015-6-14 04:49 来自手机
多谢楼主分享,很实用的技术。
 楼主| 挥着翅膀男孩 发表于 2015-6-14 10:37
lincxks 发表于 2015-6-14 01:55
给我来个破微信签名验证

臣妾做不到啊
y376694236 发表于 2015-6-14 12:18
臣妾做不到,貌似我能遇到的常用软件 各大论坛都能找到破解版
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-21 16:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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