calls to int 3d corrupt the stack

Sylvain Petreolle spetreolle at yahoo.fr
Sun Aug 17 09:11:53 CDT 2003


Seems we have all dword pointers on the stack.
This is the stack I have for the DOSVM_EmulateInterruptPM call, 
Cs and Eip have been pushed on the stack. 0x36f and 0xc are the
location the location of the call to the interrupt.

Wine-dbg>info stack
Stack dump:
0x41a60948 (_end+0x10bff4):  4008de8b 41a60a44 0000003d 00000000
0x41a60958 (_end+0x10c004):  40016720 00010206 0000036f 0000000c
...
Wine-dbg>disass 0x36f:0xc
0x036f:0x0000000c: int  $0x3d
0x036f:0x0000000e: movw 0xfffffffc(%bp),%ax

> 	I'm using a word because I am trying to split the segment word and
> the offset word.  My references show the stack, in real mode, as 4
bytes with
> two being the offset and two being the segment.  The whole problem
results from
> trying to alter this return address in real mode where I have to
modify the
> address as two parts.
> 	Maybe there is a difference under wine.  
> 	God Bless,
> 		--Robert 'Admiral' Coeyman


=====
Sylvain Petreolle (spetreolle_at_users_dot_sourceforge_dot_net) 
ICQ #170597259

alias upsf='false ; while [ $? -ne 0 ] ; do cvs update -APd ; done 2>&1 |tee cvslog'

"What if tomorrow the War could be over ?" Morpheus, in "Reloaded".

___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com



More information about the wine-devel mailing list