2010-05-29 6 views
0

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

ответ

4

Вы можете использовать nm, чтобы увидеть внутренние символы и objdump, чтобы разобрать. К примеру:

objdump -D a.out | less 

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

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

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

0

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