作者ice0803 (SoFarSoGood)
看板ASM
標題[問題] x86 Instrution Pointer 問題
時間Tue Sep 4 18:09:12 2018
最近看mips32的處理器
它的program counter是每次增加4,去抓指令來解碼
但x86指令長度不定
Instruction Pointer(IP)是否也是每次增加4(假設32位元處理器)
然後在解碼的時候,看指令的長度,再去更新IP的位址?
例如
0x1000 抓了4 Byte的資料,發現指令長度只有1byte,即更新 IP 為 0x1001
0x1001 再抓4 Byte的資料,發現指令長度只有3byte,即更新 IP 為 0x1004
0x1004 ...
先謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.237.25
※ 文章網址: https://webptt.com/m.aspx?n=bbs/ASM/M.1536055755.A.A24.html
2F:→ b0920075: x86超奇怪...我的shellcode寫在別的數值後面也會被影響 09/05 22:33
3F:→ b0920075: 走鐘 09/05 22:33
4F:推 b0920075: 我記得我有附上stackoverflow網址啊QQ,不過google x86 09/06 09:27
5F:→ b0920075: instruction variable length decode應該找的到 09/06 09:27
6F:→ b0920075: 幹jptt壞掉難怪我沒看到 09/06 09:27
7F:→ ice0803: 感謝你的關鍵字,我找到下面這篇說明 09/06 21:48
8F:→ ice0803: Instruction decoding when instructions are length-var 09/06 21:52
9F:→ ice0803: iable 09/06 21:53