crUsAdEr
March 23rd, 2004, 02:43
Hi folks,
Ok i hope someone could clarify all this confusion for me... I know i have to read the Intel Manual volume 3, and indeed i did but i guess somehow the truth evades me... i am still confused over all this int/trap handler stuff... The only difference i can understand is that trap/interrupt have different values pushed on stack before the handler is caller... so what is what and when which one occurs?
The recent discussion about rootkit detection mentioned it but to be honest i was kind of lost, when is interrupt handler called and when is trap handler called? I understand our IDT entries will specify whether a handler for specific int is interrupt handler or trap handler... using softice i can almost never see a Trap handler, only mainly int32 (which is interrupt handler i presume)... hence the confusion...
Let's say we have an int 3 instruction
int 3
this will trigger out interrupt handler? which in turn call the appropriate seh handler?
Or if we set T flag on EFlags for tracing, this will call int1 handler? How different is it from the INT 01 instruction and ICEBP... i know ICEBP was asked about by Kayaker long ago and discussed to a fair details, but how is ICEBP "eaten up" (eval's words) by our ring-3 debugger but not seh handler?
Hope you guys can understand me, cos honestly i am quite confused, hence the "confused question".
Thanks,
Ok i hope someone could clarify all this confusion for me... I know i have to read the Intel Manual volume 3, and indeed i did but i guess somehow the truth evades me... i am still confused over all this int/trap handler stuff... The only difference i can understand is that trap/interrupt have different values pushed on stack before the handler is caller... so what is what and when which one occurs?
The recent discussion about rootkit detection mentioned it but to be honest i was kind of lost, when is interrupt handler called and when is trap handler called? I understand our IDT entries will specify whether a handler for specific int is interrupt handler or trap handler... using softice i can almost never see a Trap handler, only mainly int32 (which is interrupt handler i presume)... hence the confusion...
Let's say we have an int 3 instruction
int 3
this will trigger out interrupt handler? which in turn call the appropriate seh handler?
Or if we set T flag on EFlags for tracing, this will call int1 handler? How different is it from the INT 01 instruction and ICEBP... i know ICEBP was asked about by Kayaker long ago and discussed to a fair details, but how is ICEBP "eaten up" (eval's words) by our ring-3 debugger but not seh handler?
Hope you guys can understand me, cos honestly i am quite confused, hence the "confused question".
Thanks,