Я пока не знаю, как это сделать, но есть статья на MSDN, в которой об этом говорится.
Переносимый исполняемый файл (т. Е. .exe
или .dll
) может иметь флаг присутствует в заголовке : ( архив )
IMAGE_FILE_DEBUG_STRIPPED
Отладочная информация была удалена и сохранена отдельно в отдельном хранилище в a.dbg file.
Это означает, что отладочная информация может быть в исполняемого файла и имеет опцию для удаления и сохраненияв отдельном файле .dbg
.
Из статьи MSDN Файлы DBG : ( архив )
Файлы DBGявляются файлами формата переносимых исполняемых файлов (PE), которые содержат отладочную информацию в формате Codeview для отладчика Visual Studio (и, возможно, других форматов, в зависимости от того, как была создана DBG).Если у вас нет исходного кода для определенного кода, такого как библиотеки или API-интерфейсы Windows, файлы DBG разрешают отладку.Файлы DBG также позволяют выполнять отладку OLE RPC.
Файлы DBG были заменены файлами PDB, которые теперь чаще используются для отладки.
Вы можете использовать утилиту REBASE.EXE дляудалить отладочную информацию из исполняемого файла формата PE и сохранить ее в файле DBG.Поле признака файла IMAGE_FILE_DEBUG_STRIPPED в заголовке PE-файла сообщает отладчику, что информация Codeview разбита на отдельный файл DBG.
В статье базы знаний, описывающей формат COFF, упоминается утилита dumpbin
, иэто /SYMBOLS
опция:
/SYMBOLS Setting this option causes DUMPBIN to display the COFF symbol
table. Symbol tables exist in all object files. A COFF symbol
table appears in an image file only if it is linked with
/DEBUG /DEBUGTYPE:COFF
Следующий шаг, и часть, которая ответит на наш вопрос:
- в каком формате встроена отладочная информация?
- где в PE хранится встроенная отладочная информация?(ресурс ?, раздел данных?)
Но ответ "это невозможно сделать" кажется неправильным.
См. также