TEIMSI
Plataforma del desarrollador de textos programados
Inicio|Utilidades|Foro|Documentación

Indice de contenido -> Capítulo 18 - Depuración de código en ensamblador


Se ha encontrado recomendable el depurador de programas "Ollydbg", a continuación se explicará básicamente como utilizarlo; su versión 1.10 ha mostrado estabilidad y puede descargarse de Internet (ver capítulo Enlaces).

Luego de abrir el depurador y el archivo .exe o .dll a depurar las siguientes teclas de comandos son de utilidad:

Tecla "F2" Crea un punto de depuración o "breakpoint" en la instrucción seleccionada.

Tecla "F8" Procede la depuración realizando un sólo paso que omite la depuración de instrucciones de procedimientos.

Tecla "F7" Procede la depuración realizando un sólo paso que realiza la depuración de instrucciones de procedimientos.

Tecla "F9" Corre el programa hasta que encuentre un "breakpoint" si existe alguno.

Tecla "Ctrl+F9" Corre el programa hasta que encuentre una instrucción "ret" o de regreso de un procedimiento.


A continuación se mostrará una manera de depurar una parte de un programa, supongamos que tenemos el siguiente programa en TEIMSI:


		var num1=1.3, num2=4.5, resultado_doble=0.0
		_direct{

			mov eax, 074747474h

			fld qword [num1+reg.vo]
			fmul qword [num2+reg.vo]

			fld qword [num1+reg.vo]
			fdiv qword [num2+reg.vo]

			faddp st1, st
			fsqrt

			fstp qword [resultado_doble+reg.vo]
		}

		alert(resultado_doble)


Lo que ese hace el código en el bloque "direct" es equivalente a la instrucción: "resultado_doble = sqrt(num1*num2 + num1/num2)".

La instrucción "mov eax, 074747474h" parece redundante pero sirve para localizar el código a depurar desde Ollydbg. Luego abrimos el programa compilado con el depurador y copiamos todo el código del módulo principal apretando la tecla "Inicio", luego la combinación "Shift" + "Fin", y luego hacemos clic derecho para elegir el menú "Copy" y "to Clipboard". Ahora se puede abrir el editor de TEIMSI (en la pantalla inicial apretar la tecla "Esc") y pegar lo copiado desde el depurador, entonces apretar la combinación de teclas "Ctrl + R" y buscar por la cadena "74747474", automáticamente vemos la dirección en memoria de la instrucción y buscamos dicha dirección en el depurador. Luego colocamos allí un punto de quiebre con la tecla "F2" y ejecutamos el programa con la tecla "F9", el depurador se detendrá en dicha instrucción y apretamos sucesivamente la tecla "F8" para ver como varían los registros del "FPU" (ver en la derecha del depurador).

Existen varios otros depuradores de código así como des-ensambladores en Internet, uno muy conocido es el llamado "IDA Disassembler".



Volver arriba