Главная / Цифровая археология / Инструменты цифровой археологии / Описание файлов с отладочной информацией
Для более гибкого использования отладочная информация хранится отдельно от бинарных файлов. Файлы с отладочной информацией представляют собой текстовые файлы, информация в которых хранится в специальном формате.
Отладочная информация может формироваться ассемблером - для последующего использования в отладчике. Дизассемблер при формировании исходного текста также принимает во внимание содержимое указанного файла с отладочной информацией. Отладочная информация также может модифицироваться отладчиком, что очень удобно для реверс-инженеринга. Отладочную информацию можно также исправлять обычным текстовым редактором.
Формат файла с отладочной информацией может расширяться по мере развития функциональности программ, работающих с этими файлами.
При отладке можно использовать несколько файлов с отладочной информацией. Например один файл подгружается с отладочной информацией об отлаживаемой программе, а другой - о системном BIOS. Тогда проще будет понимать взаимодействие программой с системным программным обеспечением.
Информация в файле отладочной информации хранится построчно. Общий формат строки следующий:
<имя метки>:[адрес]<; строка комментария><; строка комментария>...
Адрес - обязательное поле. Имя метки и комментарии - необязательные параметры. Для одного адреса допускается несколько строк отладночной информации.
Если в строке отладочной информацией присутствует и название метки и комментарий, то комментарий будет расположен перед меткой вначале строки.
Если в строке с отладочной информацией присутствует только комментарий, то он будет располагаться справа от мнемоники, расположенной по данному адресу. Чтобы комментарий располагался перед мнемоникой вначале строки, необходимо начать его с двух символов "точка с запятой".
Чтобы комментарий разделить на несколько строк, необходимо в месте переноса на следующую строку поставить символ "точка с запятой". Таким образом формируются многострочные комментарии.
Если в поле комментария после точки с запятой никаких символов нет, то перед указанным адресом при формировании исходного текста может подставляться пустая строка.
В разных приложениях стиль формирования исходного текста на основании данных в отладочной информации может отличаться.
label:2000; This Subroutine draws a characterможет выглядеть как:
;This subroutine draws a character label: PUSH Bдалее
label:2000; Some comment :2000; One more commentможет выглядеть так:
;Some comment label: JMP qweqwe ; One more commentпример многострочного комментария:
:2000; At this point; we gonna do cool stuffБудет выглядеть примерно так:
PUSH B ; At this point ; we gonna do cool stuff
Необходимо расширить формат файла, чтобы обозначать типизацию данных. Например, хранение данных в виде байтов, слов, строк.
Если какой-то код вызывается косвенно, то дизассемблеру необходимо подсказывать, что данные, начинающиеся с какого-то адреса необходимо продизассемблировать как код.