Перейти к содержанию

PECompact

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
PECompact
Логотип программы PECompact
Скриншот программы PECompactСкриншот программы
Тип Упаковка исполняемых файлов
Разработчик Bitsum Technologies & Jeremy Collake
Написана на C++
Операционная система Microsoft Windows
Языки интерфейса Многоязычная поддержка (11 языковых пакетов)
Последняя версия 3.02.2 (5 мая 2010)
Тестовая версия 3.11.00.02 beta (10 декабря 2012 года)
Лицензия Shareware
Сайт bitsum.com/pecompact.php

PECompact — программа для сжатия исполняемых файлов для Windows с закрытым исходным кодом.

Описание

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

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

Преимущества[источник не указан 1646 дней]

  • По желанию пользователя упаковщик допускает возможность оставить несжатыми любые данные из файла (к примеру, иконки, курсоры или другие ресурсы).
  • Многозадачная упаковка, PECompact способен в определенный момент времени выполнить сразу несколько операций над элементам данных.
  • Упаковка исполняемого файла позволяет уменьшить занимаемое программным обеспечением место.
  • Сжатие защищает программы от непрофессионального реверс-инжиниринга.
  • Позволяет создать резервную копию файла (BAK файл) перед началом упаковки для каждого файла.
  • Поддержка плагинов (как предоставляемых разработчиками, так и независимыми программистами).
  • Многоязычная поддержка языков (в том числе и русский).
  • Сжатие секции экспорта.
  • Позволяет уменьшить размер файла за счет оптимизации структуры файла, без сжатия данных.
  • Поддерживает программное и аппаратное обеспечение DEP.
  • Принудительная защита памяти.
  • Обрезание адресных привязок.
  • Сжатые исполняемые файлы или модули запускаются и работают точно так же, как и до компрессии в Wine.
  • Внедрить водяной знак.

Недостатки

Консольная версия

PEC2.exe для тех пользователей, которые предпочитают работать в консольном режиме из командной строки.

В дистрибутив поставки входит файл PEC2.exe. Она поддерживает только интерфейс командной строки и работает в текстовом (консольном) режиме. Консольную версию PEC2.exe удобно использовать для вызова из пакетных файлов (BAT и CMD), для запуска из командной строки или других консольных приложениях (например, в FAR Manager).

Плагины

PECompact использует кодеки, загрузчики и перехватчики, подключаемые в виде модулей (плагинов) — динамических библиотек.

Кодеки

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

Название Имя файла Автор Тип Описание
aPLib pec2codec_aplib.dll Йюрген Ибсен (норв. Jørgen Ibsen) сжатие Алгоритм сжатия данных с минимальными запросами к ресурсам компьютера, но более медленной распаковкой, чем у FFCE.
BriefLZ pec2codec_brieflz.dll Йюрген Ибсен сжатие Алгоритм, созданный для быстрой упаковки и высокой степени сжатия.
CRC32 pec2codec_crc32.dll Йюрген Ибсен проверка целостности Проверка контрольной суммы CRC32. При запуске файла происходит проверка его внутренней структуры, и если в нём обнаруживаются поврежденные данные, то выполнение файла прекращается, с последующим выводом сообщения на экран (см. MessageBox).
FFCE pec2codec_ffce.dll Йюрген Ибсен сжатие Лучший алгоритм сжатия данных для маленьких по размеру файлов, также выигрывает алгоритм aPLib на сжатии больших файлов.
JCALG1 pec2codec_jcalg1.dll Джереми Коллейк (англ. Jeremy Collake) сжатие Алгоритм предназначен для высокой степени сжатия и быстрой декомпрессии с минимальными затратами памяти.
LZMA pec2codec_lzma.dll Игорь Павлов и Йюрген Ибсен сжатие Алгоритм основан на схеме сжатия данных по словарю, сходной с использованной в LZ77, и обеспечивает высокий коэффициент сжатия, лучше, чем все алгоритмы перечисленные в таблице.
MessageBox pec2codec_messagebox.dll Йюрген Ибсен ввод-вывод сообщений Плагин, служащий для ввода-вывода сообщений в программе. К примеру, подтверждение на дальнейшее выполнение N-ой операции с файлами.
Password pec2codec_password.dll Йюрген Ибсен шифрование Алгоритм, который по желанию пользователя может установить шифрование файла по алгоритму TEA с помощью пароля.

Загрузчики

Также в программе используются загрузчики, предоставляемые компанией Bitsum Technologies и сторонними разработчиками. Для создания собственного плагина-загрузчика служит набор инструментальных средств разработки загрузчиков (Loader SDK), приобретаемый у разработчика программы — компании Bitsum Technolgoies.

Название Имя файла Описание
pec2ldr_default pec2ldr_default.dll Загрузчик используемый по умолчанию.
pec2ldr_antidebug pec2ldr_antidebug.dll Загрузчик с антиотладочным кодом.
pec2ldr_slim pec2ldr_slim.dll Облегченный аналог стандартного загрузчика, но не содержит кода для обработки ошибок импорта и других типов.
pec2ldr_ead pec2ldr_ead.dll Enhanced Anti-Debug - загрузчик, содержащий дополнительную защиту от отладки. Продается отдельно.

Перехватчики

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

Название Имя файла Описание
IsPacked API pec2hooks_ispacked.dll Плагин-перехватчик API, который взаимодействует с загрузчиком PECompact и позволяет осуществить проверку, по-прежнему ли упаковано приложение или нет.
Fast import pec2hooks_fastimport.dll Этот плагин-перехватчик является усовершенствованной разработкой функции GetProcAddress, распространяется вместе с исходным кодом. Функция использует хинты для увеличения скорости обработки таблиц импорта управляющего модуля. Выполняется бинарный поиск с полной поддержкой ускоренного экспорта.

См. также

Ссылки