Структура исполняемого двоичного файла? - PullRequest
4 голосов
/ 26 февраля 2012

Возможно, я не спрашиваю об этом в правильном месте, но есть ли где-нибудь, где я могу исследовать, какова структура исполняемых двоичных файлов? Как в том, как организован код, где хранятся символы и т. Д.

Ответы [ 3 ]

9 голосов
/ 26 февраля 2012

Зависит от того, какая платформа вам интересна!

Windows использует двоичный формат PE .

В Linux используется ELF .

Mac OS (и iOS) используют Mach-O .

Некоторые старые системы UNIX используют a.out .

3 голосов
/ 26 февраля 2012

Структура двоичного файла определяется приложением, которое его создало.Например, код, который вы пишете на Java или C и записываете его в файл, может быть прочитан только кодом, который знает структуру того, как он был написан.

В случае исполняемых файлов существуютразличные виды, которые варьируются в зависимости от операционных систем.Например, чтобы проверить структуру файлов исполняемого файла и формата связывания (ELF), см. man elf: http://www.kernel.org/doc/man-pages/online/pages/man5/elf.5.html

0 голосов
/ 26 февраля 2012

Вы должны понимать, что такое файл ELF!Вот ваша отправная точка .

И эта статья аккуратно объясняет, как разбирать файлы ELF, используя readelf и objdump

...