Структура PE EXE (Microsoft Portable Executable), COM (Common Object File)

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
7,814
Реакции
6,593
Автор: dx

Данная статья является первым маленьким шажком на пути к написанию собственного несложного упаковщика. Знаний предстоит получить весьма большое количество, так что садитесь поудобнее, запасайтесь попкорном и готовьтесь к чтению. В статье большое количество отсылок к MSDN, поэтому не ленитесь открывать и изучать те структуры, на которые я ссылаюсь. Если будете следовать моим простым советам, обучение пойдет гораздо проще. Еще я бы рекомендовал скачать какой-нибудь PE-редактор, например, CFF Explorer и скормить ему реальный PE-файл, чтобы можно было вживую пробежаться по тем структурам, которые я здесь описываю.

PE-формат (Portable Executable) - это формат всех 32- и 64-разрядных исполняемых файлов в ОС Windows. Такой формат имеют файлы exe, dll, ocx, sys и т.д. (Разумеется, exe под DOS не в счет). В этой статье я расскажу самую базовую информацию об устройстве этого формата и его структурах. Практически самое полное и доступно изложенное описание можно найти в статье Криса Касперски, и она является обязательной к прочтению, если вы действительно решили во всем этом разобраться. Помните - никто не говорил, что будет легко, но у вас появился отличный шанс показать, что вы настоящие мужики с железными волосатыми яйцами, разобравшись во всем этом.

Продолжить чтение.
Часть 2. Немного практики: выводим информацию о секциях исполняемого файла
Часть 3 – Импорт

Еще литература по теме:

Структуры PE EXE.
Структуры PE EXE 2.
Инструментарий исследования PE EXE.
MSDN. Peering Inside the PE: A Tour of the Win32 Portable Executable File Format (Matt Pietrek)

В аттаче добавляю также официальное описание форматов PE EXE и COM,
а также краткую презентацию процесса загрузки EXE (в PDF) от Ange Albertini + перевод.
 

Вложения

  • pecoff_v83.zip
    179.6 KB · Просмотры: 9
  • PE_Load.zip
    470.5 KB · Просмотры: 7
Последнее редактирование:
Назад
Сверху Снизу