Aandroid 逆向工具
清单文件解密工具:AXMLPrinter2.jar,APK15PBParser.jar
- AXMLPrinter2.jar用与对xml解码
- java -jar AXMLPrinter2.jar AndroidManifest.xml > xx.xml
- APK15PBParser.jar用于对apk解码
- java -jar APK15PBParser.jar dsxyl.apk > xx.xml
- java -jar APK15PBParser.jar dsxyl.apk > xx.xml
- AXMLPrinter2.jar用与对xml解码
Dex文件反汇编工具 : Baksmali.jar
- 反汇编一个class.dex文件,生成一个包含smali后缀文件的out文件夹
- java -jar baksmali-2.2.0.jar d classes.dex
- smali文件对应java中的类文件,若java类中有内部类,表示内部类的smali文件会单独存在
- 名称格式是:主类$内部类.smali若内部类是一个匿名内部类
- R$string.smali 主类是R,内部类是string
- MainActivity$1.smali 主类是MainActivity,匿名内部类是1(因为是匿名所以用序号)
Smali回编译工具 : smali-2.2.jar
- 汇编一个smali文件,生成指定名称的Dex文件
- java -jar smali-2.2.0.jar a Hello.smali -o classes.dex
集成工具Apktool.jar
- 反编译apk,生成apk同名目录
- java -jar apktool_2.2.2.jar d 目标Apk.apk
- 回编译,生成目录同名apk
- java -jar apktool_2.2.2.jar b dsxyl -o OutApk.apk
- java -jar apktool_2.2.2.jar b dsxyl -o OutApk.apk
- 反编译apk,生成apk同名目录
APK签名文件 : signapke.jar
- 没有签名是不能直接安装到模拟器或是手机中的,会报错
- 没有签名是不能直接安装到模拟器或是手机中的,会报错
dex转jar工具 : dex2jar.jar
- 将Dex转为java的jar包,方便jd-Gui工具反编译成java源码(注意:这里的源码不是正真意义上的源码,只是近似源码)
- 将Dex转为java的jar包,方便jd-Gui工具反编译成java源码(注意:这里的源码不是正真意义上的源码,只是近似源码)
java源码反编译工具 : jd-GUI
- 把jar包反编译为java源代码
- 把jar包反编译为java源代码
Android Killer:集成工具
- JEB:反编译效果较好,有插件功能可扩展
Android Smali汇编指令
Java代码编译生成了dex文件,dex文件是运行在Android Dalvik虚拟机之上
类比 : exe文件是运行在Intel处理器之上
Dex文件中的指令是dalvik虚拟机指令
Exe文件中的指令是Intel x86指令
Dalvik汇编指令就是smali汇编