“Reciente” Phrack?!? Me alegra ver que todavía está en línea, pero eso salió hace unos 25 años.
Para entenderlo, debe convertirlo en lenguaje ensamblador y leerlo. En 1991, podría escribir “DEPURAR”, ingresar el hexadecimal y luego enumerarlo. Aún puede, pero ahora necesita DOSBox.
- ¿Debo construir una gran base en el desarrollo de backend antes de aprender Machine Learning y Deep Learning, ya que la mayoría de las arquitecturas de ML se basan en el backend?
- ¿Por qué soy bueno en cursos intensivos de programación, pero sigo reprobando en cursos de teoría de informática? ¿Estoy en condiciones de ser ingeniero de software?
- ¿Cuáles son las aplicaciones de las matemáticas en la programación?
- ¿Cuáles son las funciones más utilizadas en R?
- ¿Cuáles son los problemas en informática para los cuales se conoce con certeza la mejor complejidad computacional absoluta?
Ahora espera que le cuente cómo funciona, supongo.
“MOV DX, 0082” apunta el registro DX al búfer de la línea de comando de MSDOS, donde presumiblemente se ingresó el nombre deseado cuando se invocó el programa. El “POP DI” en 103 saca un parámetro de la pila, uno que el lanzador empuja allí. Creo que es la dirección del primer parámetro de línea de comando, pero no puedo encontrar mi libro de referencia de MSDOS para asegurarme. Lo que esté en esa dirección se XORed con “\” (5C), el primer carácter de un nombre de subdirectorio. El “39” se explicará más adelante, en este momento no hace nada importante. Luego, la instrucción SCASB se repite hasta que el carácter en ES: DI coincide con AL, que es 5C (barra invertida). El registro de puntero DI se vuelve a ajustar, luego se vuelve XOR – ya que esto es 5C en memoria siendo XOR con 5C en AL, el resultado es cero. La cadena en la memoria en [DI] ha terminado en cero.
Luego hacemos un INT 21: esta es la interrupción principal de MSDOS que hace cosas. Lo que hace depende del valor en AH, que es 39 (establecido en la dirección 104). Normalmente lo cargaríamos con 39 aquí mismo, pero el autor lo cargó al mismo tiempo que cargó AL con 5C para guardar un byte. Inteligente.
El código INT 21 39 es el comando “Crear subdirectorio”. Espera que DS: DX apunte a una cadena terminada en cero, que es el nuevo nombre del subdirectorio. DX se configuró al principio, DS se configuró para apuntar a alguna parte . Si desea seguir adelante, tendrá que encontrar una referencia de MSDOS que explique lo que sucede cuando escribe un nombre de programa con una variable de línea de comando, pero lo anterior debería llevarlo la mayor parte del camino.