6.匯編-修改EIP的指令
EIP寄存器
EIP寄存器表示CPU下次執(zhí)行的位置
JMP指令
JMP指令相當(dāng)于給EIP寄存器賦值
JMP后面只能是32位的
指令格式:
MPV EIP,寄存器/立即數(shù)/內(nèi)存
簡寫:JMP 寄存器/立即數(shù)/內(nèi)存
JMP 0x00FF19 -> MOV EIP,0X00FF19
JMP EAX -> MOV EIP,EAX
JMP DWORD PTR DS:[0x18ffa0] ->MOV EIP,DWORD PTR DS:[0x18ffa0] #這里內(nèi)存指針只能用32位的
CALL指令
PUSH下一行地址
MOV EIP,立即數(shù)/寄存器/內(nèi)存
簡寫 CALL 立即數(shù)/寄存器/內(nèi)存
與JMP唯一區(qū)別:
在堆棧中存儲CALL指令(當(dāng)前指令)的下一行地址 (PUSH 到堆棧中)
如果是調(diào)試call的匯編指令的時候很魂,要按F7 否則會跳過
RET 指令
從堆棧中pop 出地址扎酷,賦值給eip
ADD ESP 4,
MOV EIP,dword ptr ds:[ESP-4]
----------
MOV EIP,dword ptr ds:[ESP]
ADD ESP 4
以上指令簡稱 RET指令