1.dalvik寄存器:32位,所有类型,<=32 一个寄存器 64:使用两个相邻寄存器
2.寄存器的命名法:v :局部变量寄存器 v0-vn 参数寄存器 vn-vn+m
p:参数寄存器p0 -pn 变量寄存器 v0-vn
第一种
image.png
第二种
image.png
- dex文件反汇编工具
.java编译成.class在编译成.dex 最后反编译得到samli文件
.java →.class → .dex → smali
dx.jar: .class打包.dex
dx --dex --output=Decrypt.dex com/yijinda/demo/Decrypt.class
Baksmali.jar: . dex反编译成smali
java -jar baksmali.jar -o smali_out/ classes.dex
Samli.jar : .smali打包成.dex
java -jar smali.jar smali_out/ -o classes.dex
- dalvik字节码类型
Dalvik → java
image.png
- 字段
Lpackage/name/ObjectName;->FieldName:Ljava/lang/String;
字段格式:类型(包名+类名)->****字段名称:****字段类型
6.方法
Lpackage/name/ObjectName;->MethodName (III) Z
** (III) Z:**这部分表示的是方法的签名信息
总结:
寄存器
寄存器命名法
Dex文件反汇编工具
Dalvik字节码类型
字段
方法