本博客地址:https://security.blog.csdn.net/article/details/82926445
一、反编译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的用法:
1、cd到baksmali安装目录下。Baksmali2.X版本命令已换,不知道具体是多少
2、java –jar baksmali-2.1.3.jar –o <输出文件夹> <目标dex文件> //将dex反编译为smali代码文件夹
3、java –jar smali-2.1.3.jar –o <目标dex文件名> <smali文件夹> //将smali代码文件夹编译为指定的dex文件
目前几乎所有工具在反编译上都只是给apktool套了一个外壳,因此apktool是根本的。
工具ÿ