Библиотека дескрипторов двоичных файлов GNU Binutils - пример формата
Как в заголовке. Я попытался прочитать код ELF BFD, но это не легкое чтение. Я также пытался получить что-то из документации, но мне нужен пример, чтобы увидеть, как это работает. Может ли кто-нибудь показать мне более простой пример для меня, чтобы узнать, как определить исполняемый формат?
Изменить: Похоже, я не правильно сформулировал вопрос. Я не спрашиваю "как создать собственную спецификацию исполняемого формата?", Ни "где хорошая документация ELF?", Но "как я могу реализовать свой собственный исполняемый формат с использованием GNU BFD?".
3 ответа
Вы смотрели здесь http://sourceware.org/binutils/docs-2.21/bfd/index.html и здесь http://sourceware.org/binutils/binutils-porting-guide.txt?
Также изучается реализация MMO бэкэнда BFD, как упомянуто здесь http://sourceware.org/binutils/docs-2.21/bfd/mmo.html (источник: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/mmo.c?cvsroot=src) может быть менее сложным, чем начинать с ELF ...;-)
Я согласен, что документация BFD несколько отсутствует. Вот несколько лучших источников:
- Формат ELF
- Система V ABI (раздел 4)
Вот несколько читаемых введений:
И некоторые примеры, которые не используют libbfd:
COM-файл DOS является самым простым форматом.
Загрузите до 64 КБ менее 256 байт в сегменте:0100h, установите DS,ES,SS=seg, SP=FFFFh и перейдите к сегменту: 0100h