UPX

UPX
UPX
the Ultimate Packer for eXecutables
Тип

Упаковка исполняемых файлов

Написана на

C++, Ассемблер

Операционная система

Microsoft Windows, Linux, MacOS, DOS, Atari

Первый выпуск

26 мая 1998 года

Последняя версия

3.08 (12 декабря 2011 года)

Лицензия

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)).[1]

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

Следующая значительная версия UPX (3.0) также использует алгоритм LZMA на 32/64 битных платформах.

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

  • ARM/PE
  • Atari/tos
  • *BSD/i386
  • djgpp2/COFF
  • dos/com
  • dos/exe
  • dos/sys
  • Linux/i386 a.out
  • Linux/ELF on i386, x86-64, ARM, PowerPC
  • Linux/kernel on i386, x86-64 and ARM
  • Mach-O/ppc32, Mach-O/i386, Mach-O/x64 (кроме скомпилированных Google Go)
  • rtm32/PE
  • tmt/adam
  • PlayStation1/exe
  • watcom/le
  • Win32/PE (исключая файлы, построенные на .NET Framework)

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

В ранних версиях WinRAR SFX-модули были упакованы UPX.

Примечания

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "UPX" в других словарях:

  • 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

  • UPX — Dernière version 3.04 (27 septembre  …   Wikipédia en Français

  • UPX — es un compresor de ejecutables gratuito, portable y de alto rendimiento. UPX soporta diferentes formatos de ejecutables, incluyendo programas de Windows 95/98/ME/NT/2000/XP/VISTA y DLLs, programas de DOS, Linux, etc. Contenido 1 Desempaquetando… …   Wikipedia Español

  • 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 Deutschland GmbH — UPX Deutschland GmbH,   Telefonanbieter …   Universal-Lexikon

  • UPX — Ultimate Packer for eXecutables (Computing » Software) * Unapix Entertainment, Inc. (Business » AMEX Symbols) …   Abbreviations dictionary

  • UPX — abbr. Ultimate Packer for Executables …   Dictionary of abbreviations

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

  • EXE-Packer — Unter Kompression ausführbarer Programmdateien versteht man die Kompression der Programmdaten einer ausführbaren Datei und die Kombination der komprimierten Daten mit einer Dekompressionsroutine zu einer einzigen ausführbaren Datei. Die… …   Deutsch Wikipedia

  • Exe-Packer — Unter Kompression ausführbarer Programmdateien versteht man die Kompression der Programmdaten einer ausführbaren Datei und die Kombination der komprimierten Daten mit einer Dekompressionsroutine zu einer einzigen ausführbaren Datei. Die… …   Deutsch Wikipedia


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

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