2010-07-08 16 views
6

Muchos de ustedes recordarán el antiguo programa DOS - depuración. Aunque anticuado en muchos aspectos, una de las cosas agradables era que uno podía encontrar fácilmente la secuencia de bytes para una instrucción dada sin tener que seguir los pasos de escribir un programa, compilar, desensamblar, examinar el contenido del archivo, ... .. Ingrese la instrucción, luego vacíe la dirección de la instrucción. 'depurar' lamentablemente no hace instrucciones de 32 bits.Programa similar a la depuración de DOS para ensamblaje x86 de 32 bits

¿Alguien sabe de una herramienta que hace algo similar para las instrucciones de 32 bits x86? No quiero pasar por todo el proceso de compilación; Solo necesito poder ingresar un par de instrucciones y hacer que escuche la duración de las instrucciones y su secuencia de bytes.

+0

¡Pregunta interesante! ¿Por qué no etiquetar "depuración"? – pmod

+0

No pensé en agregar la etiqueta 'depuración' hasta que lo mencionó. Gracias. – Sparky

Respuesta

4

DOS debug era un ensamblador interactiva, así como un depurador de Microsoft, al ingresar el código de ensamblado resultó que esa línea se convirtió inmediatamente en código de máquina, que es lo que usted desechó.

Así que todo lo que necesita es automatizar su ensamblador favorito con un script o archivo por lotes.

Aquí es una función fiesta que se me ocurrió en un minuto o dos utilizando el popular nasm ensamblador:

opcode() { 
    echo $* > tmp.S && nasm tmp.S -o tmp.o && od -x tmp.o 
    rm -f tmp.o tmp.S 
} 

tarda menos de un segundo. La invocación se ve así:

$ opcode mov eax, [ebx] 
0000000 6667 038b 
0000004 
$ opcode fadd st0,st1 
0000000 c1d8 
0000002 

No es brillante, pero puede modificar la línea de comandos para obtener un mejor resultado. Esta idea debería funcionar con cualquier ensamblador de línea de comandos siempre que le diga que use un formato de salida binario simple.

+0

¡Gracias! ¡Rock! – Sparky

1

Hay algunos depuradores de línea de comandos simples de 32 bits que se pueden encontrar. Según su descripción, OllyDbg podría satisfacer sus necesidades. Al menos algunas versiones de la Debugging Tools for Windows incluyen uno llamado CDB, siglas de depurador de comandos (aunque no lo he verificado que la versión vinculada lo incluye ...)

+0

Interesante. Todavía no estoy seguro si se adapta a mis propósitos, pero todavía estoy jugando con eso. Gracias por la sugerencia. – Sparky

Cuestiones relacionadas