2012-07-16 10 views
6

Estoy buscando una biblioteca que realice el desmontaje de un código binario.Biblioteca de desensamblaje utilizada por objdump

Encontré que libdisasm realiza exactamente la misma tarea que yo quiero. Sin embargo, he encontrado algunos enlaces que indican que libdisasm no funciona para ejecutables de 64 bits. Es correcto ?

Pero la salida de objdump para ejecutables de 64 bits es confiable (a mi leal saber y entender). Entonces, ¿objdump también usa una biblioteca similar para el desmontaje? Inicialmente, pensé que objdump usa libdisasm.

Respuesta

10

objdump utiliza libopcodes de binutils. Sin embargo, es bastante básico, ya que solo proporciona representación de texto y no contiene información estructurada sobre las instrucciones. Otras opciones:

+0

bien gracias. ¿Pero sabes si libdisasm admite 64 bits o no? –

+0

gracias por los enlaces - lecturas interesantes. –

1

Esto es sólo para aclarar una pregunta formulada por el cartel original en un comentario (No tengo suficientes puntos para comentar).

El proyecto libdisasm no se ha mantenido activamente en muchos años. No es compatible con el conjunto de instrucciones x86-64 (64 bits) ni con ninguna de las extensiones x86 (32 bits) posteriores a SSE3.

El proyecto opdis es el reemplazo de libdisasm. El autor de libdisasm escribió opdis para evitar las frecuentes actualizaciones necesarias para soportar los conjuntos de instrucciones de Intel y AMD que cambian constantemente. El desensamblaje del opcode real en opdis se maneja mediante códigos de barras de GNU binutils (el desensamblador utilizado por objdump), con opdis proporcionando metadatos de instrucción y funciones de desensamblaje de alto nivel.

Cuestiones relacionadas