1 .dalvik字节码
1 dalvik寄存器:
- 32位: 所有寄存器
- 64位: 使用两个相邻的寄存器
2 寄存器的命名法:
v
: 局部变量寄存器v0-vn
参数寄存器:vn-vn+m
p
: 参数寄存器p0-pn
变量寄存器v0-vn
3 dex文件反汇编工具
.java
编译成.class
再编译成 <code>.dex
最后编译得到 smali文件
.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
-
smali.jar
:smali
打包成.dex
java -jar smali.jar -o smali_out/classes.dex
4 dalvik字节码类型
基础类型
Dalvik 类型 | java类型 |
---|---|
B | byte |
C | char |
S | short |
I | int |
J |
long |
F | float |
D | double |
Z |
boolean |
V | void |
L |
java类类型 |
[ |
数组类型 |
字段
|
|
方法
|
|
练习:
|
|