Nick007J/vmk_spring2017

★ 0Forks 0C++GitHub ↗Compare

README

"# vmk_spring2017"

Задача по курсу "Методы исследования программного обеспечени":

Необходимо выполнить разбор файла и написать в какой секции располагается точка входа. Вывод должен быть в следующем формате

Entry point (<значение точки входа>)

In section <индекс секции>, <название секции>

Offset in section <смещение относительно начала секции>, <смещение в процентах> %

Где смещение в процентах вычисляется относительно размера секции. Например, если секция имеет размер 1000, а точка входа располагается по смещению 400 в ней, то необходимо вывести 40 %.

Все используемые структуры можно посмотреть в заголовочном файле WinNT.h (он уже подключен, так как указан в Windows.h). Например вам могут потребоваться следующие структуры: IMAGE_DOS_HEADER заголовок, который используется в системе DOS (сейчас вам в нем потребуется только поле e_lfanew (что оно означает?) IMAGE_NT_HEADERS заголовок нового формата исполняемого файла (PE), используемого в Windows NT IMAGE_FILE_HEADER один из двух заголовков, из которых состоит IMAGE_NT_HEADER, содержит NumberOfSections IMAGE_OPTIONAL_HEADER второй заголовок IMAGE_NT_HEADER, содержит важные для нас поля ImageBase и AddressOfEntryPoint IMAGE_SECTION_HEADER заголовок секции, в нем содержится название, размер и расположение секции

Не забывайте проверять такие поля как сигнатуры файлов (ведь надо убедиться, что разбираем собственно исполняемый файл)

Contributors

Nick007J

Issues