Tôi cần có thể thêm một phần tùy ý vào một tập tin ELF. Tôi không thể sử dụng mã GPL trong chương trình này, do đó, BFD không nằm trong câu hỏi. Tôi có thể sử dụng libelf/gelf để đọc các phần, nhưng tài liệu là khá thưa thớt cho những điều này, và tôi không thể tìm ra cách thêm một phần. Có ai biết làm thế nào để làm điều này? Tôi không muốn viết mã ELF của riêng mình.Thêm phần vào tập tin ELF
Trả lời
Có một vài câu trả lời có liên quan (có thể) trong số this question about ELF file headers. Câu trả lời được chấp nhận được đề cập sử dụng objcopy
để thêm các phần vào tệp ELF và yêu cầu BSD bintools để có triển khai được cấp phép BSD là objcopy
có thể phù hợp với nhu cầu của bạn.
xem ELFsh, hiện là một phần của dự án ERESI http://www.eresi-project.org/ Chúng có rất nhiều tài liệu và sử dụng các công cụ tuyệt vời của chúng.
đã không thử nó (chưa) bản thân mình nhưng bạn có thể nhìn vào các chức năng elf_newscn trong libelf
Các liên kết sau có thể hữu ích:
- Các hướng dẫn "libelf by Example" có một chương về tạo các đối tượng ELF mới.
- elftoolchain project có các trang hướng dẫn mô tả chi tiết về API của
libelf
.
Tôi biết đây là một câu hỏi cũ nhưng tôi đã tìm thấy một ví dụ làm việc đã giúp tôi áp dụng nó cho dự án của mình. (Trong trường hợp bất cứ ai tình cờ gặp câu hỏi này)
lấy từ 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
- 1. Sửa đổi tập tin elf
- 2. Thêm phần mở rộng tập tin vào tập tin mở rộng ít hơn
- 3. Thêm CDATA vào một tập tin xml
- 4. Thêm tập tin vào Itunes com
- 5. Thêm một dòng mới vào tập tin?
- 6. Do .bss phần zero khởi tạo biến chiếm không gian trong tập tin elf?
- 7. Có phụ thêm dữ liệu tùy ý vào một tệp ELF vi phạm thông số ELF không?
- 8. Thêm printf vào phần bắt đầu của tất cả các chức năng trong một tập tin
- 9. Làm thế nào để thêm một cột từ một tập tin vào một tập tin
- 10. Gcc có bất kỳ tùy chọn nào để thêm thông tin phiên bản vào tệp nhị phân ELF không?
- 11. Điều kiện thêm hoặc nối thêm vào một tập tin trong tập lệnh linux
- 12. Thêm "đang sử dụng" vào tập tin ASPX hoặc ASCX
- 13. PHP Thêm chuỗi vào tập tin văn bản
- 14. iText - thêm nội dung vào tập tin PDF
- 15. Thêm tập tin vào một lần nhấp khi triển khai
- 16. Thêm văn bản vào một tập tin hình ảnh
- 17. StreamWriter viết lại các tập tin hoặc thêm vào file
- 18. Yêu cầu thêm đối số vào phần tử tập lệnh
- 19. Sử dụng phần ELF trong LKM
- 20. Công cụ sửa đổi đơn giản tệp tin elf?
- 21. python, viết Json vào tập tin
- 22. Mở một tập tin để gắn thêm
- 23. Tập lệnh Bash để thêm một số ngẫu nhiên vào tất cả các tập tin
- 24. Viết vào tập tin (Prolog)
- 25. Viết xmlwriter vào tập tin
- 26. Tệp ELF bằng tay
- 27. Đóng gói tệp vào tệp thực thi ELF
- 28. Tùy thuộc vào tập tin tự tạo
- 29. Nối vào một tập tin tại Gò
- 30. Thêm tập tin resx cột tùy chỉnh
này trông đầy hứa hẹn. Cảm ơn bạn – c4757p