Parser für binary / hex file gesucht

OP #1436238
Lesenswert?

Hallo,

ich bin auf der, bisher erfolglosen Suche nach einen Parser für Binary 
und/oder hex Dateien. Ich möchte gern Informationen aus diesen Dateien 
auslesen können, wie:
- Zuordungen der Funktionsnamen zu den entsprechenden Funktionsadressen
- Alignment
- ByteOrder
- Stack-Start-Adresse
- globale Variablen und deren Adresse

Hat jemand eventuell schon mal so ein Tool verwendet oder gesehen?

Vielen Dank, Gruß Thomas
Gast #1436264
Lesenswert?

Hallo Thomas,

in bin/hex Dateien ist in den meißten Fällen das nicht mehr enthalten 
was Du suchst. Die werdn nur zum programmieren der Controller oder 
Eeproms benötigt. Debug Informationen werden meißt in anderen Dateien 
untergabracht zB. beim GNU-C in der elf Datei. Der Keil Compilerlegt 
eine AOMF/OMF Datei an wo die Informatioen zu finden sind.

Was erschwerend hinzukommt ist das viele Compiler dies auf seine "Art 
und Weise" macht.

Für GNU-C gibt es ein Tool das Dir die Elf Datei im KLartext ausgibt.

Hans
Persönliche Seite #1436281
Lesenswert?

Ich dachte auch zuerst dass der OP einen Parser-Generator sucht, und 
wollte ihm rpcgen oder (schlimmer) einen ASN.1 compiler aufschwatzen.

Ich denke aber er sucht eher einen ELF File Parser, so wie readelf. Das 
ist bei den GCC tools dabei, und ist meistens <platform>-readelf 
genannt, z.B.: avr-readelf, m68k-readelf etc.

Probier ein
1
avr-readelf -a program.elf

Weiters sind objdump, objcopy, nm etc. interessant.
OP #1436366
Lesenswert?

vielen Dank für die Unterstützung

Ja, read-elf hilft mir weiter. Schade, dass die Informationen im bin und 
hex file nicht mehr vorhanden sind. Wahrscheinlich kann ich in diesem 
Fall die Symbole nur noch aus den Objektdateien entnehmen. Mit großer 
Wahrscheinlichkeit sind diese aber auch wieder von Compiler zu Compiler 
unterschiedlich und wenn überhaupt sichtbar. Genau deshalb wollte ich an 
einer Stelle ansetzen, wo mir ein Standard-Format wie bin oder hex eine 
einheitliche Basis liefert.
Moderator Persönliche Seite #1436381
Lesenswert?

binary und intel hex haben halt keinerlei Symbole mehr, sondern sie
bilden aus einer Objektdatei nur noch den reinen Inhalt ab.
Information, die nicht da ist, kannst du halt auch nicht darstellen.

ELF ist ein Standardformat.  binary ist gar kein "Format", sondern
einfach nur der Bytestrom des Inhalts, und intel hex ist lediglich
ein de-facto-Standard, für den erst nachträglich formale Spezifikationen
geschrieben worden sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren