Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Если данная сигнатура не равна MZ, то файл не загрузится.Во времена DOS работала так же сигнатура ZM. Не знаю, работает ли одна до сих пор.
Нет, винда не даст такое запустить. Проверил на ХР-10.
Точно такое было? Может речь о проверке сигнатуры на 'ZM' ? для оптимизации часто делают что-то вида CMP WORD PTR [Тут адрес дос хидера], 'ZM' (т.к. ворды в памяти хранятся перевернутыми).
Точно, вот, посмотрите: https://ru.wikipedia.org/wiki/MZ_(формат)
TimeDateStamp: WORD — число хранящее дату и время создания файла.
PointerToSymbolTable: DWORD — смещение (RAW) до таблицы символов, а SizeOfOptionalHeader — это размер данной таблицы. Данная таблица призвана служить для хранения отладочной информации, но отряд не заметил потери бойца с самого начала службы. Чаще всего это поле зачищается нулями.
SIzeOfOptionHeader: WORD — размер опционального заголовка (что следует сразу за текущим) В документации указано, что для объектного файла он устанавливается в 0…
Это происходит из-за размера выравнивания. 0x28 “не дотягивает” до 0x50 и как следствие, будет выгружена секция, а остальное пространство в размере 0x50-0x28 занулится. А если размер секции был бы больше размера выравнивания, то что? Например sectionSize = 0x78, а sectionAligment = 0x50, т.е. остался без изменений. В таком случае, секция занимала бы в памяти 0xA0 (0xA0 = 0x28 * 0x04) байт.
RVA >= sectionVitualAddress && RVA < ALIGN_UP(sectionVirtualSize, sectionAligment)
Внимание! Если вы взяли к примеру 2-ой элемент в таблице ординалов, это не значит 2 — это ординал для таблиц имён и адресов. Индексом является значение, хранящееся во втором элементе массива ординалов.
Количество значений в таблицах имён (NumberOfNames) и ординалов равны и не всегда совпадают с количеством элементов в таблице адресов (NumberOfFunctions).
DWORD NumberOfNames
The number of elements in the AddressOfNames array. This value seems always to be identical to the NumberOfFunctions field, and so is the number of exported functions.
To find all the information about the fourth function, you need to look up the fourth element in each array.
PE (Portable Executable): На странных берегах