日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JMP指令转换公式推导

發(fā)布時(shí)間:2024/4/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JMP指令转换公式推导 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

看完郁金香第020課總結(jié):

同樣的一句指令 JMP 88881234在不同位置有以下現(xiàn)象

?

找規(guī)律:

88881234 - 010073bb = 87879E79

88881234 – 010073c0 = 87879E74

88881234 – 010073c5 = 87879E6F

因?yàn)闄C(jī)器碼 如E9 749e8787 是按字節(jié)排列的所以87879E74顯示出來(lái)是749e8787

?

所以可得以下公式

JMP的地址(88881234) – 代碼地址(010073bb) – 5(字節(jié)) = 機(jī)器碼跳轉(zhuǎn)地址(E9 87879e74)

?

typedef struct _JMPCODE

{

?BYTE E9;

?ULONGJMPADDR;//88881234=B

}JMPCODE,*PJMPCODE

?

?

應(yīng)用:

跳過(guò)ssdt_hook

例如:NtOpenProcess 被hook 真正的地址為 0xAAAAAAAA(old) ,hook之后的地址為0xBBBBBBBB(cur)。

那么我們可以修改0xBBBBBBBB里的內(nèi)容,內(nèi)容為一條JMP指令。以達(dá)到繞過(guò)ssdt_hook的目的。

?

//jmp結(jié)構(gòu) typedef struct _JMPCODE {BYTE E9;ULONGJMPADDR;//88881234=B }JMPCODE,*PJMPCODE//定義jmp結(jié)構(gòu) JMPCODE JCode; JCode.E9=0xE9; //jmp機(jī)器碼 JCode.JMPADDR=cur-old-5;//計(jì)算JMP 后面的數(shù)值 _asm { mov ebx,cur //取當(dāng)前地址lea ecx,Jcode //取結(jié)構(gòu)地址mov ax,byte ptr [ecx] Mov byte ptr[ebx],ax //寫(xiě)jmpmov eax,[ecx+1] //移動(dòng)指針mov [ebx+1],eax //寫(xiě)跳轉(zhuǎn) }

總結(jié)

以上是生活随笔為你收集整理的JMP指令转换公式推导的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。