APK逆向工程

image.png

APK

APK(android Application PacKage)文件是安卓app的安装文件,其实就是一个zip或rar压缩包,把apk后缀改为zip,即可解压得到一堆安卓相关文件。

APK结构

内容 含义
AndroidManifest.xml 二进制xml文件,提供设备运行应用程序所需的各种信息
classes.dex 以dex格式编译的应用程序代码
resources.arsc 包含预编译应用程序资源的二进制XML文件
res 此文件夹中包含未编译到resources.arsc文件中的资源
assets 此文件夹包含应用程序的原始资源,由AssetManager提供对这些资产文件的访问
META-INF 它包含MANIFEST.MF文件,该文件存储有关JAR内容的元数据。APK签名也存储在此文件夹中
lib 此文件夹包含已编译的代码,例如本地代码库

工具介绍

名字 介绍
dex2jar 将apk中的class.dex文件反编译为jar包
jd_gui 将jar反编译为.java文件
apktool 提取apk中的资源文件

下载注意:
根据自己的系统平台下载对应版本的工具,dex2jar貌似不支持Mac OS,其他两种工具支持Windows,Linux,Mac OS。

apktool

apktool主要用于逆向apk文件。它可以将资源解码,并在修改后可以重新构建它们。它还可以执行一些自动化任务,例如构建apk。

相关命令

解包:

apktool d test.apk

dex2jar

dex2jar下载
使用dex2jar,可以将解压apk包得到的classes.dex生成jar包。
下载好后直接解压,即可。
并将该目录添加到环境变量中。

相关命令

 d2j-dex2jar classes.dex

jd-gui

jd-gui下载
使用jd-gui可以将jar包生成java代码。
解压后直接双击打开exe执行:

image.png

加载jar包

在file->open file打开jar包即可。

保存源码文件

在file->save即可。

你可能感兴趣的:(APK逆向工程)