APK逆向工程

2020-11-24 12:31:37 浏览数 (1)

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。

相关命令

解包:

代码语言:javascript复制
apktool d test.apk

dex2jar

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

相关命令
代码语言:javascript复制
 d2j-dex2jar classes.dex

jd-gui

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

image.png

加载jar包

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

保存源码文件

在file->save即可。

0 人点赞