Что такое упаковщики exe- и com-файлов

Обновлено: 02.07.2024

Вредоносное ПО может нанести ущерб практически любой системе, а упаковщики помогают вредоносному ПО оставаться на шаг впереди программного обеспечения для обеспечения безопасности. Но что именно делают упаковщики? Как их можно обнаружить? И, наконец, какие упаковщики сегодня наиболее популярны среди вредоносных программ?

Мы ответим на эти и другие вопросы в этой статье. Но сначала давайте подробнее рассмотрим упаковщики и то, как они работают.

Что такое упаковщик вредоносных программ?

Долгие годы упаковщики использовались по совершенно невинным причинам. Это программное обеспечение, часто известное как «упаковщик среды выполнения», сжимает файлы, а затем распаковывает их, когда программа или файл готовы к выполнению.

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

По сути, упаковщик вредоносного ПО — это инструмент, используемый для маскировки вредоносного файла. Упаковщики могут шифровать, сжимать или просто изменять формат файла вредоносного ПО, чтобы он выглядел совершенно иначе. Процесс сжатия или шифрования упаковщика переводит файл из исходного кода в новое состояние с использованием проверенных методов запутывания.

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

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

Топ-13 популярных упаковщиков, используемых во вредоносных программах

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

Чтобы защитить свою систему от вредоносных программ и приступить к обратному проектированию вредоносного кода, вам необходимо знать, какие упаковщики чаще всего используются в вредоносных программах. Вот 13 самых популярных упаковщиков, используемых сегодня во вредоносных программах.

UPX — это сокращение от Ultimate Packer for Executables. Он использует алгоритм с открытым исходным кодом, который не требует дополнительной системной памяти для распаковки.

Защитник Энигмы

Как и большинство упаковщиков, Enigma Protector предназначен для частных лиц и компаний, которые хотят защитить свои файлы от взлома. Тем не менее, Enigma Protector обычно используется для сокрытия вредоносных программ.

МПРЕСС

MPRESS изначально был разработан для сжатия файлов и сокращения времени запуска приложений. Хотя это бесплатное программное обеспечение чрезвычайно полезно для обычного сжатия файлов, оно также легкодоступно для хакеров и других авторов вредоносных программ.

Exe Packer 2.300

Exe Packer 2.300 — это стандартное бесплатное программное обеспечение для сжатия и распаковки файлов. Exe Packer 2.300 существует уже много лет и является одним из самых популярных упаковщиков для запутывания вредоносных файлов.

ExeStealth

ExeStealth – это инструмент, который шифрует файлы, чтобы избежать их обнаружения и взлома. Это бесплатное программное обеспечение, разработанное WebToolMaster, простое в реализации и является одним из лучших средств защиты от взлома на рынке, что также позволяет эффективно скрывать вредоносный код в вашей системе.

Морфин

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

Фемида

Themida была разработана компанией Oreans для защиты приложений Windows от хакеров. К сожалению, его также можно использовать для шифрования вредоносных файлов и усложнения попыток реконструировать вредоносное ПО.

MEW в основном используется для сжатия небольших вредоносных файлов с использованием алгоритма LZMA. Несмотря на то, что он был разработан для небольших файлов, со временем он был обновлен, чтобы он также мог скрывать более крупные вредоносные файлы.

Простое бесплатное программное обеспечение FSG сжимает как маленькие, так и большие файлы. Хотя он популярен и широко используется для сокрытия вредоносного кода, его также относительно просто распаковать с помощью цикла декомпрессии, который записывает данные в конечный пункт назначения.

PESpin

PESpin сжимает код Windows с помощью MASM. Он защищает файлы от установки исправлений и дизассемблирования, что делает его популярным ресурсом для авторов вредоносных программ.

Андромеда

Хотя Andromeda относится к ботнету, который существует с 2011 года, он также является настраиваемым упаковщиком. Пользовательские упаковщики особенно опасны, потому что их не так просто реконструировать.

VMProtect

VMProtect очень популярен, так как он может шифровать широкий спектр файлов, включая исполняемые файлы, драйверы и библиотеки динамической компоновки. При открытии приложения, зашифрованного VMProtect, упаковщик ничего не расшифровывает; вместо этого он работает на виртуализированном коде.

Обсидиум

Obsidium работает как с 32-разрядными, так и с 64-разрядными приложениями Windows. Это программное обеспечение способно шифровать, сжимать и запутывать вредоносное ПО.

Как обнаружить упаковщиков вредоносных программ

Поскольку большинство упаковщиков вредоносных программ затрудняют поиск и анализ вредоносного кода, может потребоваться использование сценария, специально разработанного для обнаружения упаковщиков. К счастью, существует ряд доступных инструментов для обнаружения упаковщиков. Вот некоторые из лучших инструментов для выявления упаковщиков вредоносных программ:

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

Заключение

Упаковщики не являются плохими по своей природе. Фактически, они являются одним из многих решений безопасности, которые могут помочь защитить файлы, данные и приложения. Однако они также являются отличным ресурсом для разработчиков вредоносных программ. Они запутывают код файла, что очень затрудняет поиск и анализ вредоносных программ в вашей системе. Некоторые упаковщики используют общие алгоритмы, а другие используют собственный код для сжатия и/или шифрования файлов.

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

Вредоносное ПО может нанести ущерб практически любой системе, а упаковщики помогают вредоносному ПО оставаться на шаг впереди программного обеспечения для обеспечения безопасности. Но что именно делают упаковщики? Как их можно обнаружить? И, наконец, какие упаковщики сегодня наиболее популярны среди вредоносных программ?

Мы ответим на эти и другие вопросы в этой статье. Но сначала давайте подробнее рассмотрим упаковщики и то, как они работают.

Что такое упаковщик вредоносных программ?

Долгие годы упаковщики использовались по совершенно невинным причинам. Это программное обеспечение, часто известное как «упаковщик среды выполнения», сжимает файлы, а затем распаковывает их, когда программа или файл готовы к выполнению.

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

По сути, упаковщик вредоносного ПО — это инструмент, используемый для маскировки вредоносного файла. Упаковщики могут шифровать, сжимать или просто изменять формат файла вредоносного ПО, чтобы он выглядел совершенно иначе. Процесс сжатия или шифрования упаковщика переводит файл из исходного кода в новое состояние с использованием проверенных методов запутывания.

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

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

Топ-13 популярных упаковщиков, используемых во вредоносных программах

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

Чтобы защитить свою систему от вредоносных программ и приступить к обратному проектированию вредоносного кода, вам необходимо знать, какие упаковщики чаще всего используются в вредоносных программах. Вот 13 самых популярных упаковщиков, используемых сегодня во вредоносных программах.

UPX — это сокращение от Ultimate Packer for Executables. Он использует алгоритм с открытым исходным кодом, который не требует дополнительной системной памяти для распаковки.

Защитник Энигмы

Как и большинство упаковщиков, Enigma Protector предназначен для частных лиц и компаний, которые хотят защитить свои файлы от взлома. Тем не менее, Enigma Protector обычно используется для сокрытия вредоносных программ.

МПРЕСС

MPRESS изначально был разработан для сжатия файлов и сокращения времени запуска приложений. Хотя это бесплатное программное обеспечение чрезвычайно полезно для обычного сжатия файлов, оно также легкодоступно для хакеров и других авторов вредоносных программ.

Exe Packer 2.300

Exe Packer 2.300 — это стандартное бесплатное программное обеспечение для сжатия и распаковки файлов. Exe Packer 2.300 существует уже много лет и является одним из самых популярных упаковщиков для запутывания вредоносных файлов.

ExeStealth

ExeStealth – это инструмент, который шифрует файлы, чтобы избежать их обнаружения и взлома. Это бесплатное программное обеспечение, разработанное WebToolMaster, простое в реализации и является одним из лучших средств защиты от взлома на рынке, что также позволяет эффективно скрывать вредоносный код в вашей системе.

Морфин

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

Фемида

Themida была разработана компанией Oreans для защиты приложений Windows от хакеров.К сожалению, его также можно использовать для шифрования вредоносных файлов и усложнения попыток реконструировать вредоносное ПО.

MEW в основном используется для сжатия небольших вредоносных файлов с использованием алгоритма LZMA. Несмотря на то, что он был разработан для небольших файлов, со временем он был обновлен, чтобы он также мог скрывать более крупные вредоносные файлы.

Простое бесплатное программное обеспечение FSG сжимает как маленькие, так и большие файлы. Хотя он популярен и широко используется для сокрытия вредоносного кода, его также относительно просто распаковать с помощью цикла декомпрессии, который записывает данные в конечный пункт назначения.

PESpin

PESpin сжимает код Windows с помощью MASM. Он защищает файлы от установки исправлений и дизассемблирования, что делает его популярным ресурсом для авторов вредоносных программ.

Андромеда

Хотя Andromeda относится к ботнету, который существует с 2011 года, он также является настраиваемым упаковщиком. Пользовательские упаковщики особенно опасны, потому что их не так просто реконструировать.

VMProtect

VMProtect очень популярен, так как он может шифровать широкий спектр файлов, включая исполняемые файлы, драйверы и библиотеки динамической компоновки. При открытии приложения, зашифрованного VMProtect, упаковщик ничего не расшифровывает; вместо этого он работает на виртуализированном коде.

Обсидиум

Obsidium работает как с 32-разрядными, так и с 64-разрядными приложениями Windows. Это программное обеспечение способно шифровать, сжимать и запутывать вредоносное ПО.

Как обнаружить упаковщиков вредоносных программ

Поскольку большинство упаковщиков вредоносных программ затрудняют поиск и анализ вредоносного кода, может потребоваться использование сценария, специально разработанного для обнаружения упаковщиков. К счастью, существует ряд доступных инструментов для обнаружения упаковщиков. Вот некоторые из лучших инструментов для выявления упаковщиков вредоносных программ:

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

Заключение

Упаковщики не являются плохими по своей природе. Фактически, они являются одним из многих решений безопасности, которые могут помочь защитить файлы, данные и приложения. Однако они также являются отличным ресурсом для разработчиков вредоносных программ. Они запутывают код файла, что очень затрудняет поиск и анализ вредоносных программ в вашей системе. Некоторые упаковщики используют общие алгоритмы, а другие используют собственный код для сжатия и/или шифрования файлов.

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

PKLite32 (условно-бесплатное ПО) от PKWare. 9.VI.1999 .
PKLite32 1.1 .

PKLITE32 можно использовать для уменьшения размера любого 32-разрядного переносимого исполняемого файла Windows (т. е. PE) «образа». Формат файла PE основан на стандартном формате объектных файлов (т. е. COFF) и является основным форматом исполняемого файла 32-разрядной версии Windows. Помимо исполняемых файлов, PKLITE32 сжимает файлы библиотеки динамической компоновки (т. е. .DLL), файлы пользовательского элемента управления OLE (т. е. .OCX) или файлы любого типа на основе PE.

AS-Pack (условно-бесплатная) от Солодовникова Алексея. 01.IV. 2000 .
AS-пакет 2.1. ASPatch 1.21 (23K) - патчер для ASPacked-файлов от Chafe.

Новости:
- Степень сжатия макс. улучшен режим сжатия
- теперь поддерживается японский язык
- исправлены мелкие ошибки

ASPack — это усовершенствованный компрессор исполняемых файлов Win32, способный уменьшить размер файлов 32-разрядных программ Windows на целых 70%. (Коэффициент сжатия ASPack улучшает стандартный формат файла zip на 10-20%.) ASPack уменьшает размер программ и библиотек Windows 95/98/NT, а также сокращает время загрузки по сети и время загрузки из Интернета; он также защищает программы от обратного проектирования непрофессиональными хакерами. Программы, сжатые с помощью ASPack, автономны и работают точно так же, как и раньше, без снижения производительности во время выполнения.

Petite (условно-бесплатное ПО) Иэна Лака. 17.XII.1999 .
Миниатюрный 2.2 (108K).

Новости:
- версия графического интерфейса
- "-r**" опция сжатия всех значков, кроме 1-й
- "-s" опция перемещения полосы
- "-m" опция импорта mangle
- Еще несколько улучшений/исправлений

Petite — это исполняемый (EXE/DLL/и т. д.) компрессор для Windows 9x/NT. Он позволяет сжимать весь исполняемый файл — код, данные и ресурсы. Petite автоматически решает, какие части исполняемого файла можно сжать, а какие оставить как есть. Сжатый исполняемый файл вывода можно запустить, как если бы он был исходным несжатым файлом.

Новости:
- стриппер таблиц перемещений
- компрессор ресурсов
- параметры командной строки
- новый дизайн окна SETUP

WWPack32 сэкономит место на диске, а также защитит ваши программы от взлома. WWPack32 уменьшит трафик по локальным компьютерным сетям (в сети сжатые файлы работают быстрее)!

Новости:
- Оптимизирована таблица импорта.
- Оптимизирован симбиотический код.
- Исправлен сбой в нескольких экземплярах.
- Исправлена ​​ошибка общего раздела.
- Разное. исправления ошибок.

PECompact — это утилита, которая сжимает исполняемые файлы Windows 9x/NT4/w2k, оставляя их 100% работоспособными. PECompact сжимает код, данные, выбранные ресурсы, таблицу импорта/экспорта исполняемого файла win32 и оптимизирует его структуру. Затем он устанавливает симбионт, который распаковывает исполняемый файл во время выполнения без какой-либо заметной разницы в скорости. В некоторых случаях время загрузки может быть сокращено, поскольку с диска нужно извлечь меньше данных.

PEBundle физически прикрепляет DLL (и) к исполняемому файлу, разрешая зависимости в памяти и, следовательно, устраняя требование, чтобы образ (ы) DLL распространялся с исполняемым файлом или существовал как отдельный физический образ. PEBundle НЕ записывает прикрепленные библиотеки DLL на диск, но прозрачно обрабатывает зависимости API в памяти практически без использования дополнительной памяти по сравнению с обычным требованием для EXE + DLL, за исключением особого случая, который был бы общим модулем DLL.< /TD>

Crunch позволяет сократить количество файлов EXE, DLL, OCX и экранных заставок на 70 % и при этом работать в обычном режиме. Crunch представляет мощное сжатие и шифрование, которые скрывают ваш реальный программный код от шестнадцатеричных редакторов и т. д. Файлы, созданные Crunch, можно распространять без необходимости в дополнительных файлах или зависимостях.

Вы когда-нибудь представляли себе программу VB, не требующую среды выполнения VB? Fusion связывает все зависимости среды выполнения и даже OCX для создания единого автономного исполняемого файла. Сжатие уменьшает общую площадь приложения, а шифрование программного кода повышает безопасность. Работает со всеми 32-разрядными exe/dll/ocx и экранными заставками Windows.

Новости:
- watcom/le: исправлена ​​проблема с расширителем Causeway
- win32/pe: не удаляются автоматически релоки, если они кажутся необходимыми
- поддержка нескольких поколений резервных копий, когда используя `-k'
- обновил драйвер экрана консоли

UPX — универсальный упаковщик исполняемых файлов со следующими функциями:
- отличная степень сжатия: сжимает лучше, чем zip/gzip, используйте UPX, чтобы уменьшить размер вашего дистрибутива!
- очень быстрая распаковка: около 10 МБ/с на P133;
- отсутствие дополнительных затрат памяти на ваши сжатые исполняемые файлы;
- безопасность: вы можете просматривать, тестировать и распаковывать свои исполняемые файлы. Кроме того, внутри поддерживается контрольная сумма как сжатого, так и несжатого файла.
- универсальный: UPX может упаковывать несколько исполняемых форматов: dos/exe, dos/sys, dos/com, djgpp2/coff, watcom/le (с поддержкой DOS4G, PMODE/W, DOS32a и CauseWay), win32/ ре, rtm32/pe, тмт/адам.
- переносимый: UPX написан на переносимом нейтральном по порядку байтах C++ (официальная версия скомпилирована с помощью djgpp, но мы действительно частично разрабатываем его под Linux)
- расширяемый: из-за структуры классов это очень просто добавлять новые исполняемые типы или новые алгоритмы сжатия
- бесплатно: окончательная версия будет распространяться с полным исходным кодом под Стандартной общественной лицензией GNU (GPL)

Я сравнил PEPACK со всеми другими известными мне упаковщиками PE: PETITE, PECRYPT, WWPACK32, SHRINKER, STNPEE. И я могу с гордостью сказать, что PEPACK побеждает их всех.

Уменьшитель PE от tERAPHY . 11.IX.1999 .
PE Diminisher v0.1 (11K).

PE Diminisher — это простой упаковщик PE. Просто запустите его, откройте файл, который хотите запаковать, и выберите Зашифровать файл! Это программное обеспечение было написано только в учебных целях. Так что не говорите мне, что это отстой, потому что я и так знаю ;) В любом случае, графический интерфейс довольно приятный :)

Ссылки по теме:
- Распаковщики.


Расшифровщики/Защитники

PC Guard для Win32 — это профессиональная система защиты и лицензирования программного обеспечения. С помощью PC Guard для Win32 вы можете легко защитить 32-разрядные EXE/DLL-приложения Windows 95/98/NT от нелегального распространения и обратного проектирования. Более того, для этого вам не нужно никакого редактирования исходного кода или опыта программирования. Все полностью автоматизировано!

С помощью PC Guard для Win32 вы можете защитить неограниченное количество своих программ без дополнительных вложений. Вам также не нужно никакого дополнительного оборудования (аппаратные ключи, ключи и т. д.) для правильного выполнения защищенных программ. PC Guard для Win32 основан только на сложных методах защиты программного обеспечения и сведениях об оборудовании ПК.

Armadillo — мощная система защиты программного обеспечения. Он окружает вашу программу подобно бронированной оболочке, защищая вашу работу от пиратов и взломщиков программ с помощью современного шифрования, сжатия данных и других функций безопасности. Это позволяет вам спроектировать и добавить полную защиту программного обеспечения и систему регистрационных ключей к вашим существующим программам менее чем за пять минут без каких-либо изменений в коде вашей программы!И он работает с любым языком, который создает 32-разрядный файл Windows EXE.

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

PECRYPT32 от random , killa и acpizer . 12.I.1999 .
PECRYPT32 1.02 (98K).

- код, данные, ресурс, перемещение, шифрование импорта.
- Код, Данные, Ресурс, Перемещение, Сжатие Импорта.
- Усовершенствованный загрузчик перемещений.
- Защита от отладки совместима с WINDOWS NT, WINDOWS 95 и WINDOWS 98.
- Поддержка библиотеки динамической компоновки (файлы DLL).
- Рутины против патчей/загрузчиков памяти.
- Подпрограммы Anti-API-Breakpoint.
- Обнаружение обнаженных супермоделей, сидящих перед монитором.
- (надеюсь) работающий Import-Loader.
- Процедуры защиты от распаковки.
- Хромая эвристическая проверка файлов на вирусы.

CodeCrypt от дефилера . 27.04.2000 .
CodeCrypt 0.164 (7K).

Новости:
- несколько исправлений
- изменено шифрование

Возможности:
- антиотладочный код.
- код анти-трассировщика (procdump и т.п.).
- шифрование дешифратора.
- система шифрования случайных чисел.
- множественное шифрование контрольной суммы.
- поддельные коды операций, затрудняющие реверсирование дешифратора.
- anti procdump-dump-trick
- anti-frogsice code

Новости:
- Снова добавлено еще несколько поддельных вещей, чтобы лучше скрыть некоторые детали.
- Строка авторского права в конце заблокированных файлов *удалена*

Маленький PE-компрессор/шифровальщик с защитой от ProcDump и -SoftICE. Неплохая степень сжатия.

NFO от Барта . 17.III.2000 .
NFO 1.0 (7K).

- обработка таблицы импорта
- поддержка ресурсов
- очистка перемещения
- защита от отладки API
- защита от W32dsm
- обработка исключений (SEH)
- нельзя загрузить с помощью Loader.exe из SoftIce
- поддержка многоуровневого шифрования

Альфа-предварительный просмотр PCPEC от The+Q, Plushmm и MrNop . 12.I.1999 .
PCPEC (100 КБ).

Этот релиз PCPEC можно считать альфа-версией или «предварительной версией» того, что должно прийти от Phrozen Crew. Этот проект стал результатом нашего интереса к структуре заголовка Win32 PE. Таким образом, мы использовали эту возможность, чтобы провести некоторое исследование и выполнить кодирование. и альт! Родился PCPEC ;-)

- Исправлено несколько небольших ошибок по запросу и добавлены некоторые элементы рекламы.

PE-SHiELD — это программа, которая шифрует 32-битные EXE-файлы Windows, оставляя их по-прежнему исполняемыми. Предыдущая версия находилась в свободном доступе больше года, и для нее до сих пор нет распаковщика.

- Защитите любой 32-разрядный переносимый EXE- и DLL-файл Windows, оставив его исполняемым.
- Полная поддержка Windows NT4, NT5, W95, W98 и SoftIce.
- Шифрование файлов EXE и DLL размером до 64 МБ за считанные секунды.
- 32-битная защита от вирусов.
- Защита всех PE.objects от обратного проектирования или исправления.
- Встроенный ImportTableLoader поддерживает импорт по имени и порядковому номеру.
- Встроенный RelocationTableLoader поддерживает любую базу изображений.
- 32-битное шифрование до 50% быстрее по сравнению с предыдущей версией.
- Защита BPX.
- Универсальная защита API.Hook.
- Общая защита File.Tracer.
- Поддержка файлов EXE с экспортом таблицы каталогов.
- Автоматическая обработка TLS (Thread Local Storage).
- Скрытие имен .object.
- DAR DLL.Auto.Recognition
- APC Anti.Procdump.Code
- User.options для защиты любого зашифрованного файла от SICE и NTICE.
- Общая 32-битная самозащита CRC от вирусов, манипуляций с файлами или ошибок дешифрования. Если проверка CRC32 не пройдена, PELOCKnt отобразит окно и закроет защищенную программу, чтобы предотвратить потерю данных. Общий отказ защиты ВНУТРИ PELOCKnt практически невозможен.

- Защищенные файлы работают быстро
- Много внутренних случайных шифровок
- Слои шифрования объекта защищены от ошибок при сборке
- Подделка точки входа
- Множественная проверка CRC
- Просто Code Caving
- Чертовски ненадежен в защите ;)

- Сжатие
- Поддержка Dll
- Поддержка импорта
- Поддержка перемещения
- Полный исходный код ASM
- Сборка на aPlib (c) Jibz

Особенности:
- три типа парастичности PE:
1) установка в пещере - без увеличения физического размера
2) добавление к последнему объекту
3) создание нового объекта < br />- полная совместимость с win95/98/NT
- не добавляет новый объект, если вы этого не хотите
- сохраняет правильную новую контрольную сумму исполняемого файла PE
- сохраняет исходные данные/время и атрибуты файла
- предлагает вам снова зашифровать, если файл уже зашифрован, вы можете зашифровать файл столько раз, сколько хотите.Конечно, со временем у вас закончатся доступные пещеры, и размер файла начнет увеличиваться.

Протектор пароля PE от SMT. 10.II.2000 .
Защита паролем PE (19K).

Этот инструмент может защитить ваши PE-исполняемые файлы паролем. Пароль не хранится в файле, только подпись. После добавления пароля рекомендуется защитить ваши файлы любым PE-crypt. 100% закодировано в ASM.

Замок Ding Boy's PE-Lock от Ding Boy . 14.VI.2000 .
Ding Boy's PE-Lock v1.5b3 (513K).

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

Во время многих криминалистических расследований Trustwave SpiderLabs мы часто натыкаемся на вредоносные образцы, которые были «упакованы». Эта техника/концепция может быть незнакома начинающим специалистам по реверсированию вредоносных программ или специалистам по цифровой криминалистике, поэтому я подумал, что было бы интересно использовать эту возможность, чтобы поговорить о переносимых исполняемых (PE) упаковщиках на высоком уровне. Если вы уже знаете, что такое PE-упаковщики и как они работают, вы можете продолжить чтение, однако вполне возможно, что вы не узнаете что-то новое. Думайте об этом как о записи в блоге 101.

Так что же такое упаковщики PE? Как они работают? Как вы можете победить их? Я постараюсь ответить на эти вопросы.

Обзор

По сути, упаковщики — это инструменты, которые используются для сжатия PE-файла. В первую очередь это позволяет пользователю, запускающему инструмент, уменьшить размер файла. Дополнительным преимуществом является то, что, поскольку файл сжат, это также обычно мешает многим обратным инженерам анализировать код статически (без его запуска). Упаковщики изначально создавались для законных целей, чтобы уменьшить общий размер файла. Позднее авторы вредоносного ПО осознали упомянутые выше преимущества и тоже стали их использовать. Конечно, простое сжатие PE-файла само по себе не сработает. Если вы попытаетесь запустить его, файл будет жаловаться и завершится ошибкой, и в итоге у вас будет ужасный день.

Чтобы решить эту проблему, упаковщики будут заключать эти сжатые данные в рабочую файловую структуру PE. При запуске упакованный файл распаковывает данные законного PE-файла в память и выполняет его.

Прежде чем мы перейдем к особенностям того, как это происходит на техническом уровне, важно понять некоторые основы структуры PE-файла.

Структура файла PE

Знаете вы это или нет, почти наверняка вы сталкивались с PE-файлами раньше. Если вы использовали Microsoft Windows, вы использовали PE-файлы. Это формат файла, разработанный Microsoft, который используется для большого количества типов файлов. Наиболее распространенными из них являются файлы .exe и .dll (исполняемые файлы и динамически подключаемые библиотеки соответственно). PE-файлы состоят из двух частей — заголовка и разделов. Заголовок содержит сведения о самом PE-файле, а разделы содержат содержимое исполняемого файла.

Заголовок разбит на несколько частей: заголовок DOS, заголовок PE, необязательные заголовки и таблицу разделов. В PE-файле может быть любое количество разделов, и они могут называться так, как пожелает автор. Однако почти всегда должны быть разделы, содержащие фактический код файла, таблицу импорта и данные, используемые кодом. В итоге это выглядит примерно так:

Заголовки PE

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

Необязательный заголовок

Этот заголовок может содержать большое количество информации, например размер кода на диске, контрольную сумму файла, размер стека и кучи и т. д. Он также содержит адрес точки входа или места, где начнется выполнение кода. Это становится важным позже, когда упаковщик изменит это значение, и нам придется найти местоположение исходной точки входа, или OEP, упакованного файла. Как только это будет обнаружено, мы можем сбросить память исполняемого файла, восстановить импорт (подробнее об этом чуть позже) и вуаля, все готово.

Каталоги данных содержатся в необязательном заголовке. Каталоги данных содержат таблицы, содержащие информацию о ресурсах, импорте, экспорте, отладочной информации и локальном хранилище потоков, и это лишь некоторые из них. Если вам нужна более подробная информация о каталогах данных, я настоятельно рекомендую вам взглянуть на эту замечательную статью MSDN по этой теме. Информация об импорте представляет для нас особый интерес. Прежде чем мы перейдем к этому, давайте на секунду поговорим об импорте—

Чтобы объяснить импорт, давайте представим гипотетическую ситуацию.У нас есть пять исполняемых файлов, каждый из которых имеет общий код. На самом деле не имеет большого смысла хранить этот код во всех этих исполняемых файлах. Вместо этого имеет смысл выделить этот код в отдельную библиотеку и просто загружать эту библиотеку во время выполнения каждым исполняемым файлом. По сути, это и есть таблица импорта — список библиотек и связанных с ними функций, которые исполняемый файл хочет загрузить во время выполнения. Эта таблица функций и библиотек заменяется в упакованном файле и генерируется при выполнении. Это означает, что если мы хотим распаковать уже упакованный двоичный файл, нам придется реконструировать эту информацию, чтобы распакованный PE-файл был действительным и работал должным образом. Как только этот заголовок проанализирован, поток выполнения переходит к таблице Sections.

Таблица разделов

В таблице разделов перечислены все разделы, присутствующие в PE-файле. Это включает в себя имя раздела, расположение раздела, размер раздела как в файле, так и в виртуальной памяти, а также любые флаги, связанные с этим разделом. Разделы составляют большую часть самого PE-файла, поэтому важно иметь под рукой эту таблицу с информацией.

Секции PE

Как упоминалось ранее, разделы PE обычно содержат как минимум раздел для кода, раздел для данных и раздел для импорта. Раздел импорта содержит фактические адреса для всех функций, необходимых для PE-файла. Эти адреса заполняются во время выполнения, так как каждая система Windows может отличаться. Таким образом, возможно, что функция не может быть расположена в одной и той же ячейке памяти между версиями Windows. Заполняя таблицу импорта этими адресами во время выполнения, мы можем использовать этот PE-файл на нескольких компьютерах с Microsoft Windows.

Разбираем пример

Теперь, когда мы хорошо разобрались со структурой PE-файла, давайте воспользуемся полученными знаниями для ручной распаковки реального файла. В этом примере я буду использовать calc.exe с упаковщиком MPRESS. MPRESS — это популярный упаковщик, который существует уже некоторое время. Он поддерживает большое количество типов файлов и работает со всеми текущими версиями Microsoft Windows. Итак, прежде чем мы упакуем наш файл, давайте взглянем на то, как выглядит calc.exe в исходном состоянии.

С помощью одного из моих любимых инструментов, CFFExplorer, мы можем легко просматривать различную информацию о файловой структуре PE, включая, помимо прочего, различные заголовки, информацию о разделах, информацию об импорте и любые встроенные записи ресурсов. Я специально показал необязательный заголовок и различные разделы, содержащиеся в calc.exe, на снимках экрана ниже.

Теперь давайте упакуем образец с помощью MPRESS и посмотрим, как изменился файл. Как вы можете видеть на следующих снимках экрана, MPRESS изменил разделы, присутствующие в PE-файле. Разделы «.text» и «.data» заменены на «.MPRESS1» и «.MPRESS2». Раздел ".MPRESS1" содержит сжатые данные исходного файла calc.exe, а раздел ".MPRESS2" содержит ряд функций, используемых для распаковки этих данных и восстановления таблицы импорта.

На приведенном выше снимке экрана вы также можете заметить, что точка входа для выполнения кода (AddressOfEntryPoint) изменилась. Первым шагом при распаковке этого примера вручную является определение исходной точки входа (OEP). Давайте начнем распаковывать этот образец динамически.

В этом примере я собираюсь переключаться между IDA Pro и OllyDbg. Вы можете использовать любые инструменты, которые пожелаете, но мой личный стиль приводит к тому, что я часто переключаюсь между этими инструментами, поэтому здесь я собираюсь использовать их оба. Я считаю, что IDA лучше визуализирует происходящее, но OllyDbg, как правило, имеет больше возможностей и лучшие результаты в среде динамического анализа.

Одна из первых вещей, которую мы видим при отладке примера, — это вызов этой довольно сложной функции. На самом деле эта функция распаковывает сжатые данные, найденные в '.MPRESS1'. Для этого используется интересный метод под названием «декомпрессия на месте». Другими словами, MPRESS может распаковывать данные без создания нового раздела памяти и сброса в него распакованных данных. Вместо этого он просто перезаписывает сжатые данные распакованными данными.

После завершения распаковки мы видим, как выполнение кода переходит к серии циклов, которые восстанавливают таблицу импорта. Это можно увидеть ниже, где я демонстрирую процесс распаковки до и после:

В конце концов, мы достигли исходной точки входа (на данный момент) распакованного calc.exe. Именно здесь мы хотим сбросить память процесса на диск. Для этой задачи я предпочитаю подключаемый модуль для OllyDbg под названием OllyDump. Он не только позволит вам создать дамп процесса, но также имеет возможность, среди прочего, перестроить таблицу импорта (помните, что процесс упаковки уничтожает оригинал).

Как и во многих других вещах в этой отрасли, к этому можно подойти по-разному.Если вы не являетесь большим поклонником OllyDbg, хорошей альтернативой только что упомянутому плагину является инструмент под названием ChimpRec. На главной странице этого инструмента есть полный список функций, но, по сути, он позволяет вам сделать дамп запущенного в данный момент процесса и перестроить его импортированные данные. . Я уверен, что есть много других, которые сделают то же самое. Эти две утилиты просто мои любимые.

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

Читайте также: