Potrzebuję móc dodać dowolną sekcję do pliku ELF. Nie mogę używać kodu GPL w tym programie, więc BFD nie wchodzi w grę. Mogę użyć libelf/gelf do odczytu sekcji, ale dokumentacja jest dość rzadka dla tych i nie mogę wymyślić, jak dodać sekcję. Czy ktoś wie, jak to zrobić? Wolałbym nie pisać własnego kodu ELF.Dodawanie sekcji do pliku ELF
16
A
Odpowiedz
17
Istnieje kilka (prawdopodobnie) powiązanych odpowiedzi w this question about ELF file headers. Przyjęta odpowiedź została podana przy użyciu objcopy
, aby dodać sekcje do pliku ELF, a BSD bintools twierdzi, że ma licencję BSD na wykonanie objcopy
, która może odpowiadać Twoim potrzebom.
2
spojrzeć ELFsh, która jest obecnie częścią projektu ERESI http://www.eresi-project.org/ Mają dużo dokumentacji i chłodnych zastosowań swoich narzędzi.
1
nie próbował go (jeszcze), ale może sobie spojrzeć na elf_newscn funkcji w libelf
3
Poniższe linki mogą być przydatne:
- Tutorial „libelf by Example” ma rozdział o tworzeniu nowe obiekty ELF.
- W instrukcji obsługi elftoolchain project szczegółowo opisano interfejsy API
libelf
.
14
Wiem, że to stare pytanie, ale znalazłem działający przykład, który pomógł mi zastosować go do mojego projektu. (W przypadku, gdy ktoś potknie się w tej kwestii)
zaczerpnięte z Sourceware Mail Archiv
$ echo 'int main() { puts ("Hello world"); }' | gcc -x c - -c -o hello.o
$ echo "this is my special data" >mydata
$ objcopy --add-section .mydata=mydata \
--set-section-flags .mydata=noload,readonly hello.o hello2.o
$ gcc hello2.o -o hello
$ ./hello
Hello world
$ objdump -sj .mydata hello
Powiązane problemy
- 1. Jak wyodrębnić tylko zawartość sekcji ELF
- 2. Czy dołączanie dowolnych danych do pliku ELF narusza specyfikację ELF?
- 3. jaka część pliku ELF musi być załadowana do pamięci?
- 4. przeznaczenie sekcji .rel.dyn w bibliotekach systemu ELF Android
- 5. Gdzie jest tabela importu w pliku ELF?
- 6. Dodawanie sekcji, oddzielonych datami, do UITableView w Swift
- 7. Reading ELF nagłówek w C
- 8. Dodawanie metadanych do pliku PDF
- 9. Dodawanie pliku Settings.bundle do iPhone'a
- 10. tworzenie ELF delokalizacji - Zrozumienie relocs, symbole danych sekcji i jak one działają razem
- 11. Jak uzyskać adres początkowy i końcowy niestandardowej sekcji ELF w C (gcc)?
- 12. Utwórz segment tekstowy zapisywalny, ELF
- 13. UITableView Przewiń do sekcji
- 14. Dziwne binarne ELF
- 15. Dodawanie pliku CSS lub JS do MediaWiki?
- 16. Dodawanie pliku BOM do UTF-8
- 17. Dodawanie pliku JAR do biblioteki Java Eclipse
- 18. Dodawanie reCAPTCHA v2 do mojego pliku PHP
- 19. Dodawanie danych metadanych/identyfikatorów do pliku CSV?
- 20. Doxygen: Dodawanie niestandardowego linku w sekcji "Pokrewne strony"
- 21. Dodawanie pliku JavaScript
- 22. Pobieranie elementu sh_name w pliku nagłówka sekcji
- 23. parsowanie wielu sekcji pliku tekstowego C#
- 24. Jak znaleźć odsunięcie tabeli ciągów nagłówka sekcji pliku elfa?
- 25. Czy gcc ma jakieś opcje dodawania informacji o wersji w pliku binarnym ELF?
- 26. UITableView dodawanie/usuwanie sekcji, gdy nie jest w trybie edycji?
- 27. Dodawanie atrybutów do pliku manifestu pliku jar przy użyciu Gradle
- 28. Usuwanie wpisu z sekcji DYNAMIC pliku elfa
- 29. Powielanie sekcji TEXTINCLUDE w pliku .rc
- 30. Wymuś linker GNU do wygenerowania 32-bitowych plików wykonywalnych ELF
To wygląda obiecująco. Dziękuję Ci – c4757p