Subj : IOPL code with Watcom C
To : Vitus Jensen
From : Jonathan de Boyne Pollard
Date : Sat Dec 16 2000 08:32 am
VJ>>> mov eax,INB ; 0x000E0000
JdBP>> If that really *isn't* a call gate (double-check it) then I suspect
JdBP>> a linker problem. Dump the executable and look at the fixups for
JdBP>> the page containing that particular piece of code.
VJ> There is only one answer: how?
You picked the right tool, EXEHDR, anyway, so I won't bother answering that
question. (-:
VJ> Watcom debugger, expect memory: entering 0x000E:0000 tells me I'm at
VJ> INB+0 and the hex dump shows all the correct opcodes.
That would indicate that 0x000E is the actual code selector for that segment
rather than a call gate. So the next thing to find is the part of the LX file
that represents the above MOV instruction.
VJ> Now I need to check where the calls to INB are located? Inside page 4.
VJ> exehdr mmpdemo.exe /v:
VJ> page 4 type offset target
VJ> obj 4:0000 16:16 PTR 0033 object 1 offset 0000 alias
VJ> 16:16 PTR 005a object 1 offset 0028 alias
VJ> 16:16 PTR 0075 object 1 offset 0000 alias
VJ> 16:16 PTR 0099 object 1 offset 0028 alias
I'll have to double-check, but that doesn't look like a correct fixup.
� JdeBP �
--- FleetStreet 1.22 NR
* Origin: JdeBP's point, using Squish <yuk!> (2:257/609.3)