app反编译工具

反编译工具

apktool:解压文件的布局文件、图片资源以及dex文件。

dex2jar:将APK反编译为java源码,dex2jar在实际应用当中往往无法直接反编译apk文件,由apktool获取到dex文件,然后用dex2jar将其转换得到jar文件。

jd-gui:查看APK中classes.dex转化成出的jar文件,即源码文件。

jdax:支持直接打开apk、dex、jar、class、smail、zip、aar、arsc文件。

smail.jar:将smail文件编译成dex文件。指定smail文件时直接指定目录即可。

baksmail.jar:将dex文件反编译成smail文件。

apktool反编译app

使用apktool解压APK文件

将 apktool.bat 和 apktool.jar 文件放到同一文件夹下,在该文件夹下打开cmd窗口,执行以下命令

1
java -jar apktool.jar -r d -f  xxx.apk  

image-20211212215315932

解压完成在当前目录下会生成有一个同名的文件夹,文件夹内部是解压出来的文件。

image-20211212215358382

文件夹内容如下,可以得到 xml、smali反汇编代码、res资源文件、assets配置文件、lib库文件

  • classes.dex:java层的主要代码,即主程序
  • META-INF:签名和证书相关文件 ·
  • lib:native层的动态链接库文件(.so)目录,按照CPU架构作为子目录存放不同的so
  • assets:打包的静态文件,通常存放需要读取的图片、加密代码等等
  • res:资源目录
  • AndroidManifest.xml:配置文件,默认状态为编译后的二进制文件
  • resources.arsc: 资源配置文件,默认状态为编译后的二进制文件

打包app

1
# java -jar apktool.jar b -f 要打包的文件夹路径 -o 输出的apk路径

APP签名

使用APK上上签。

image-20211212220403730

打开后直接将APK文件拖入即可自动化签名,签名完成以后在原APK目录下创建一个新文件,xxx_signed.apk。

image-20211106171050041

dex2jar反编译APP

流程:classes.dex——>classes.jar

1
2
usage:
d2j-dex2jar <dex filename> -o <jar filename>

image-20211212220759452

smail编译成.dex文件

流程:smali file * n——> dex 文件

1
2
usage:
java -jar smail.jar <smali directory> -o <dex directory+filename>

image-20211212221548025


作者:C0mpactDisk,本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!