Какие средства просмотра COFF (объектный файл Windows .obj) доступны?

Я знаю только о 2:

3 ответа

Решение

Существует DbgHelp, но он больше ориентирован на PE-файл, чем на объектный файл. И его предполагается использовать как API, а не как инструмент.

сам формат COFF возник в Unix http://en.wikipedia.org/wiki/COFF хотя Microsoft несколько расширила формат, и Unix, похоже, отказался от этого формата в пользу ELF. Но вы можете найти некоторые полезные инструменты в мире Unix, например, этот инструмент дампа от SCO http://docsrv.sco.com:507/en/man/html.CP/dump.CP.html

Просто преобразуйте формат COFF в ELF и используйте программу просмотра ELF:

objcopy.exe --input-target=pe-i386 --output-target=elf32-i386 somefile.o somefile.elf

Например, в Python вы можете использовать эту реализацию с одним файлом, которая зависит только от модуля struct: http://www.tinyos.net/tinyos-2.1.0/tools/platforms/msp430/pybsl/elf.py

Хм, странно, что эта опция не упоминалась, но Binutils , созданные с поддержкой COFF и вашей целевой архитектуры, вполне способны показать вам содержимое файла COFF (и были в то время, когда вы просили).

Сюда входят такие инструменты, какnm,objdumpи -- в зависимости от того, что вы пытаетесь -- такжеstrip,objcopy,ld.

Если вам нужно много деталей , llvm-readobjможет быть ближе всего к тому, что вы ищете, он очень подробный и в то же время описательный; по крайней мере, если у вас есть приблизительное представление о том, что находится в файле COFF.

С другой стороны, LLVM также предоставляет клоны инструментов из Binutils, но с префиксомllvm-. Так что, скорее всего, вы найдетеllvm-objdump,llvm-objcopy,llvm-strip,llvm-nmи т. д.

С современными версиями Visual Studio (начиная с VS2019, IIRC) вы можете установить полную цепочку инструментов Clang/LLVM из установщика Visual Studio, который содержит эти инструменты — в противном случае его также можно найти предварительно упакованным на веб-сайте проекта Clang/ LLVM .

Binutils и LLVM также отлично справляются с.libформат файла, создаваемый менеджером библиотек (lib.exe);arи 7-Zip можно использовать для их распаковки. Если вам нужны определенные расширенные функции для управления объектными файлами или библиотеками, вы можете взглянуть на objconv.

Почетное упоминание: некоторые шестнадцатеричные редакторы, такие как ImHex , также имеют возможность отображать более структурированное представление файлов COFF.

Другие вопросы по тегам