Analizando binarios MIPS:¿Existe una biblioteca de Python para analizar datos binarios?

StackOverflow https://stackoverflow.com/questions/45954

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy trabajando en una utilidad que necesita resolver direcciones hexadecimales en un nombre de función simbólica y un número de línea de código fuente dentro de un binario.La utilidad se ejecutará en Linux en x86, aunque los binarios que analiza serán para un sistema integrado basado en MIPS.Los binarios MIPS están en formato ELF y utilizan DWARF para la información de depuración simbólica.

Actualmente estoy planeando bifurcar objdump, pasando una lista de direcciones hexadecimales y analizando la salida para obtener nombres de funciones y números de línea de origen.He compilado un objdump compatible con binarios MIPS y está funcionando.

Preferiría tener un paquete que me permita buscar cosas de forma nativa desde el código Python sin bifurcar otro proceso.No puedo encontrar ninguna mención de libdwarf, libelf o libbfd en python.org, ni ninguna mención de python en dwarfstd.org.

¿Hay algún módulo adecuado disponible en alguna parte?

¿Fue útil?

Solución

por favor, compruebe herramientas - una nueva biblioteca pura de Python destinada a hacer esto.

Otros consejos

Quizás te interese la biblioteca DWARF de herramientas pydev:

>>> from bintools.dwarf import DWARF
>>> dwarf = DWARF('test/test')
>>> dwarf.get_loc_by_addr(0x8048475)
('/home/emilmont/Workspace/dbg/test/main.c', 36, 0)

deberías dar Construir un intento.Es muy útil analizar datos binarios en objetos de Python.

Incluso hay un ejemplo para el ELF32 formato de archivo.

No conozco ninguno, pero si todo lo demás falla, podrías usar tipos de c para utilizar directamente libdwarf, libelf o libbfd.

He estado desarrollando un analizador DWARF usando Construir.Actualmente es bastante complicado y el análisis es lento.Pero pensé que al menos debería hacértelo saber.Puede que se adapte a tus necesidades, con un poco de trabajo.

Tengo el código en Mercurial, alojado en bitbucket:

Construir Es una biblioteca muy interesante.DWARF es un formato complejo (como estoy descubriendo) y creo que lleva a Construct a sus límites.

hachior es otra biblioteca para analizar datos binarios

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top