home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Interdit
/
pc-interdit.iso
/
motpasse
/
protecte.asm
< prev
next >
Wrap
Assembly Source File
|
1994-10-28
|
2KB
|
89 lines
.386p
.MODEL TPASCAL
.DATA
oldint3 dd ?
alter_interrupt3 dd ?
.CODE
public protected_stopping
protected_stopping proc pascal
pusha
cli ; désactive l'interruption
mov eax,cr0 ; bascule dans le mode Protected
or eax,1
mov cr0,eax
jmp PROTECTION_ENABLED ; supprime le pipe d'exécution
PROTECTION_ENABLED:
and al,0FEh ; bascule de nouveau dans le mode réel
mov cr0,eax ; ne pas relancer le CPU
jmp PROTECTION_DISABLED ; supprime le pipe d'exécution
PROTECTION_DISABLED:
sti ; reactive l'interruption
popa
ret
protected_stopping endp
public Check_vector
Check_vector proc pascal check : dword;
mov bx,0
mov es,bx
mov bx,18
mov eax,es:[bx]
mov oldint3,eax
mov eax,check
mov es:[bx],eax
ret
Check_vector endp
public Vector_ok
Vector_ok proc pascal check : dword;
mov bx,0
mov es,bx
mov bx,18
mov eax,es:[bx]
cmp eax,check
je @check_ok
mov al,0
jmp @check_ende
@check_ok:
mov al,1
@check_ende:
ret
Vector_ok endp
public restore_Checkvector
restore_Checkvector proc pascal
mov bx,0
mov es,bx
mov bx,18
mov eax,oldint3
mov es:[bx],eax
ret
restore_Checkvector endp
public Copy_int21_int3
Copy_int21_int3 proc pascal
mov bx,0
mov es,bx
mov bx,18
mov eax,es:[bx]
mov alter_interrupt3,eax ; sauver ancienne int3
mov bx,84 ; charger Int 21
mov eax,es:[bx]
mov bx,18 ; enregistrer à int3
mov es:[bx],eax
ret
Copy_int21_int3 endp
END