0x01 dalvik寄存器
32位,所有類型, <=32一個寄存器
64位:使用兩個相鄰寄存器
0x02 寄存器的命名法:
v:局部變量寄存器 v0-vn 參數寄存器 vn-vn+m
p:參數寄存器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字節碼類型
Dalvik | java |
---|---|
B | byte |
C | char |
S | short |
I | int |
J | long |
f | float |
D | double |
Z | boolean |
V | void |
L | java類類型 |
[ | 數組類型 |
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指令格式
基礎字節碼-名稱后綴/字節后綴 目的寄存器 源寄存器
名稱后綴是wide,表示數據寬度為64位
字節碼后綴是from16,表示源寄存器為16位
move-wide/from16 vAA,vBBBB
move 為基礎字節碼,即opcode
wide 為名稱后綴,標識指令操作的數據寬度為64位
from16 為字節后綴,標識源為一個16位的寄存器引用變量
VAA 為目的寄存器,它始終在源寄存器簽名,取值范圍為v0-v255
VBBBB 為源寄存器,取值范圍v0-65535
Dalvik指令集中大多數指令用到了寄存器作為目的操作數活源操作數,其中
A/B/C/D/E/F/G/H 代表一個四位的數值,
AA/BB/.../HH 代表一個8位的數值,
AAAA/BBBB/.../HHHH 代表一個16位的數值
0x06 dalvik指令
- 空操作指令
nop
空操作指令的助記符為nop。它的值為00,通常nop指令被用來做對齊碼使用,無實際操作
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
寄存器
+關注
關注
31文章
5357瀏覽量
120632 -
編譯
+關注
關注
0文章
659瀏覽量
32903 -
安卓
+關注
關注
5文章
2133瀏覽量
57304
發布評論請先 登錄
相關推薦
[資料分享]+《Android軟件安全與逆向分析》
不同的寄存器表示方法——v命名法與p命名法 42 3.2.5 Dalvik字節碼的類型、方法與字段表示方法 43 3.3 Dalvik
發表于 09-26 10:53
多寄存器Load/Store內存訪問指令
5.4 多寄存器Load/Store內存訪問指令 多寄存器Load/Store內存訪問指令也叫批量加載/存儲指令,它可以實現在一組
發表于 10-18 15:56
?1次下載
單寄存器的Load/Store指令詳解
(Single Register) 這些指令在ARM寄存器和存儲器之間提供更靈活的單數據項傳送方式。數據項可以是字節、16位半字或32位字。 ② 多
發表于 10-18 15:57
?1次下載
Thumb指令集之多寄存器數據傳送指令解析
于過程調用與返回以及存儲器塊拷貝。但為了編碼的緊湊性,這兩種用法由分開的指令實現,并且這些指令也只使用單一的尋址方式。在其他方面,這些指令的性質與等價的ARM
發表于 10-19 09:56
?0次下載
指令指針寄存器是什么_作用有哪些
指令指針寄存器IP(X86型CPU)相當于ARM型CPU中的程序計數器PC,用于控制程序中指令的執行順序。正常運行時,IP中含有BIU要取的下一條指
發表于 11-13 09:58
?1.2w次閱讀
逆向基礎之寄存器和內存詳解
本文主要介紹的是逆向基礎的寄存器和內存方面的信息,首先介紹的是逆向主要是做什么的,其次對編程和機器架構做了個簡介,最后詳細的闡述了逆向基礎的寄存器
發表于 04-26 09:52
?2995次閱讀
評論