跳轉指令公式計算 HOOK

2022-03-02 10:18:10 字數 606 閱讀 3663

注:不要hook 函式裡可能會被跳轉的位址, 不要hook 位元組中包含函式呼叫的位址 如 hook的位址裡有 call edx 等

x86x64

jmp計算公式

1 第一種方法 jmp qword ptr[ 儲存目標位址的指標位址]

儲存目標位址的指標位址-下條指令的位址= 特徵碼 ff 25 後面跟著的32位數  

(注意儲存目標位址的指標位址 和 下條指令位址 都必須在乙個pe段(section)) 而且  儲存目標位址的指標位址 必須在 下條指令的位址下面

計算下條指令方法就是 ff 25 32位數 總共 六個位元組

儲存目標位址的指標位址 必須是 八個位元組

總共 14 個位元組

2  第二種方法

push r15

mov r15, 目標位址

jmp r15    

到目標位址一系列操作後 還原 r15 pop               

pop r15 

3 第三種方法

mov r15,目標位址

push r15

ret個人建議 使用 第一種方法

call位址計算 當前位址4位元組 + e8 後面的4位元組 + 5

linux核心hook技術之跳轉指令偏移值

在另一篇博文中提到了指令覆蓋和指令注入的hook方式,使用覆蓋和注入方式完成核心函式hook,需要有很多的注意事項,而且容易被檢測工具檢測。這篇博文則聊一下如何通過替換跳轉指令偏移值來完成核心函式的hook,這種hook技術也可以稱為inline hook。事先做個準備工作,手頭正好有centos ...

彙編 跳轉指令

助記符 標誌位說明 jz je zf 1 等於零 相等 jnz jne zf 0 不等於零 不相等 jssf 1 符號為負 jnssf 0 符號為正 jp jpe pf 1 低8位 1 的個數為偶 jnp npo pf 0 低8位 1 的個數為奇 joof 1 溢位jno of 0 無溢位jc jb...

跳轉指令 jmp call ret retf

jmp call和ret指令的近轉移形式只是在當前 段中執行程式控制轉移,因此不會執行特權級檢查。jmp call或ret指令的遠轉移形式會把控制轉移到另外乙個 段中,因此處理器一定會執行特權級檢查。1 jmp指令 不影響堆疊 緊緊進行執行流程的跳轉,不會儲存返回位址。書p55 對於jmp而言,長短...