Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

CTPAX-X _ Программы _ StripReloc 1.13

Автор: -=CHE@TER=- May 29 2007, 07:35

Наверное, все уже ей пользуются, но всё-же...

Есть такая программа от автора знаменитого InnoSetup: http://www.jrsoftware.org/striprlc.php.
Она убирает из .EXE файла relocation секцию (".reloc"), тем самым уменьшает его размер.
Для программ на Delphi очень архиважная и полезная вещь - уменьшить размер готового .EXE'шника (полезно сделать перед упаковкой UPX'ом).
Подробнее читайте по приведённой выше ссылке на странице программы.

Программа на Delphi 7:

CODE
Begin
End.

.EXE занимает - 13824 байта.
После того, как по ней StripReloc проехался - 12800
Итого: чистый 1 Кб "довеска".
Естественно, что чем больше программа, тем и "довесок" будет больше.

Я использую так:
StripReloc.exe /B /C filename.exe

Автор: Xplorer Jun 4 2007, 16:42

QUOTE(-=CHE@TER=- @ May 29 2007, 11:35 AM) *
Она убирает из .EXE файла relocation секцию (".reloc"), тем самым уменьшает его размер.
Для программ на Delphi очень архиважная и полезная вещь - уменьшить размер готового .EXE'шника (полезно сделать перед упаковкой UPX'ом).

UPX по умолчанию для PE EXE-файлов сам удаляет релоки.

Автор: -=CHE@TER=- Jun 4 2007, 20:55

QUOTE(Xplorer @ Jun 4 2007, 04:42 PM) *
UPX по умолчанию для PE EXE-файлов сам удаляет релоки.
Хех, не тут-то было.
Такая программа на Delphi 7:
CODE
Begin
End.

Компилируем. Получаем .EXE файл размером 13824 байт.
1) Натравливаем на него StripReloc и пакуем/распаковываем при помощи UPX 3.00.
file.exe (13824)
StripReloc.exe /B /C file.exe (12800)
upx -9 file.exe (8704)
upx -d file.exe (12800)
Получаем те же 12800 байт.

2) Поступаем по другому - не натравливаем на него StripReloc, а сразу жмём:
file.exe (13824)
upx -9 file.exe (8704)
upx -d file.exe (13824)

Т.е. Reloc'и то он стрипает (скорее, зануляет), но вот размер остаётся тем же. Будет ли размер такой же или выростет на больших файлах - не знаю (сдаётся мне он вообще в упакованный файл ничего об Reloc не пишет) и ещё вопрос - будет ли он больше в оперативной памяти занимать или нет? И всё-же при распакованном файле разница чувствуется (*улыбается*).