Формат файла .NET – внутреннее устройство сигнатур (часть 1)
ОГЛАВЛЕНИЕ
Полное описание сигнатур, входящих в состав формата файла .NET.
• Загрузить бинарные DLLпримеров программ - signatures_binary.zip - 16.40 Кб
• Загрузить исходники примеров программ - signatures_source.zip - 5.69 Кб
Оглавление
- 1. Введение
- 2. Чтотакоесигнатуры?
- 3. Начало работы
- 3.1 Проводник CFF
- 3.2 Порядок следования байтов
- 3.3 Сжатое целое
- 3.4 Константы
- 4. Сигнатуры
- 4.1 FieldSig
- 4.2 PropertySig
- 4.3 MethodDefSig
- 4.4 MethodRefSig
- 4.5 StandAloneMethodSig
Введение
1. Введение
Данная статья, состоящая из двух частей, охватывает сигнатуры, являющиеся второй важнейшей частью файла .NET после метаданных, о которых Дэниел Пистелли написал прекрасную статью, расположенную здесь. Настоятельно рекомендую прочитать эту статью перед тем, как двигаться вперед, кроме того, вы можете прочитать Подробное рассмотрение формата портативного исполняемого файла Win32 в журнале MSDN, описывающее формат файлов PE, образующий основу для метаданных .NET, сигнатур и кода промежуточного языка (IL). Безусловно, почти все можно найти в спецификации метаданных разбиения II, но, как водится, спецификации жертвуют читабельностью ради полноты, что стало другой причиной написания данной статьи.
2. Что такое сигнатуры?
Сигнатуры хранят данные, которые нельзя компактно сохранить в таблицах метаданных, например, типы параметров, аргументы, подаваемые в настраиваемые атрибуты, дескрипторы упорядочения(сортировки, формирования), и т.д. Хранение такой информации, как типы данных, в таблицах, может привести к чрезмерной фрагментации данных, неразборчивости и снизить производительность, поэтому специалисты CLI/CLR придумали сигнатуры, позволяющие хранить ранее упомянутый тип данных в компактной и хорошей форме, в следующих разделах вы ясно увидите, почему они так важны.