安卓逆向学习----smali,dex,java等文件之间转换关系

与安卓应用相关的文件类型有许多,他们之间通过编译、反编译可以互相转换,下面总结一下这些文件类型,这些文件类型有.apk .java .class .jar .smali .dex ,自己也在学习之中,有什么错误或者不足欢迎指正

逆向的过程一般是:输入apk---apktool解析为smali和dex---dex2jar转换为jar---使用jd-gui查看java代码

这些文件的关系如图:

安卓逆向学习----smali,dex,java等文件之间转换关系_第1张图片

1.apk文件

这是安卓应用安装包的文件格式,本质是一个压缩包,可以将后缀名改为zip直接解压,解压缩后会得到dex文件、资源文件、so文件等

2.dex文件

dalvik执行文件,通过apktool或者直接解压缩得到。

adb shell中的dalvik命令可以直接执行dex文件

3.jar文件

是一种归档文件,以zip格式构建,包含java和一些元数与资源文件

4.smali文件

dalvik字节码文件,一种中间语言,相当于dalvik虚拟机的汇编语言

5.class文件

java虚拟机的可执行文件

你可能感兴趣的:(安卓,逆向)