匯編的學(xué)習(xí)
- cpu工作的原理
cpu由總線調(diào)用位置寄存器中存儲(chǔ)的內(nèi)存的位置该押,并讀取內(nèi)存问麸,識(shí)別內(nèi)存中的代碼與數(shù)據(jù)往衷,執(zhí)行代碼,調(diào)用數(shù)據(jù)严卖,以此完成程序的調(diào)用席舍。
cpu指認(rèn)被cs:ip指向的內(nèi)存為代碼
- 8086中的寄存器
ax bx cx dx 通用寄存器
cs ds es ss 代碼段寄存器
ip 指令指針寄存器
cs:ip 組合可視作指令指示器 且要指向指令所屬的首地址r
- 基本的命令
1.mov 傳送指令,用于對(duì)通用寄存器的賦值
例如 mov ax,123 將123的值賦予ax通用寄存器
2.jmp 2AE3:3 將2AE3賦給cs 將3賦給ip 于是訪問的內(nèi)存位置就為2AE33H
修改ip的值 可用jmp + 某一合法寄存器 jum ax 即將ax的值賦給ip寄存器
3.add ax,bx 加法運(yùn)算將ax+bx 的值賦給ax
4.sub 減法運(yùn)算 sub ax,bx 將ax-bx 的值賦給ax
- pus
- DOS命令
查看內(nèi)存的內(nèi)容 D
查看修改CPU寄存器的內(nèi)容 R
修改內(nèi)存的內(nèi)容 E
將內(nèi)存中的內(nèi)容解釋為機(jī)器指令和對(duì)應(yīng)的匯編指令 T
以匯編的形式向內(nèi)存中寫入指令 A
DS[address] ds寄存器用于儲(chǔ)存要訪問數(shù)據(jù)的段地址
mov ax(al) ,[] 可以用于傳輸某個(gè)內(nèi)存位置的數(shù)據(jù)字(字節(jié))
- 棧
出棧 PUSH
入棧 POP
ss 棧頂寄存器
sp 棧偏移記錄
IDA權(quán)威指南
有了一些匯編的基礎(chǔ)了smali
每一個(gè)smali文件頭三行都包含
.class <訪問權(quán)限> [修飾關(guān)鍵字]<類名>
.super <父類名>
.source<源文件名>
public private protected 訪問權(quán)限