Hi All,

I'm needing to use the Backdoor Command - Execute SoftICE command - as documented by Ralf Brown in his famous Interrupt List. Specifically, I desire to remotely call 'XRSET' to reset the internal SI backtrace buffer pointer.

The command is documented as follows:

AX = 0911h
SI = magic value 4647h
DI = magic value 4A4Dh
DS:DX -> ASCIZ command string (max 100 bytes, 0Dh, OK)
int 3

First, my ASM experience is so far limited to Win32 bit using MASM so I have a couple of questions about this code which appears to be 16 bit.

The first problem is with the pointer to the command string DS:DX, which I can't specify using a regular 32 bit offset. As I understand it, Win32 uses a flat memory model and one does not usually modify the DS data segment register. Is there a way to do this in a 32 bit .exe ? Or will I need to create a separate 16 bit .exe for the special purpose of calling this SI backdoor command and then execute it from my main win32 program ? Somehow, this latter option seems a bit unelegant... but if worse comes to worse:confused: ...

Though not my first choice, I have actually attempted to write it as a DOS .exe and here goes the second problem... This problem is with the syntax for the ASCIZ command string itself... The 0Dh makes sense but wtf does the OK stand for ? I declared it as:

SiCommand db "XRSET",0Dh

And it doesn't work. Which brings me to my next question...

These commands were documented in Ralf Brown's interrupt list specifically for SoftICE 2.5 and I am using version 4.5. Does anyone know if these commands have changed between versions and if there is an updated list somewhere ?

Lastly, a little pecularity... I can't get SoftICE to break on my bpint 3 when I'm testing my code ??? I also remember reading somewhere that its not possible to hook the int 3 with winice loaded... Any info on that ?

Anyone that can shed even a little insight on one of the questions will have my full gratitude and appreciation :)

Thanks In Advance,

:) :) :)
Posted on 2001-09-04 11:53:40 by Unregistered
Hi Clandestiny..
I've had mixed success playing with SoftIce command interpretation via interrupts.
I could make them work on some X version (don't remember which one it was) and now i have some problems with earlier versions (3.2x).
Anyway, this attachment will surely shed some light.
Hope it helps !

Ah...if i'm not wrong DS:DX can be replaced by EDX. So the ptr to the string should be loaded in EDX.

Posted on 2001-09-04 12:39:09 by latigo