УПХ
![]() | |
Первоначальный выпуск | 26 мая 1998 г |
---|---|
Стабильная версия | 4.2.2 / 3 января 2024 г |
Репозиторий | |
Написано в | С++ , ассемблер |
Операционная система | Microsoft Windows , Linux , macOS , DOS , Atari TOS |
Платформа | i386 , MIPS , AMD64 , ARM , PowerPC , m68k |
Доступно в | Английский |
Тип | Исполняемое сжатие |
Лицензия | GPL, за исключением сжатых исполняемых файлов, [1] запатентован для алгоритма сжатия в двоичных дистрибутивах [2] |
Веб-сайт | упх |
UPX ( Ultimate Packer for Executables ) — это с открытым исходным кодом, бесплатный упаковщик исполняемых файлов поддерживающий ряд форматов файлов из разных операционных систем. [3] [4]
Сжатие
[ редактировать ]UPX использует алгоритм сжатия данных под названием UCL. [5] который представляет собой реализацию с открытым исходным кодом частей собственной разработки NRV ( Not Really Vanished ). [6] алгоритм. [2]
UCL спроектирован настолько простым, что декомпрессор может быть реализован всего в несколько сотен байтов кода. UCL не требует выделения дополнительной памяти для распаковки, что является значительным преимуществом, которое означает, что исполняемый файл, упакованный в UPX, обычно не требует дополнительной памяти.
UPX (начиная с бета-версии 2.90) может использовать LZMA на большинстве платформ; однако по умолчанию для 16-разрядной версии это отключено из-за низкой скорости распаковки на старых компьютерах (используйте --lzma
чтобы заставить его включиться).
Начиная с версии 3.91, UPX также поддерживает 64-битные (x64) PE- файлы на платформе Windows . [7] В настоящее время эта функция объявлена экспериментальной .
Декомпрессия
[ редактировать ]UPX поддерживает два механизма распаковки: метод на месте и извлечение во временный файл .
Метод «на месте», при котором исполняемый файл распаковывается в память, возможен не на всех поддерживаемых платформах. Его преимущество состоит в том, что он более эффективен с точки зрения памяти и что среда, настроенная ОС, остается правильной.
Остальное использует извлечение во временный файл. Эта процедура связана с дополнительными накладными расходами и другими недостатками; однако он позволяет упаковывать любой формат исполняемого файла. Метод извлечения во временный файл имеет ряд недостатков:
- Специальные разрешения игнорируются, например suid .
argv[0]
не будет иметь смысла.- Несколько запущенных экземпляров исполняемого файла не могут использовать общие сегменты.
Немодифицированная упаковка UPX часто обнаруживается и распаковывается антивирусными программными сканерами. UPX также имеет встроенную функцию распаковки немодифицированных исполняемых файлов, упакованных сам с собой.
Поддерживаемые форматы
[ редактировать ]UPX поддерживает следующие форматы: [8]
- Портативный исполняемый файл (файлы PE, EXE и DLL ):
- Исполняемые файлы COFF , используемые DJGPP2
- формат a.out , BSD i386 (удален)
- Необработанные файлы 8086/DOS: [номер 1]
- Watcom / LE (используется DOS4G , PMODE/W, DOS32A и CauseWay ) [ нужна ссылка ]
- TMT/adam (сгенерированный компилятором TMT Pascal)
- Атари/ТОС
- Ядро Linux , i386, x86-64 и ARM
- Linux Формат исполняемых и связываемых файлов , i386, x86-64 , ARM , PowerPC , MIPS
- PlayStation 1 /EXE (MIPS R3000)
- Дарвин Mach-O , ppc32, i386 и x86-64
UPX в настоящее время не поддерживает PE- файлы, содержащие код CIL, предназначенный для запуска в .NET Framework .
Примечания
[ редактировать ]- ^ Перейти обратно: а б с Для целей DOS UPX поддерживает специальную опцию.
-8086
чтобы заставить встроенный распаковщик стать совместимым с 8088/8086 процессорами . , чтобы сжатые файлы можно было запускать и распаковывать даже на самых ранних компьютерах под управлением DOS - ^ Возможность сжатия файлов в стиле DOS .COM можно использовать также для сжатия других двоичных исполняемых файлов. некоторые файлы ядра FreeDOS и EDR-DOS сжимаются таким образом с помощью UPX. Известно, что
- ^ Возможность сжатия файлов в стиле DOS .COM можно использовать также для сжатия неисполняемых файлов двоичных данных , если драйвер/приложение, использующее эти файлы, было улучшено для обнаружения файлов, сжатых UPX, и перехода к декомпрессору, встроенному в файл. . FreeDOS использует это для файлов .CPX и файлов шрифтов .CPI, сжатых UPX. Известно, что
Ссылки
[ редактировать ]- ^ «Лицензионное соглашение ЮПХ» . Архивировано из оригинала 12 марта 2016 г. Проверено 14 сентября 2016 г.
- ^ Перейти обратно: а б «Руководство хакера UPX» . Гитхаб . 19 февраля 2022 года. Архивировано из оригинала 14 мая 2022 года . Проверено 14 сентября 2016 г.
- ^ Марак, Виктор (2015). Основы анализа вредоносных программ для Windows . Пакт Паблишинг. п. 188. ИСБН 978-1-78528-151-8 . Архивировано из оригинала 14 мая 2022 года . Проверено 22 ноября 2015 г.
Упаковщики, такие как Ultimate Packer for Executables (UPX), скорее являются компрессорами исполняемых файлов, поскольку основной целью является уменьшение размера, а не запутывание, которое может быть побочным продуктом...
- ^ Бланден, Билл (2013). Руткитный арсенал (второе изд.). Джонс и Бартлетт Обучение. стр. 353–355. ISBN 978-1-4496-2636-5 . Архивировано из оригинала 14 мая 2022 года . Проверено 22 ноября 2015 г.
Одним из наиболее распространенных упаковщиков исполняемых файлов является UPX (Ultimate Packer для исполняемых файлов). Он не только поддерживает десятки различных форматов исполняемых файлов, но и его исходный код доступен в Интернете.
- ^ Маркус Оберхумер. «Библиотека сжатия данных UCL» . oberhumer.com . Архивировано из оригинала 28 июня 2024 г. Проверено 11 января 2022 г.
- ^ Маркус Оберхумер. «Библиотека сжатия NRV» . Архивировано из оригинала 9 сентября 2012 года.
- ^ «Новости ЮПХ» . Архивировано из оригинала 4 января 2018 г. Проверено 14 сентября 2016 г.
- ^ Linux по основным командам Руководство –
- ^ "dos расширитель rtm32 - формат файла заглушки?\ВОГОНС" . Архивировано из оригинала 11 января 2022 г. Проверено 11 января 2022 г.