Android安全/应用逆向--24--反编译classes.dex文件

7-1、反编译classes.dex

Java源代码首先被编译成.class文件,然后Android SDK自带的dx工具会将这些.class文件转换成classes.dex。所以我们只需要想办法反编译classes.dex即可得到java源代码。运用安卓反编译工具dex2jar可将dex文件反编译成.jar文件,然后运用jd-gui工具即可查看反编译后得到的Java源代码。

查看classes.dex文件的smali代码:将其对应的APK文件解包,然后就能看到classes.dex的smali代码了。也可以使用baksmali工具直接将classes.dex转换为smali代码。

Baksmali的用法:

cd到baksmali安装目录下。Baksmali2.X版本命令已换,不知道具体是多少

java –jar baksmali-2.1.3.jar –o <输出文件夹> <目标dex文件>  //将dex反编译为smali代码文件夹
java –jar smali-2.1.3.jar –o <目标dex文件名>  //将smali代码文件夹编译为指定的dex文件

目前几乎所有工具在反编译上都只是给apktool套了一个外壳,因此apktool是根本的。

工具:

1、Android killer、APKIDE、Apktoolkit等图形化集成工具
2、Jd-gui、JEB、dex2jar、Jadx、逆向助手等
3、Smali2java(注意。它实质上只支持apktool 1.x版本,不支持apktool 2.x版本)
4、Apktool (注意。使用不当会导致区域格式化)
5、Xposed框架、CydiaSubstrate框架(主要进行native下的HOOK)
6、ZjDroid、IDA

静态分析Smali代码

步骤:

1、先在AndroidManifest.xml文件下设置为可调试模式。

你可能感兴趣的:(移动安全)