UPX - UPX

UPX
Ultimate Packer для eXecutebles.png
изначальный выпуск26 мая 1998 г.; 22 года назад (1998-05-26)
Стабильный выпуск
3.96 / 23 января 2020 г.; 10 месяцев назад (2020-01-23)
Репозиторий Отредактируйте это в Викиданных
Написано вC ++, сборка
Операционная системаМайкрософт Виндоус, Linux, macOS, ДОС, Atari TOS
Платформаi386, MIPS, AMD64, РУКА, PowerPC, m68k
Доступно ванглийский
ТипИсполняемое сжатие
ЛицензияGPL за исключением сжатых исполняемых файлов,[1] проприетарный для алгоритма сжатия в двоичных распределениях[2]
Интернет сайтupx.github.io

UPX (Ultimate Packer для исполняемых файлов) является Открытый исходный код исполняемый упаковщик поддержка ряда форматов файлов из разных операционных систем.[3][4]

Сжатие

UPX использует алгоритм сжатия данных называется UCL,[5] который является Открытый исходный код реализация частей проприетарной NRV (Не совсем исчез)[6] алгоритм.[2]

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

UPX (начиная с версии 2.90) может использовать LZMA на большинстве платформ; однако по умолчанию это отключено для 16-разрядной версии из-за низкой скорости распаковки на старых компьютерах (используйте --льзма чтобы заставить его).

Начиная с версии 3.91 UPX также поддерживает 64-битные (x64) исполняемые файлы на Windows Платформа.[7] Эта функция в настоящее время объявлена ​​как экспериментальный.

Декомпрессия

UPX поддерживает два механизма декомпрессии: метод на месте и извлечение в временный файл.

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

Остальное использует извлечение во временный файл. Эта процедура связана с дополнительными накладными расходами и другими недостатками; однако он позволяет упаковывать исполняемые файлы любого формата. Метод извлечения во временный файл имеет ряд недостатков:

  • Особые разрешения игнорируются, например Suid.
  • argv [0] не будет иметь смысла.
  • Несколько запущенных экземпляров исполняемого файла не могут использовать общие сегменты.

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

Поддерживаемые форматы

UPX поддерживает следующие форматы:[8]

UPX делает нет в настоящее время поддерживает PE файлы, содержащие CIL код, предназначенный для работы на .NET Framework.

Примечания

  1. ^ а б c Для целей DOS UPX поддерживает специальную опцию -8086 чтобы заставить встроенный декомпрессор стать совместимым с 8088 /8086 процессоры, так что сжатые файлы можно запускать и распаковывать даже на самых ранних ПК, работающих под DOS.
  2. ^ Средство сжатия файлов DOS .COM-стиля может использоваться также для сжатия других двоичных исполняемых файлов. Немного FreeDOS и EDR-DOS Файлы ядра, как известно, сжимаются таким образом.
  3. ^ Средство сжатия файлов в стиле DOS .COM может использоваться также для сжатия неисполняемых двоичных файлов данных, если драйвер / приложение, использующее эти файлы, было расширено для обнаружения файлов, сжатых UPX, и перехода к встроенному в файл декомпрессору. FreeDOS известно, что это используется для файлов .CPX, файлов шрифтов .CPI, сжатых UPX.

Рекомендации

  1. ^ https://upx.github.io/upx-license.html
  2. ^ а б "Руководство хакера UPX". GitHub.
  3. ^ Марак, Виктор (2015). Основы анализа вредоносных программ Windows. Packt Publishing. п. 188. ISBN  978-1-78528-151-8. Получено 22 ноября, 2015. Такие упаковщики, как Ultimate Packer for Executables (UPX), в большей степени являются компрессорами исполняемых файлов, поскольку основной целью является уменьшение размера, а не обфускация, которая может быть побочным продуктом ...
  4. ^ Бланден, Билл (2013). Руткит-арсенал (Второе изд.). Джонс и Бартлетт Обучение. С. 353–355. ISBN  978-1-4496-2636-5. Получено 22 ноября, 2015. Один из самых распространенных упаковщиков исполняемых файлов - UPX (Ultimate Packer for Execution Packer). Он не только обрабатывает десятки различных исполняемых форматов, но и его исходный код доступен в Интернете.
  5. ^ Маркус Оберхумер. «Библиотека сжатия данных UCL». oberhumer.com.
  6. ^ Маркус Оберхумер. «Библиотека сжатия NRV».
  7. ^ Новости UPX
  8. ^ upx (1) – Linux Общие команды Руководство
  9. ^ http://www.vogons.org/viewtopic.php?t=25997

внешняя ссылка