Ich weiß nicht, warum Ihr previous question auf Eis gelegt wurde, schien es mir vollkommen gültig. Vielleicht fallen die java Tag, weil die meisten Java-Programmierer einfach nicht wissen, wie eine vernünftige Frage über ELF aussieht?
Wie auch immer, hier gehen wir wieder:
Sie benötigen die ELF specification und die psABI Ergänzung des jeweiligen Ziel (von denen einige here gesammelt werden, lesen Es ist auch hilfreich, um die Definitionen in der /usr/include/elf.h
Header-Datei zu überprüfen auf. ein ELF-System.
im allgemeinen ist es ziemlich einfach den Beginn eines benannten Abschnitt zu finden. Sie müssen den Abschnitt Kopftabelle mit Hilfe der Elf-Header (Felder e_shoff
, e_shentsize
, e_shnum
) und zu analysieren, sie lokalisieren (Das Eingangslayout lautet Elf32_Sdhr
oder Elf64_Shdr
). Um den Namen des Abschnitts zu finden, müssen Sie den Eintrag der Abschnittsüberschriftstabelle mit der Nummer e_shstrndx
betrachten, der den Tabelleneintrag mit der Zeichenfolgentabelle angibt. Das Feld in der Abschnittsüberschrift ist nur ein Offset in diesem Abschnitt, und Sie müssen die nullterminierte Zeichenfolge an dieser Position mit .text
vergleichen.
Eclipse-CDT hat einen ELF-Parser:
Vielleicht ist das eine Option, wenn Sie den tatsächlichen ELF bei der Umsetzung des Parsing interessiert sind.
Wunderbar! Ich bin mit den skizzierten Schritten vorgegangen und habe ein ganz klares Verständnis - ich kann dir nicht genug danken! Alles Gute. – cokeburger