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

Android-APK反编译学习

2014-09-12 15:03 183 查看
自己写这篇文章的目的在于帮助大家更好地学习android。把一些好的应用通过编译成可读文件。具体步骤:

一、解压APK生成目录

apk的目录结构,如下



assets 这个文件夹用来放入要使用的文件,比如XMLor.txt等,这个目录里面的文件不会编译成二进制代码。
lib存放的是 NDK编出来的 so 库
META-INF存放的是数字签名,再发布一个APK时都要签上数字签名,如果翻译之后然后再打包成APK,千万要签上数字签名。要不然在设备上是无法安装你的APP的。
res存放的是资源文件比如XML,IMG。
AndroidManifest.xml是整个应用的配置文件,比如声明组件,设置权限,版本等。
classes.dex是最终生成的 dalvik 字节码,java和R文件都被编译在这里面
resources.arsc编译后的二进制资源代码

二、介绍反编译工具

这里主要运用了三个工具,可到官方下载最新版本:

1.dex2jar(把classes.dex编译成.jar文件,主要看java代码)

2.apktool(这个用来反编译classes.dex和资源文件比如图片,音频等)

3.jd-gui(这用来查看.jar文件),注意如果反编译之后重新打包成APKjava代码是不可以修改的,只能查看,查看编译后的jar包代码和源代码有一些差别。

三、下载反编译工具

以上下载三个工具文件还是不够的,需要特殊配置文件才能反编译,一下提供工具包:

Android反编译工具包 免费下载

tools里面有三个目录

1.dex2目录用来反编译classes.dex文件

2.apk-tool反编译资源文件

3.jd-gui查看编译后的jar文件(java源代码)注意和源代码有差别

四、如何使用反编译工具

下载工具包之后解压出来,进入cmd(命令终端),在周末开始的搜索框输入cmd命令

1用cd进入刚才解压的包中的dex2根目录(比如我的在E盘,首先进入工具包所在的盘)



2.把classes.dex编译成.jar

输入命令: dex2.bat 绝对路径\classes.dex,



显示这个就代表编译完成,在你classes.dex文件所在的目录中有classes_dex2jar.jar这个文件,然后你进入jd-gui包中双击打开

jd-gui.exe文件,然后在工具栏选择File-Open File-classes_dex2jar.jar这是你可以看到java代码了。

3.编译资源文件,这时用apktool目录下的apktool.bat,用命令进入到apktool文件夹,

输入命令 apktool.bat d [绝对路径\apk文件名称] [想要输出的目录]



这样就完成了,到你输出的目录上查看。所有的布局和资源文件都可以正常显示了。

五、重新将反编译后的文件打包成APK

还是使用apktool.bat

输出 apktool.bat b [刚才编译的输出目录] 注意:记得加路径



完成.查看apk在输出目录的dist目录下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: