APK逆向工程
2020-11-16 本文已影响0人
Lee_5566
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执行:
加载jar包
在file->open file打开jar包即可。
保存源码文件
在file->save即可。