作者suhorng ( )
站内ASM
标题[问题] int 0x03 (IA86)
时间Thu Jul 15 20:42:54 2010
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
1F:推 loveflames:debug能debug 32位元的程式....? 07/15 20:51
2F:→ suhorng:我在16位元下测的 07/15 20:59
3F:→ suhorng:ollydbg是在32位元下测 07/15 20:59