[問題] int 0x03 (IA86)
int $3 的 op code 是 0xCC
但我用 0xCD 0x03 去跑的時候,在 OllyDbg 下正常,在 debug (16bit) 下就出問題了?
這讓我很疑惑,到底是 debug 的bug,還是跟 32-bit, 16-bit 有關?
附上 debug 的測試結果:
-
Microsoft Windows [???? 6.0.6000]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.
C:\>debug
-e 100
179E:0100 00.cd 00.03 00.b8 00.00 00.4c 00.cd 00.21
-u 100 105
179E:0100 CD03 INT 03
179E:0102 B8004C MOV AX,4C00
179E:0105 CD21 INT 21
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=179E ES=179E SS=179E CS=179E IP=0100 NV UP EI PL NZ NA PO NC
179E:0100 CD03 INT 03
-p
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=179E ES=179E SS=179E CS=179E IP=0101 NV UP EI PL NZ NA PO NC
179E:0101 03B8004C ADD DI,[BX+SI+4C00]
DS:4C00=0000
-
但是我用
int main() {
__asm(".byte 0xCD, 0x03");
return 0;
}
在 OllyDbg 下測試就正常…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.33.35
推
07/15 20:51, , 1F
07/15 20:51, 1F
→
07/15 20:59, , 2F
07/15 20:59, 2F
→
07/15 20:59, , 3F
07/15 20:59, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章
61
135