注:不要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而言,長短...