как посмотреть содержимое файла .out? - PullRequest
0 голосов
/ 29 мая 2010

Исполняемый файл с ++ будет содержать компоновщики, модули и другие, я хотел бы изучить его содержимое, я использую Linux, как я могу просмотреть содержимое a.out? какую команду следует использовать для просмотра a.out, текстовые редакторы не будут отображать содержимое ......

Ответы [ 2 ]

5 голосов
/ 29 мая 2010

Вы можете использовать nm для просмотра внутренних символов и objdump для разборки. Например:

objdump -D a.out | less

Обратите внимание, однако, что во время окончательного связывания объектных файлов с исполняемым файлом многие символы и внутренние данные удаляются, поэтому вы не сможете понять структуру, как это было бы с объектными файлами.

Если вы хотите редактировать и изменять исполняемый файл, я предлагаю вам использовать редактор hte, который может выступать в качестве дизассемблера для исполняемых файлов x86. Если вы пользователь Debian / Ubuntu, имя пакета будет «ht» (не «hte»).

Также я написал маленькую библиотеку для разборки эльфов , которая все еще не завершена, но довольно забавна. Однако вы можете найти другие (более полные и, вероятно, лучшие) реализации!

0 голосов
/ 29 мая 2010

Используя команду nm, вы можете проверить двоичный файл и посмотреть, какие символы определены. Если вы хотите увидеть реальный код, который использовался для создания двоичного файла, вам понадобится декомпилятор, который сможет лишь частично восстановить исходный код, поскольку части по своей природе теряются во время компиляции.

...