Ich versuche, den korrekten Offset zum Abschnittsnamen zu erhalten, indem ich auf das Element sh_name
einer Elf-Datei zugreife, aber es gibt mir immer null oder null ...
Ich soll nur mmap()
und die elf.h
- keine Hilfsfunktionen
Also tat ich:
%Vor%aber wenn ich das tue:
%Vor%es gibt mir immer 0 ... Was mache ich falsch?
Wenn ich
printf("name offset = %d\n", (section->sh_name));
mache, gibt es mir immer 0 ... was mache ich falsch?
Sie machen nichts falsch.
Das sh_name
ist kein Zeiger, es ist ein Offset in .shstrtab
Abschnitt, der den tatsächlichen Abschnittsnamen enthält.
Sie finden den Abschnitt .shstrtab
von header->e_shstrndx
.
Aktualisierung:
Soll der Offset nicht als Int ausgegeben werden?
Es druckt 0
. Was hat dich glauben lassen, dass 0
kein Int ist?
aber drucke ich den Namen?
Vielleicht wird dieses Beispiel erklären?
%Vor%