Piszę uproszczoną wersję Readelu Linuxa.

Chcę wydrukować informacje o sekcji, więc potrzebuję nazwisk sekcji. W strukturze ELF64_SHDR, zmienna sh_name wskazuje tylko do indeksu w Shstrtabie. Ale to nie wydaje się być indeksem w nagłówku Shstrtabie. Jest to indeks do swoich powiązanych danych. Zastanawiam się, jak tam dotrzeć, ponieważ nagłówek Elf wskazuje tylko na nagłówek sekcji Shstrtab, ale nie do jego powiązanych danych. Z tego, co widzę w hexdump pliku, struktura pliku jest następująca:

ELF HEADER 
phdr1
phdr2
segment1
segment2
shstrtab strings (i want this address, to make use of the sh_name indices)
shdr1
shdr2
shdr3 (this is the shstrtab section)

Czy myślę o tym? Czy ktoś może mi poprowadzić w dotarciu do nazw sekcji?

0
Wigglepee 2 grudzień 2019, 17:13

1 odpowiedź

Najlepsza odpowiedź

Po prostu znalazłem rozwiązanie!

Aby dostać się do powiązanych danych sekcji po prostu użyj sh_offset w jego elf64_SDR struktury. Jeśli dodasz sh_offset na adres początkowy pliku, otrzymasz bezpośrednio do danych sekcji.

0
Wigglepee 2 grudzień 2019, 17:30