您的位置:首页 > 移动开发 > Android开发

安卓反编译工具的应用

2016-05-07 19:02 148 查看
理论来说,反编译别人的apk不是很好,但是单纯的用来学习别人的编程思想,用用反编译工具,也还说得过去。这里介绍一下几个常用的反编译工具,纯粹弥补自己记忆短板。

常用反编译工具:

1、dex2jar ,2、baksmali.jar / smali.jar  3、jd-gui.exe 4、APKSign.exe 

5、apktool    6、ApKIDE

准备工作:将xxx.apk后缀改为zip,即xxx.zip,解压,得到里面的classes.dex文件,这是编译后的源码文件。下面是各个工具介绍。

(1) dex2jar、jd-gui.exe

此工具可用来查看apk源码。可将classes.dex放到dex2jar.bat通目录,假设为
e:\dex2jar\classes.dex。命令行:dex2jar.bat  classes.dex,在同目录得到
classes_dex2jar.jar文件,使用jd-gui.exe即可打开此文件,查看源代码

(2) baksmali.jar / smali.jar

可用来修改源代码,只不过都是smali语法格式。

解包classes.dex命令:java  -jar  baksmali.jar
 -o  out/  classes.dex

out/为输出路径,此处笔者的classes.dex与baksmali.jar smali.jar同一目录

打包classes.dex命令:java  -jar smali.jar
out/  -o classes.dex,out/代表上面解包的文件夹。

baksmali.jar解包后,可修改smali源代码,然后smali.jar将修改好源代码打包成classes.dex,再将此classes.dex覆盖到apk解压后的文件夹中,最后将解压文件夹再压缩为zip格式,压缩完,后缀改为apk。注意这里的压缩,由于压缩算法原因,笔者用360解压软件以及下载的其他几个压缩软件,再压缩后会使得得到的apk不完整,提示安装包损坏。但采用手机上安卓版RE文件管理器,进行压缩就正常了。

(3) APKSign.exe 

上面压缩完后apk,没有签名所以不能安装。采用此工具可以对上述apk进行自动签名。

(4) apktool

此工具同baksmali.jar一样用来解包得到smali源代码。

cmd命令:apktool d  xxx.apk   out
    xxx.apk为apk路径,out为输出路径

apktool网上有牛人开发的集成版,功能不仅仅限于这里的解包,笔者这里只是一个简版。

(5) ApKIDE

终于介绍到这款超级软件了,这款软件集成了上述解包,打包,压缩,签名等功能,另外还有logcat日志信息等等。中文名:改之理。好奇怪而又有个性的名字。嫌上面操作麻烦的,推荐用这款软件,不用记忆命令行语法了,完全傻瓜式操作。一款软件,轻轻松松反编译apk。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 反编译 apk