Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.asm.x86    |    Ahh, the lost art of x86 assembly    |    4,675 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 3,614 of 4,675    |
|    Rick C. Hodgin to R.Wieser    |
|    Re: Indirect INT calling    |
|    27 Oct 18 06:35:22    |
      From: rick.c.hodgin@gmail.com              On Saturday, October 27, 2018 at 8:55:25 AM UTC-4, R.Wieser wrote:       > I guess I could push the flags, clear some bitflags in it and than jump       > indirect (thru the INT vector table at page zero) to the correct address,       > but I'm wondering if there isn't maybe an easier(?), more direct way of       > doing it.              The standard method for calling an interrupt vector is to PUSHF/D,       then do a far call. This puts the three parameters the interrupt       vector expects to see on the stack when it issues IRET.              You could issue an interrupt redirect, where you are intercepting       INT Nn, and you choose some unused vector and point it to the       original vector you intercept, that way all calls to INT Nn go       through you, and then you issue the re-direct to INT Zz that you       setup, which goes to the real vector. Then the called API code       issues IRET like normal, then you issue IRET like normal.              It's a little less efficient on the stack, but it's pretty clean       and straight-forward.              --       Rick C. Hodgin              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca