Saya tahu ini adalah pertanyaan lama tetapi saya menemukan contoh kerja yang membantu saya menerapkannya pada proyek saya. (Jika ada yang menemukan pertanyaan ini)
diambil dari 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
lihat ELFsh, yang sekarang menjadi bagian dari proyek ERESIhttp://www.eresi-project.org/Mereka memiliki banyak dokumentasi dan penggunaan alat mereka yang keren.
Tautan berikut mungkin berguna:
- Tutorial "libelf by Example" memiliki bab tentang membuat objek ELF baru.
- Proyek elftoolchain memiliki halaman manual yang menjelaskan
libelf
API secara mendetail.
Ada beberapa (mungkin) jawaban terkait dalam pertanyaan ini tentang header file ELF. Jawaban yang diterima disebutkan menggunakan objcopy
untuk menambahkan bagian ke file ELF, dan bintools BSD mengklaim memiliki implementasi berlisensi BSD dari objcopy
yang mungkin sesuai dengan kebutuhan Anda.
Bagaimana cara saya mendapatkan/menggunakan LibUUID?
Mendefinisikan variabel dengan atau tanpa ekspor