• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Soft Обзор PPEE, Инструмент для детального изучения файлов

Привет всем!
Решил я тут сделать краткий обзор инструмента
(Puppy). Этот инструмент предназначен для детального исследования файлов. В конце статьи будут полезные ссылки :)

Начнём с теории, а дальше исследуем 1 exe файл. Все параметры PE файла я описывать не буду. Только часто используемые. Они будут выделены жёлтым цветом. Их можно посмотреть перейдя ссылкам в конце обзора.

Описание с сайта разработчика

Puppy - это легкий, но мощный инструмент для статического исследования интересующих нас файлов. Также предоставляются два сопутствующих плагина.
FileInfo - чтобы запросить файл в известных хранилищах вредоносных программ и взять в один клик техническую информацию о файле, такую как его размер, энтропия, атрибуты, хэши, информация о версии и так далее.
YaraPlugin - чтобы проверить правила Yara (помогают нам идентифицировать и классифицировать образцы вредоносных программ) против открытого файла.

Рассмотрим exe файл

Dos Header - Заголовок MS DOS.


Screenshot_1.png


Rich Header - Структура, генерируемая компилятором. Содержит информацию о компиляторе. Если вам интересно почитать про этот заголовок, вот

Screenshot_2.png


NT Header - Содержит заголовок PE файла.

Screenshot_3.png


File Header - заголовок исследуемого файла.

Screenshot_4.png


PointerToSymbolTable - смещение до таблицы с символами.
NumberOfSymbols - количество символов в таблице символов.
Characteristic - характеристика файла.
NumberOfSections - количество секций в файле.

Optional Header - опциональный заголовок. Такие заголовки находятся в форматах .exe, .dll, но не в объектных файлах .obj.


Screenshot_5.png


Magic - по этому полю можно определить для какой архитектуры PE программа. PE32 (x86) PE32+ (x64). Особенность PE32+: все поля, содержащие виртуальный адрес имеют размер qword = 64 bit.
SizeOfCode - размер секции кода.
SizeOfInitialezedData и SizeOfUninitialezedData - размер инициализированных и не инициализированных данных.
ImageBase - базовый адрес загрузки PE файла.
AdressOfEntryPoint - адрес точки входа. Точка входа показывает откуда начать выполнение программы, когда она запускается. Адрес не абсолюный, а относительный RVA.
RVA - это сокращение от Relative Virtual Address, т.е. относительный виртуальный адрес. Относительно чего? Относительно Image Base. Например, если какая-либо строка хранится в памяти по адресу 450000h, и Image Base = 400000h, то RVA этой строки равен 450000h - 400000h = 50000h.
BaseOfCode - RVA по которому размещена секция кода.
BaseOfData - RVA по которому размещена секция с данными.

Data Directories - Перечисляет все таблицы в файле.

Screenshot_6.png


Section Headers - Секции файла.

Screenshot_7.png


DIRECTORY_ENTRY_IMPORT - Показывает все dll и их функции которые были импортированы в программу разработчиком.

Screenshot_8.png


DIRECTORY_ENTRY_DEBUG - Отладочная информация о файле. Эта таблица присутствует, если к программе подключают dll файлы.

Screenshot_9.png


DIRECTORY_ENTRY_LOAD - Таблица с конфигурациями загрузок.

Screenshot_10.png


DIRECTORY_ENTRY_IAT - таблица с адресами импортируемых функций и dll.

Screenshot_11.png


Strings in file - Строки в исследуемом файле. Возможна сортировка по ASCII, Unicode и другим типам строк.

Screenshot_12.png


Если после прочтения этого краткого обзора у вас появился интерес к изучению PE файла, перейдите и почитайте информацию из ссылок ниже.

Цикл статей @PingVinich
Видео на канале The Codeby

Статья на Habr

Спасибо за внимание. Не болейте.
 

Вложения

  • Screenshot_5.png
    Screenshot_5.png
    27,7 КБ · Просмотры: 237
  • Screenshot_5.png
    Screenshot_5.png
    27,7 КБ · Просмотры: 268
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!