Отладочная информация в PE
От: Алексей Мартынов Россия  
Дата: 14.11.06 09:02
Оценка:
Добрый день.

Стоит непростая задача заменить имя PDB-файла в собранном модуле.
На первый взгляд, все относительной просто, при использовании ImageHelp:
1. MapAndLoad
2. находим Debug Directory в Optional Headers (7 элемент).
3. Находим запись с IMAGE_DEBUG_TYPE_CODEVIEW, где расположена сигнатура "RSDS" и имя файла.

Но есть проблема. Если новое имя файла меньше по длине старого, то никаких проблем нет. А если оно больше? то как определить, сколько еще байт за именем текущего PDB-файла можно использовать?

Вариант "полностью разобрать PE-файл, исправить и собрать заново" лучше не предлагать, так как соответствие отладочных символов в PDB трудно гарантировать.

Alexey Martynov
Алексей Мартынов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.