UPX 3.xx, the Ultimate Packer for eXecutables |
Добро пожаловать, гость ( Вход | Регистрация )
UPX 3.xx, the Ultimate Packer for eXecutables |
-=CHE@TER=- |
May 27 2007, 17:58
Сообщение
#1
|
Walter Sullivan Группа: Root Admin Сообщений: 1,355 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 311 раз(а) |
UPX
Вышел UPX 3.00. Всем советую его качать и использовать. Из особенно понравившихся нововведений: 1) Почему-то некоторые .EXE файлы стали лучше жаться (по сравнению с 1.24w (*улыбается*)). Что не может не радовать. 2) Появилась опция "--exact" пакует файл так, что после распаковки ("-d") он в точности байт-в-байт совпадает с тем, что было перед запаковкой (если этот ключ не указать, то файлы оригинальный и распакованный будут во многих байтах различаться). Для интереса сжимал разные программы с и без этого ключа - на сжатии никак не отражается (в сжатом виде одинаково занимают), так что буду его использовать. 3) Появился ещё один мега ключ "--lzma", который для особо толстых .EXE файлов использует алгоритм сжатия LZMA (от 7zip надо полагать). И правда пакует куда лучше, но пригодится только для толстых, от 500 Кб и больше (может и меньше - зависит от файла), программ т.к. на мелких файлах готовый .EXE получится больше, чем если эту опцию не использовать (т.к. в код запакованного .EXE добавляется алгоритм распаковки LZMA, который нехило весит). Ну и, конечно, памяти LZMA для работы потребует больше... В общем, все кто ещё не разжился 3-ей версией - вперёд! а) Для обычных файлов делаем так: upx -9 --exact filename.exe б) А для особо толстых файлов так: upx -9 --lzma --exact filename.exe Насчёт LZMA: .EXE файл от простой программы на Delphi 7 CODE Begin End. Занимает 12800 байт (со стрипнутыми Reloc'ами). Обычное сжатие сделает из него 8704 байта. LZMA сделает 10752 байта. Выводы делайте сами - чистых 2 Кб довеска при LZMA. Так что тренируйтесь лучше на толстых файлах. (*улыбается*) |
-=CHE@TER=- |
May 31 2007, 15:22
Сообщение
#2
|
Walter Sullivan Группа: Root Admin Сообщений: 1,355 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 311 раз(а) |
С UPX 3.00 вышла такая шткуа:
Пакую им .EXE файл от Scorcher DEMO с опцией "--exact", но после распаковки начиная с 00092A10 до 00098113 включительно, в 800-ах байтах есть различия. Так что "--exact" тут получается не полный. Создал у них отчёт об ошибке. Интересно, что скажут. |
jTommy |
May 31 2007, 16:05
Сообщение
#3
|
Наблюдающий Группа: CTPAX-X Сообщений: 197 Регистрация: 4-February 08 Из: деревня Москва Пользователь №: 6 Спасибо сказали: 19 раз(а) |
|
-=CHE@TER=- |
Jun 2 2007, 13:20
Сообщение
#4
|
Walter Sullivan Группа: Root Admin Сообщений: 1,355 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 311 раз(а) |
Да ладно тебе - это не офтопик.
На самом деле не сжатие с потерями, а сжатие с игнорированием какой-то информации. Т.е., видимо, в UPX записан алгоритм, по которому восстанавливаются какие-то структуры. Другое дело, что Scorcher - старая игра и Windows-версия написана на WATCOM C++, который очень кривой для написания на нём под Windows ("чистый" .EXE без упаковки UPX'ом - только под Windows 9x запускается, иначе говорит, что это вообще не Windows-приложение). Обрати внимание, что расхождение байтов именно в хвосте файла. Похоже на то, что какие-то ресурсы "перепаковываются". На работоспособности, вроде, никак не отражается, но досадно, что изменяет файл, хотя ключ "--exact" и указан. |
Упрощённая версия | Сейчас: 28th April 2024 - 22:24 |