Android 反编译入门

原文链接(英文):http://lonelyzerg.xyz/en/index.php/2018/08/01/reverse-engineering-of-android/

英文链接作废,中文版的随便凑合看看吧

  • Android 工程结构

  • Android APK文件打包

  • Android APK文件解包

解包需要用到apktool软件,执行:

apktool d xxx.apk

重新打包执行:

apktool b xxx -o yyy.apk

  • 分析classes.dex文件

首先需要用用dex2jar软件将dex文件转换为jar:

d2j-dex2jar classes.dex

然后用JD-GUI或者其他工具打开得到的jar文件:

  • 工具

apktool: https://ibotpeaches.github.io/Apktool/

dex2jar: https://sourceforge.net/projects/dex2jar/

JD-JUI: http://jd.benow.ca/

  • 备注

Android Studio 生成的apk会有一些代码混淆来阻止反编译。使用dex2jar反编译dex文件会报错:

java.lang.RuntimeException: can not merge I and Z

可以通过修改源码中TypeClass.java的代码,将两条相关报错的 if 语句注释掉,然后重新编译dex2jar即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注