Привет всем!
Решил я тут сделать краткий обзор инструмента
Начнём с теории, а дальше исследуем 1 exe файл. Все параметры PE файла я описывать не буду. Только часто используемые. Они будут выделены жёлтым цветом. Их можно посмотреть перейдя ссылкам в конце обзора.
Описание с сайта разработчика
Puppy - это легкий, но мощный инструмент для статического исследования интересующих нас файлов. Также предоставляются два сопутствующих плагина.
FileInfo - чтобы запросить файл в известных хранилищах вредоносных программ и взять в один клик техническую информацию о файле, такую как его размер, энтропия, атрибуты, хэши, информация о версии и так далее.
YaraPlugin - чтобы проверить правила Yara (помогают нам идентифицировать и классифицировать образцы вредоносных программ) против открытого файла.
Рассмотрим exe файл
Dos Header - Заголовок MS DOS.
Rich Header - Структура, генерируемая компилятором. Содержит информацию о компиляторе. Если вам интересно почитать про этот заголовок, вот
NT Header - Содержит заголовок PE файла.
File Header - заголовок исследуемого файла.
PointerToSymbolTable - смещение до таблицы с символами.
NumberOfSymbols - количество символов в таблице символов.
Characteristic - характеристика файла.
NumberOfSections - количество секций в файле.
Optional Header - опциональный заголовок. Такие заголовки находятся в форматах .exe, .dll, но не в объектных файлах .obj.
Magic - по этому полю можно определить для какой архитектуры PE программа. PE32 (x86) PE32+ (x64). Особенность PE32+: все поля, содержащие виртуальный адрес имеют размер qword = 64 bit.
SizeOfCode - размер секции кода.
SizeOfInitialezedData и SizeOfUninitialezedData - размер инициализированных и не инициализированных данных.
ImageBase - базовый адрес загрузки PE файла.
AdressOfEntryPoint - адрес точки входа. Точка входа показывает откуда начать выполнение программы, когда она запускается. Адрес не абсолюный, а относительный RVA.
BaseOfCode - RVA по которому размещена секция кода.
BaseOfData - RVA по которому размещена секция с данными.
Data Directories - Перечисляет все таблицы в файле.
Section Headers - Секции файла.
DIRECTORY_ENTRY_IMPORT - Показывает все dll и их функции которые были импортированы в программу разработчиком.
DIRECTORY_ENTRY_DEBUG - Отладочная информация о файле. Эта таблица присутствует, если к программе подключают dll файлы.
DIRECTORY_ENTRY_LOAD - Таблица с конфигурациями загрузок.
DIRECTORY_ENTRY_IAT - таблица с адресами импортируемых функций и dll.
Strings in file - Строки в исследуемом файле. Возможна сортировка по ASCII, Unicode и другим типам строк.
Если после прочтения этого краткого обзора у вас появился интерес к изучению PE файла, перейдите и почитайте информацию из ссылок ниже.
Цикл статей @PingVinich
Видео на канале The Codeby
Статья на Habr
Спасибо за внимание. Не болейте.
Решил я тут сделать краткий обзор инструмента
Ссылка скрыта от гостей
(Puppy). Этот инструмент предназначен для детального исследования файлов. В конце статьи будут полезные ссылки Начнём с теории, а дальше исследуем 1 exe файл. Все параметры PE файла я описывать не буду. Только часто используемые. Они будут выделены жёлтым цветом. Их можно посмотреть перейдя ссылкам в конце обзора.
Описание с сайта разработчика
Puppy - это легкий, но мощный инструмент для статического исследования интересующих нас файлов. Также предоставляются два сопутствующих плагина.
FileInfo - чтобы запросить файл в известных хранилищах вредоносных программ и взять в один клик техническую информацию о файле, такую как его размер, энтропия, атрибуты, хэши, информация о версии и так далее.
YaraPlugin - чтобы проверить правила Yara (помогают нам идентифицировать и классифицировать образцы вредоносных программ) против открытого файла.
Рассмотрим exe файл
Dos Header - Заголовок MS DOS.
Rich Header - Структура, генерируемая компилятором. Содержит информацию о компиляторе. Если вам интересно почитать про этот заголовок, вот
Ссылка скрыта от гостей
NT Header - Содержит заголовок PE файла.
File Header - заголовок исследуемого файла.
PointerToSymbolTable - смещение до таблицы с символами.
NumberOfSymbols - количество символов в таблице символов.
Characteristic - характеристика файла.
NumberOfSections - количество секций в файле.
Optional Header - опциональный заголовок. Такие заголовки находятся в форматах .exe, .dll, но не в объектных файлах .obj.
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.
BaseOfData - RVA по которому размещена секция с данными.
Data Directories - Перечисляет все таблицы в файле.
Section Headers - Секции файла.
DIRECTORY_ENTRY_IMPORT - Показывает все dll и их функции которые были импортированы в программу разработчиком.
DIRECTORY_ENTRY_DEBUG - Отладочная информация о файле. Эта таблица присутствует, если к программе подключают dll файлы.
DIRECTORY_ENTRY_LOAD - Таблица с конфигурациями загрузок.
DIRECTORY_ENTRY_IAT - таблица с адресами импортируемых функций и dll.
Strings in file - Строки в исследуемом файле. Возможна сортировка по ASCII, Unicode и другим типам строк.
Если после прочтения этого краткого обзора у вас появился интерес к изучению PE файла, перейдите и почитайте информацию из ссылок ниже.
Цикл статей @PingVinich
Видео на канале The Codeby
Ссылка скрыта от гостей
Статья на Habr
Спасибо за внимание. Не болейте.