The Ultimate Packer for eXecutables

The Ultimate Packer for eXecutables
UPX
the Ultimate Packer for eXecutables
Тип Упаковка исполняемых файлов
Написана на C++, Ассемблер
ОС Microsoft Windows, DOS, 27 апреля 2008
Лицензия GNU GPL
Сайт upx.sf.net

UPX (the Ultimate Packer for eXecutables) — упаковщик исполняемых файлов, поддерживающий несколько различных платформ и форматов файлов. Является свободным и открытым программным обеспечением, и распространяется по лицензии GNU GPL.

Содержание

Описание

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

Преимущества и недостатки

Упаковка исполняемого файла позволяет уменьшить занимаемое программным обеспечением место (что может быть критично в случае передачи через сети или выпуске ПО на носителе ограниченной ёмкости).

Использование сегментов в памяти (в операционных системах Windows) не позволяет операционной системе высвобождать сегменты исполняемого кода без выгрузки содержимого в файл подкачки (что, фактически, увеличивает требования программы к оперативной памяти). Некоторые программы не способны работать в сжатом виде, так как используют малодокументированные (или недокументированные) возможности операционной системы по работе с исполняемыми файлами. В случае распаковки во временный файл (unix-подобные системы) программа теряет возможность использовать argv[0], статус suid бита игнорируется.

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

Используемые алгоритмы

UPX использует алгоритм сжатия без потерь, называющийся UCL (свободная реализация алгоритма NRV (англ. Not Really Vanished).

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

Следующая значительная версия UPX (3.0) также использует алгоритм

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

Практическое использование

В ранних версиях SFX-модули были упакованы UPX. Авторы вирусов используют упаковщики исполняемых файлов для маскировки вирусов от антивирусов.

Ссылки

Программы для сжатия данных Сжатие видео
(Сравнение)



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "The Ultimate Packer for eXecutables" в других словарях:

  • UPX — Infobox Software name = UPX the Ultimate Packer for eXecutables caption = collapsible = author = developer = released = May 26, 1998 latest release version = 3.03 latest release date = April 27, 2008 latest preview version = latest preview date …   Wikipedia

  • UPX — the Ultimate Packer for eXecutables Тип Упаковка исполняемых файлов Написана на C++, Ассемблер Операционная система Microsoft Windows, Linux, MacOS, DOS, Atari Первый выпуск 26 мая 1998 год …   Википедия

  • UPX — Entwickler Markus F.X.J. Oberhumer, László Molnár John F. Reiser Aktuelle Version 3.07 (8. September 2010) Betriebssystem Windows, Linux, BSD, DOS, Atari Katego …   Deutsch Wikipedia

  • NRV — may stand for: New Revised Version (or New Revised Standard Version), an edition of the Christian Bible. Nintendo Revolution, an early codename for Nintendo s Wii New River Valley, a region located in the Eastern United States. Net Realizable… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»