JMP指令轉換公式推導

2021-09-20 13:51:16 字數 860 閱讀 3409

看完鬱金香第020課總結:

同樣的一句指令 jmp 88881234在不同位置有以下現象

找規律:

88881234 - 010073bb = 87879e79

88881234 – 010073c0 = 87879e74

88881234 – 010073c5 = 87879e6f

因為機器碼 如e9 749e8787 是按位元組排列的所以87879e74顯示出來是749e8787

所以可得以下公式

jmp的位址(88881234) – **位址(010073bb) – 5(位元組) = 機器碼跳轉位址(e9 87879e74)

typedef struct _jmpcode

byte e9;

ulongjmpaddr;//88881234=b

}jmpcode,*pjmpcode

應用:跳過ssdt_hook

那麼我們可以修改0xbbbbbbbb裡的內容,內容為一條jmp指令。以達到繞過ssdt_hook的目的。

//

jmp結構

typedef struct

_jmpcode

jmpcode,*pjmpcode

//定義jmp結構

jmpcode jcode;

jcode.e9=0xe9; //

jmp機器碼

jcode.jmpaddr=cur-old-5;//

計算jmp 後面的數值

_asm

出處:

張東公升 

JMP指令轉換公式推導

看完鬱金香第020課總結 同樣的一句指令 jmp 88881234在不同位置有以下現象 找規律 88881234 010073bb 87879e79 88881234 010073c0 87879e74 88881234 010073c5 87879e6f 因為機器碼 如e9 749e8787 是按...

JMP位址公式推導

以上有個問題 為什麼同樣的彙編指令jmp 12345678卻對應不同的機器碼呢?首先,機器碼e9表明這是乙個近跳轉 near jmp jmp分3種 短跳轉 short jmp,只能跳轉到256位元組的範圍內 對應機器碼 eb 短跳轉和近跳轉指令中包含的運算元都是相對於 e ip的偏移。遠跳轉指令中包...

8086 彙編 jmp 指令

功能 修改cs ip的指令 可以通過改變cs ip中的內容,來控制cpu要執行的目標指令。背景 一般情況下指令是順序地逐條執行的,而在實際中,常需要改變程式的執行流程。轉移指令,短轉移 jmp short 標號 功能 ip ip 8位位移 原理 1 8位位移 標號 處的位址 jmp指令後的第乙個位元...