Сжатие exe и DLL

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Yura_ua
Сообщения: 63
Зарегистрирован: 07 дек 2006, 17:52

Я пользуюсь програмкой ASPack. Работает она примерно так: сначала весь код программы сжимается архиватором.После этого в конец сжатого кода добавляется код разархиватора, который будет программу разжимать обратно. И в самом конце ASPack изменяет заголовок исполняемого файла так, чтобы при старте сначала запускался разархиватор.
Можно ли отобразить процес разжатия кода с помощью ProgressBar?
Аватара пользователя
SergeyS
Сообщения: 196
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

А зачем вообще сжимать программы? Я читал ряд тестов проделанных на подобных программах (в частности использовали Excel и Word), так уменьшение программы на диске на 10Мб приводит к значительному увеличению занимаемой памяти в оперативке. Точных цифр не скажу, но весьма существенно.
Что тебе дороже, 1Мб диска или 1Мб оперативки?
Yura_ua
Сообщения: 63
Зарегистрирован: 07 дек 2006, 17:52

Больше памяти в оперативке занимается только пока зжатая прога разжимается, на что уходит не так уж много времени. Если exe-шник весит пару метров, то сжать его на 30-70% очень даже полезно.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):Можно ли отобразить процес разжатия кода с помощью ProgressBar?
для этого нужно обладать информацией, на какой стадии находится процесс распаковки. Думаю кроме самого ASPack никто тебе ее не даст :-)
Еще как варианты:
- Пошариться по декодеру ASPack (а сделать это можно любым дебагером) и найти местечко, где, хотя-бы, берется кусочек данных для распаковки. Где-нить там, убрав ненужные nop или еще что впихнуть вызов API SendMessage (байт 25 понадобиться) с параметром HWND_BROADCAST и в каком нибудь процессе ловить данные и рисовать ProgressBar.
- Подвинуть ASPack и впихнуть туда свой код с созданием формы и прогрессбара, из него вызывать ASPack, в котором есть вызов твоей функции отрисовки (6 байт всего)
- Найти декодер ASPack и юзать как утилу с параметрами в виде пути к файлу exe. Вывод перенаправить в память и следить - что он там пишет - обычно прогресс выводят все утилы.
В итоге: Можно все - но стоит ли оно того?
It's a long way to the top if you wanna rock'n'roll
Лелик_1044
Сообщения: 340
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

Yura_ua писал(а):Больше памяти в оперативке занимается только пока зжатая прога разжимается, на что уходит не так уж много времени. Если exe-шник весит пару метров, то сжать его на 30-70% очень даже полезно.
А зачем тогда тебе прогресс бар если она быстро разжимается? Это лишнее время и гемор

Пользуюсьпрогой довольно давно, но как то не задумывался над этим запускается все быстро и четко работает
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Yura_ua
Сообщения: 63
Зарегистрирован: 07 дек 2006, 17:52

Лелик писал(а):А зачем тогда тебе прогресс бар если она быстро разжимается? Это лишнее время и гемор
Просто мой exe-шник очень большой и проходит 5-6 секунд перед тем как появиться окно. Пользователь, у которого машина намного слабее, может подумать что прога вобще не запускается. Вот мне и нужно, чтобы люди знали, что всё работает, только надо подождать.
Yura_ua
Сообщения: 63
Зарегистрирован: 07 дек 2006, 17:52

somewhere писал(а):Думаю кроме самого ASPack никто тебе ее не даст :-)
Ну ладно. А есть у кого-то исходники программ по сжатию-расжатию?
Аватара пользователя
SergeyS
Сообщения: 196
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

&quot писал(а):Больше памяти в оперативке занимается только пока зжатая прога разжимается, на что уходит не так уж много времени. Если exe-шник весит пару метров, то сжать его на 30-70% очень даже полезно.
Пользователь, у которого машина намного слабее, может подумать что прога вобще не запускается
Почитай информацию здесь, как раз про твой случай:
http://www.citforum.ru/book/cook/exepack.shtml
http://www.podgoretsky.com/ftp/Docs/Mis ... ePack.html
Ответить