Как я могу получить переносимые исполняемые свойства, такие как версия или описание, с помощью C ?

#portable-executable

Вопрос:

Я работал над приложением, которое способно анализировать данные портативного исполняемого файла, считывая всю информацию, такую как заголовок Dos, заголовки Nt, разделы и так далее. Я также хочу получить свойства PE, те, которые показаны на рисунке ниже, обведены желтым цветом:

введите описание изображения здесь

Я просмотрел весь Интернет и нашел только то, как редактировать их с помощью внешних инструментов, но я не нашел ничего, связанного с тем, как читать их с помощью кода C .

Есть какие-нибудь идеи о том, как это сделать? Большое спасибо!

Комментарии:

1. Это вопрос о двоичном формате PE-файла или просто о том, как написать программу на C ?

2. @MooingDuck Речь идет о написании программы на C , которая способна считывать такую информацию из PE-файла

3. Рядом с см. ряд функциональных групп GetFileVersionInfoExW docs.microsoft.com/en-us/windows/win32/api/winver/…

Ответ №1:

Это есть в VERSIONINFO ресурсе.

Вам нужно получить его из PE и проанализировать. Вы можете найти некоторую информацию о структуре этого ресурса в описании здесь:

Структура VS_VERSIONINFO