0x01 dalvik寄存器
32位,所有類型,  <=32一個寄存器 
 64位:使用兩個相鄰寄存器
0x02 寄存器的命名法:
v:局部變量寄存器 v0-vn  參數(shù)寄存器 vn-vn+m
p:參數(shù)寄存器p0 -pn      變量寄存器 v0-vn
0x03 dex文件反匯編工具
.java編譯成.class在編譯成.dex 最后反編譯得到samli文件
.java -->.class -->.dex -->samli
dx.jar ----- .class打包.dex
dx --dex --output=Decrypt.dex com/xxx/xxx/Decrypt.class
Baksamli.jar------- .dex反編譯成 samli
java -jar baksmali.jar -o smali_out/class.dex
Samli.jar-----.smali打包成.dex
java -jar smali.jar smali_out/ -o classes.dex
0x04 dalvik字節(jié)碼類型
| Dalvik | java | 
|---|---|
| B | byte | 
| C | char | 
| S | short | 
| I | int | 
| J | long | 
| f | float | 
| D | double | 
| Z | boolean | 
| V | void | 
| L | java類類型 | 
| [ | 數(shù)組類型 | 
0x05 字段
表示的是成員變量
字段格式: 類型(包名/類名) ->字段名稱:字段類型
Lpackage/name/ObjectName;->FieldName:Ljava/lang/String;
相當于
Package com.yjh
Class ObjectName{
  String FieldName;
}
0x05 方法
字段格式: 類型(包名/類名) ->方法名方法的簽名信息
Lpackage/name/ObjectName;->MethodName(III)Z
(III)Z:這部分表示方法的簽名信息
相當于
Package com.yjh
Class ObjectName{
  public boolean MethodName(int a,int b ,int c){
  }
}
0x06 dalvik指令格式
基礎(chǔ)字節(jié)碼-名稱后綴/字節(jié)后綴 目的寄存器 源寄存器
名稱后綴是wide,表示數(shù)據(jù)寬度為64位
字節(jié)碼后綴是from16,表示源寄存器為16位
move-wide/from16 vAA,vBBBB
move   為基礎(chǔ)字節(jié)碼,即opcode
wide   為名稱后綴,標識指令操作的數(shù)據(jù)寬度為64位
from16 為字節(jié)后綴,標識源為一個16位的寄存器引用變量
VAA    為目的寄存器,它始終在源寄存器簽名,取值范圍為v0-v255
VBBBB  為源寄存器,取值范圍v0-65535
Dalvik指令集中大多數(shù)指令用到了寄存器作為目的操作數(shù)活源操作數(shù),其中
A/B/C/D/E/F/G/H     代表一個四位的數(shù)值,
AA/BB/.../HH        代表一個8位的數(shù)值,
AAAA/BBBB/.../HHHH  代表一個16位的數(shù)值
0x06 dalvik指令
- 空操作指令
 
nop
空操作指令的助記符為nop。它的值為00,通常nop指令被用來做對齊碼使用,無實際操作
- 
                                寄存器
                                +關(guān)注
關(guān)注
31文章
5521瀏覽量
128510 - 
                                編譯
                                +關(guān)注
關(guān)注
0文章
682瀏覽量
34885 - 
                                安卓
                                +關(guān)注
關(guān)注
5文章
2175瀏覽量
59739 
發(fā)布評論請先 登錄
[資料分享]+《Android軟件安全與逆向分析》
多寄存器Load/Store內(nèi)存訪問指令
單寄存器的Load/Store指令詳解
    
Thumb指令集之多寄存器數(shù)據(jù)傳送指令解析
    
淺談單寄存器數(shù)據(jù)傳送指令
指令指針寄存器是什么_作用有哪些
    
指令指針寄存器和指針寄存器差異性在哪兒
    
          
        
        
安卓如何逆向_Dalvik 寄存器,字節(jié)碼,指令格式 1
                
 
    
           
            
            
                
            
評論