home *** CD-ROM | disk | FTP | other *** search
/ PC Interdit / pc-interdit.iso / motpasse / protecte.asm < prev    next >
Assembly Source File  |  1994-10-28  |  2KB  |  89 lines

  1. .386p
  2.  
  3. .MODEL TPASCAL
  4. .DATA
  5.  
  6.  oldint3 dd ?
  7.  alter_interrupt3 dd ?
  8. .CODE
  9.  
  10. public protected_stopping
  11. protected_stopping proc pascal
  12.     pusha
  13.     cli                         ; désactive l'interruption
  14.     mov eax,cr0                 ; bascule dans le mode Protected
  15.     or eax,1
  16.     mov cr0,eax
  17.     jmp PROTECTION_ENABLED      ; supprime le pipe d'exécution
  18. PROTECTION_ENABLED:
  19.  
  20.     and al,0FEh                 ; bascule de nouveau dans le mode réel
  21.     mov cr0,eax                 ; ne pas relancer le CPU
  22.     jmp PROTECTION_DISABLED     ; supprime le pipe d'exécution
  23. PROTECTION_DISABLED:
  24.     sti                         ; reactive l'interruption
  25.     popa
  26.   ret
  27. protected_stopping endp
  28.  
  29. public Check_vector
  30. Check_vector proc pascal check : dword;
  31.   mov bx,0
  32.   mov es,bx
  33.   mov bx,18
  34.   mov eax,es:[bx]
  35.   mov oldint3,eax
  36.   mov eax,check
  37.   mov es:[bx],eax
  38.   ret
  39. Check_vector endp
  40.  
  41. public Vector_ok
  42. Vector_ok proc pascal check : dword;
  43.   mov bx,0
  44.   mov es,bx
  45.   mov bx,18
  46.   mov eax,es:[bx]
  47.   cmp eax,check
  48.   je  @check_ok
  49.   mov al,0
  50.   jmp @check_ende
  51. @check_ok:
  52.   mov al,1
  53. @check_ende:
  54.   ret
  55. Vector_ok endp
  56.  
  57. public restore_Checkvector
  58. restore_Checkvector proc pascal
  59.   mov bx,0
  60.   mov es,bx
  61.   mov bx,18
  62.   mov eax,oldint3
  63.   mov es:[bx],eax
  64.   ret
  65. restore_Checkvector endp
  66.  
  67. public Copy_int21_int3
  68. Copy_int21_int3 proc pascal
  69.   mov bx,0
  70.   mov es,bx
  71.   mov bx,18
  72.   mov eax,es:[bx]
  73.   mov alter_interrupt3,eax              ; sauver ancienne int3
  74.   mov bx,84                             ; charger Int 21 
  75.   mov eax,es:[bx]
  76.   mov bx,18                             ; enregistrer à int3 
  77.   mov es:[bx],eax
  78.   ret
  79. Copy_int21_int3 endp
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88. END
  89.