Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.24;
Скачать: CL | DM;

Вниз

Мастера подскажите где скачать простой и хороший пакер для exe   Найти похожие ветки 

 
RWolf ©   (2009-11-17 11:43) [40]


> Типа того, что программа при распаковке должна полностью
> грузиться в память.

разве нет?

> Даже проверить скорость запуска и занимаемую память у конкретной
> программы спорящие сами не берутся,

скорость запуска будет зависеть от размера программы, производительности дисковой подсистемы, навороченности алгоритма сжатия. При каких-то сочетаниях может быть и выше несжатого варианта, конечно.
Память запакованная программа будет напрягать больше всегда. Нельзя распаковать исполняемый файл частично.


 
palva ©   (2009-11-17 12:13) [41]


> Нельзя распаковать исполняемый файл частично.

Я не берусь с этим спорить. Не знаю просто. Могу только привести результат эксперимента.

Вот сейчас я пишу на делфи плюс ADO небольшую программу без всяких конструкторских наворотов. Ее и попробую паковать:
условие    - размер - память
до UPX        870912 8806400
после UPX   323072 9011200
Кстати, UPX мне пришлось скачивать, потому что сам я никогда не пакую и упаковщиков на компьютере нет.


 
Игорь Шевченко ©   (2009-11-17 12:18) [42]

http://www.symantec.com/security_response/writeup.jsp?docid=2003-051915-1012-99

"This threat is written in Borland Delphi and is compressed with UPX. The unpacked size is approximately 808 KB"

писатели от слова худо


 
Smile   (2009-11-17 12:36) [43]

Очень давно ничего не пакую, но всегда предпочтение отдавал Nspack
alc777.com/files/packers/nspack37.rar


 
ZeroDivide ©   (2009-11-17 12:57) [44]

Это было когда-то важно, для интернета... при низких скоростях скачивалось долго, теперь смысла паковать вообще нет, разве что для защиты.


 
AlexDan ©   (2009-11-17 14:24) [45]

> Smile   (17.11.09 12:36) [43]
> Очень давно ничего не пакую, но всегда предпочтение отдавал
> Nspack
> alc777.com/files/packers/nspack37.rar
насколько я понял он и шифрует ехе..? странно что никто не говорит про EXECryptor, правда он платный.


 
Кто б сомневался ©   (2009-11-17 14:33) [46]


> Очень давно ничего не пакую, но всегда предпочтение отдавал
> Nspack


NsPack лучший пакер по сжатию, но с ним не дружат многие антивирусы. UPX надо - с ним дружат все.


> В слове "чуть" все же есть сомнения. Распаковка, очевидно,
>  происходит в памяти, а это значит, что в памяти должны
> находиться и нераспакованный, и распакованный блок. Если
> принять, что паковка бинарника уменьшает его размер в 1,
> 5 раза (что примерно так и есть), то перерасход памяти составит
> около 70%. Это далеко не "чуть".


Запакованный блок потом будет освобожден.


> Мгновенной распаковки, как Вы понимаете, не бывает.
>
>


Даже на слабых компах это занимает меньше полусекунды.


> Но для
> > программ, которые интенсивно "молотят" (вычислительные,
> > например), время распаковки запросто может оказаться смертельно
> > большим. "Смертельно" в том смысле, что программа затормозится
> > настолько, что окажется уже практически бесполезной и
> поэтому
> > никому не нужной.


Товарищ причем здесь время распаковки перед стартом программы, и вычислительный характеристики проги? Вы что то перепутали.


> На диске. Всего лишь на диске, и только лишь на диске. И
> если, как Вы говорите, памяти сейчас у всех достаточно,
> то уж дискового пространства сейчас у всех достаточно тем
> более.


Это отличный мотиватор для юзера. Поверьте мне, он смотрит на размер, и если программа многофункциональна но с малым размером - это вероятней что он купит ее, чем та что с большим размером. Таким образом юзер определяет профессионализм разработчиков.


>  Но, как мы уже выяснили, запакованная программа требует
> больше памяти - значит, у нее меньше шансов оказаться полностью
> закешированной и тогда она уступит в скорости.


В том то и дело что не больше размера образа exe. Так что ничего мы не выяснили.


 
DVM ©   (2009-11-17 14:40) [47]


> Кто б сомневался ©   (17.11.09 14:33) [46]


> Это отличный мотиватор для юзера. Поверьте мне, он смотрит
> на размер, и если программа многофункциональна но с малым
> размером - это вероятней что он купит ее, чем та что с большим
> размером. Таким образом юзер определяет профессионализм
> разработчиков.

Со всем согласен кроме этого. Ну не факт! Вот тут http://delphimaster.info/3-1252166005.htm уже об этом говорили.


 
Игорь Шевченко ©   (2009-11-17 14:59) [48]

Кто б сомневался ©   (17.11.09 14:33) [46]

Про профессионализм - вообще мимо кассы. Профессионализм определяется не по размеру.
Пакуют преимущественно вирусы/трояны или программы, в которых по мнению автора содержатся обалденные торговые секреты. Все остальное - только дополнительные тормоза и засорение swap-файла.


 
Омлет ©   (2009-11-17 15:28) [49]

> Все остальное - только дополнительные тормоза

Тормоза - они в голове. Я уже писал, что скорость запуска запакованной программы даже выше, чем незапакованной.
Это не абсолютное правило, но в моёмм случае это так.


 
Игорь Шевченко ©   (2009-11-17 15:31) [50]

Омлет ©   (17.11.09 15:28) [49]


> Тормоза - они в голове


Тормоза - они в системе.


> скорость запуска запакованной программы даже выше, чем незапакованной


что такое "скорость запуска программы" ?


 
Омлет ©   (2009-11-17 15:35) [51]

> что такое "скорость запуска программы" ?

Описался. Не скорость, а время.


 
Leonid Troyanovsky ©   (2009-11-17 15:43) [52]


> Омлет ©   (17.11.09 15:35) [51]

> Описался. Не скорость, а время.

Подскользнулся, упал на вилку.
И так 11 раз подряд.

--
Regards, LVT.


 
Игорь Шевченко ©   (2009-11-17 16:05) [53]


> Не скорость, а время.


Что такое "время запуска программы" ?
Я к чему спрашиваю - я же тоже могу запаковать и посмотреть, например, включить компьютер, запустить незапакованную программу, выключить компьютер, включить, запустить запакованную.
Как определить, что является окончанием запуска ?


 
Anatoly Podgoretsky ©   (2009-11-17 16:08) [54]

> Leonid Troyanovsky  (17.11.2009 15:43:52)  [52]

На пострадавшем было обнаружено 44 дырки.


 
Кто б сомневался ©   (2009-11-17 16:10) [55]


> Игорь Шевченко ©   (17.11.09 16:05) [53]


Любит Шевченко потроллить.

Время запуска - допустим это время от начала запуска проги, до отображения главной формы.


 
Кто б сомневался ©   (2009-11-17 16:10) [56]

Устроит? Тогда  вперед на тесты.


 
Leonid Troyanovsky ©   (2009-11-17 16:13) [57]


> Anatoly Podgoretsky ©   (17.11.09 16:08) [54]

Кста, у Мих.Веллера, в "Легендах Арбата" много подобных
саг про милиционеров.

--
Regards, LVT.


 
Омлет ©   (2009-11-17 16:13) [58]

> [53] Игорь Шевченко ©   (17.11.09 16:05)
> Что такое "время запуска программы" ?

Издеваетесь? Это время, прошедшее от двойного щелчка по пиктограмме до того, как можно начать работать с приложением (появление главной формы).


 
Leonid Troyanovsky ©   (2009-11-17 16:16) [59]


> Кто б сомневался ©   (17.11.09 16:10) [55]

>  до отображения главной формы.

Отображение - субъективно.
Нужна запись в EventLog.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2009-11-17 16:20) [60]


> Омлет ©   (17.11.09 16:13) [58]

> Издеваетесь? Это время, прошедшее от двойного щелчка по
> пиктограмме до того, как можно начать работать с приложением
> (появление главной формы).

Никаких щелчков!
CreateProcess & WaitForInputIdle.

--
Regards, LVT.


 
Омлет ©   (2009-11-17 16:20) [61]

> [59] Leonid Troyanovsky ©   (17.11.09 16:16)
> Отображение - субъективно.

Так и нужна только субъективная оценка.
Если невооруженным мозгом видна разница во времени, то этого достаточно для выводов.


 
Игорь Шевченко ©   (2009-11-17 16:25) [62]


> Если невооруженным мозгом видна разница во времени, то этого
> достаточно для выводов.


то вооруженным оно тем более будет видно, не так ли ?
поэтому createprocess + waitforinputidle


 
Кто б сомневался ©   (2009-11-17 16:27) [63]


> Отображение - субъективно.
> Нужна запись в EventLog.


Субъективно понятно. Но если время будет больше секунды, это будет заметно. Если разница не заметна значит время оч. небольшое. Сделать программно проверку очень просто, выслать сообщение в OnCreate формы -проге, которая запускала ее.


 
Игорь Шевченко ©   (2009-11-17 16:39) [64]

Собственно, тест:

unit main;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation
uses
 ShellApi;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 StartTime, EndTime: Cardinal;
 sex: SHELLEXECUTEINFO;
begin
 StartTime := GetTickCount;
 FillChar(sex, sizeof(sex), 0);
 sex.cbSize := sizeof(sex);
 sex.fMask := SEE_MASK_NOCLOSEPROCESS;
 sex.Wnd := HWND_DESKTOP;
 sex.lpVerb := "open";
 sex.lpFile := PChar(ExpandFileName(ParamStr(1)));
 ShellExecuteEx(@sex);
 WaitForInputIdle(sex.hProcess, INFINITE);
 EndTime := GetTickCount;
 ShowMessageFmt("%d ticks to run %s", [EndTime - StartTime, ParamStr(1)]);
end;

end.


размер незапакованной программы:  1,261,056 байт. Время запуска 78 тиков
размер запакованной программы: 428,544 байта. Время запуска 157 тиков

это время ВТОРОГО запуска, если что :)


 
Кто б сомневался ©   (2009-11-17 16:46) [65]

Ну вот, 160 мс. чтд. Разве это много?


> это время ВТОРОГО запуска, если что :)


Всмысле? Второй раз запустили запакованную прогу?


 
@!!ex ©   (2009-11-17 16:51) [66]

> [65] Кто б сомневался ©   (17.11.09 16:46)

В смысле винда много чего кэширует и индексирует, поэтому первый запуск может сильно тормозить.
Думаю это имелось ввиду.
и я об этом писал выше. Опмлет правда мой пост благополучно проигнорировал.


 
Игорь Шевченко ©   (2009-11-17 16:54) [67]

Кто б сомневался ©   (17.11.09 16:46) [65]

Каждую запускал по два раза - приведенное время - время второго запуска
Паковал upx версии 2.03w с ключом -7


 
Alx2 ©   (2009-11-17 17:01) [68]


>
> Каждую запускал по два раза - приведенное время - время
> второго запуска


А поочередно или подряд? :)


 
Anatoly Podgoretsky ©   (2009-11-17 17:02) [69]

> @!!ex  (17.11.2009 16:51:06)  [66]

А нафига для измерения времени распаковки, мерять время считывания с диска.
Или задача определить скорость диска?


 
Игорь Шевченко ©   (2009-11-17 17:05) [70]

Alx2 ©   (17.11.09 17:01) [68]


> А поочередно или подряд? :)


без разницы :)


 
Омлет ©   (2009-11-17 17:06) [71]

> [67] Игорь Шевченко ©   (17.11.09 16:54)

Второй запуск не интересен, т.к. всё уже в кэше.
Я проверил. Перезагрузился, замерил без сжатия. Перезагрузился, замерил со сжатием.

Без сжатия (1,67 МБ) - 2562 тиков.
Со сжатием (489 КБ) - 1843 тиков. Упаковщик PECompact v2.98.1, консольная упаковка (параметры по умолчанию).
Разница в 0,7 сек, что и требовалось доказать.

Если смотреть по второму и последующему запуску, то вариант со сжатием отстает на 40-50 тиков, т.к. данные достаются из свопа (который в памяти), а не с диска. Т.е. никаких, так называемых, тормозов не наблюдается.


 
@!!ex ©   (2009-11-17 17:18) [72]


> [71] Омлет ©   (17.11.09 17:06)

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


 
Омлет ©   (2009-11-17 17:23) [73]

> [72] @!!ex ©   (17.11.09 17:18)

Я перезагружался между тестами, dll тут не причем.


 
Омлет ©   (2009-11-17 17:25) [74]

> [72] @!!ex ©   (17.11.09 17:18)

Если запускать сжатый после несжатого без перезагрузки, то сжатый грузится аж на 2 секунды быстрее, а не на 0,7.


 
Игорь Шевченко ©   (2009-11-17 17:27) [75]

Омлет ©   (17.11.09 17:06) [71]

Я тоже проверил с перезагрузками. Сжатый загружается дольше.


 
Кто б сомневался ©   (2009-11-17 17:28) [76]


> Омлет ©   (17.11.09 17:06) [71]


Это надо делать на пустом проекте. Там юзаются только системные длл. Они уже в памяти давно.


 
Игорь Шевченко ©   (2009-11-17 17:30) [77]

Мой проект не использует никаких DLL кроме системных (kernel,user,gdi,advapi,ole), практически все, что используется в любом дельфийском проекте с формами.


 
Омлет ©   (2009-11-17 17:31) [78]

> [75] Игорь Шевченко ©   (17.11.09 17:27)

Поэтому я и посоветовал PECompact2 в [25] :)


 
Игорь Шевченко ©   (2009-11-17 17:35) [79]

Омлет ©   (17.11.09 17:31) [78]

Это не зависит от упаковщика. Это зависит от программы в первую очередь.


 
Омлет ©   (2009-11-17 17:37) [80]

> [79] Игорь Шевченко ©   (17.11.09 17:35)

Как это зависит от программы?



Страницы: 1 2 3 вся ветка

Текущий архив: 2010.01.24;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.012 c
1-1233774692
wolfRAMM
2009-02-04 22:11
2010.01.24
вместо кирилицы - "????"


15-1258670012
Германн
2009-11-20 01:33
2010.01.24
Access violation at address


2-1259683856
SergP
2009-12-01 19:10
2010.01.24
This form of method call only allowed for class methods


15-1258368049
stas
2009-11-16 13:40
2010.01.24
TWebBrowser


15-1258446035
_
2009-11-17 11:20
2010.01.24
Довлоадеры. Какой выбрать?