Re[3]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    подписка   модер. 
От: gear nuke 
Дата: 26.12.05 12:14
Оценка:4 (1) +1
Здравствуйте, bazilxp, Вы писали:

B>Так с флагом пожайлуста поподробнее, исправлю в следующей версии ....


Заголовок IMAGE_OPTIONAL_HEADER, поле Subsystem. Значения IMAGE_SUBSYSTEM_WINDOWS_GUI или IMAGE_SUBSYSTEM_WINDOWS_CUI

B>Где почитать про это?


В официальной документации по формату MS COFF здесь.


Ну и заодно:
NET 1.1 и 2.0 скорее всего так же можно определить програмным образом из пакера. Каким образом не знаю, не интересовался, но системный загрузчик как-то это делает.
Ключик -i лишний. Пакер _обязан_ определять, упаковани ли им файл или нет. Если файл существует и непакован, очевидно, это входной файл.
-o можно сделать опциональным, немного эвристики поможет определить, что 2е имя — это выходной файл. Хотя я бы делал для первого backup, а 2й сохранял под тем же именем. Тогда можно и Shell Extension прикрутить и паковать мышкой, без консоли. По умолчанию же наверняка выбирается максимальная степень сжатия (да и зачем нужны другие?)
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: gear nuke 
Дата: 26.12.05 11:25
Оценка:1 (1) +1
Здравствуйте, bazilxp, Вы писали:

B>Ключи к программе

B> ключ -sc указывает что исходное приложение Console EXE
B> ключ -sc указывает что исходное приложение Windows EXE

А в чём их смысл?
Есть же соответствующий флаг в PE заголовке
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[3]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: fddima 
Дата: 26.12.05 11:46
Оценка:1 (1) +1
Здравствуйте, bazilxp, Вы писали:

B>Так с флагом пожайлуста поподробнее ,исправлю в следующей версии ....

B>Где почитать про это?
Дык.... MSDN / Portable Executable file format, Win32
IMAGE_OPTIONAL_HEADER — WORD Subsystem
... << RSDN@Home 1.2.0 alpha rev. 618>>
.NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: bazilxp 
Дата: 26.12.05 09:56
.NET упаковщик уменьшение размера исполняемых файлов

Предлагаю вашему вниманию версию 1.0 Beta.
Первая официальная версия...

программа доступна с интернет страницы http://codebelt.xpbit.com/download.php
Доступны исполняемые файлы для .NET 1.1 , .NET 2.0

Возможности программы позволяет упаковывать исполняемые файлы .NET версии 1.1 , 2.0

Ключи к программе
ключ -sc указывает что исходное приложение Console EXE
ключ -sc указывает что исходное приложение Windows EXE
ключ -v1 Для версии 1.1
ключ -v2 Для версии 2.0
ключ -1 Метод сжатия 1
ключ -2 Метод сжатия 1
ключ -3 Метод сжатия 1
ключ -i входной файл
ключ -o выходной файл

ключ -email Отправить e-mail автору

Поддерживает 3 метода сжатия

1. Минимальный коэффициент сжатия
2. Средний коэффициент сжатия
3. Лучший коэффициент сжатия

Примеры использования

Упаковка исполняемого файла 1.exe (консольное .net 1.1 приложение)

codebelt -3 -sc -v1 -i 1.exe
Тоже самое но выходный файлу 1packed.exe
codebelt -3 -sc -v1 -i 1.exe -o 1packed.exe

Упаковка исполняемого файла 2.exe (windows .net 1.1 приложение)
codebelt -3 -sw -v1 -i 2.exe
Тоже самое но выходный файлу 2packed.exe
codebelt -3 -sc -v1 -i 1.exe -o 2packed.exe


Упаковка исполняемого файла 3.exe (консольное .net 2.0 приложение)

codebelt -3 -sc -v2 -i 3.exe
Тоже самое но выходный файлу 3packed.exe
codebelt -3 -sc -v2 -i 3.exe -o 3packed.exe


Все предложения и пожелания о работе программы рад услышать на e-mail info@xpbit.com
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: lozzy 
Дата: 26.12.05 10:17
Здравствуйте, bazilxp, Вы писали:

B>.NET упаковщик уменьшение размера исполняемых файлов

А зачем, собственно? В чем бенефит?
Re[2]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: bazilxp 
Дата: 26.12.05 11:31
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, bazilxp, Вы писали:


B>>Ключи к программе

B>> ключ -sc указывает что исходное приложение Console EXE
B>> ключ -sc указывает что исходное приложение Windows EXE

GN>А в чём их смысл?

GN>Есть же соответствующий флаг в PE заголовке
Так с флагом пожайлуста поподробнее ,исправлю в следующей версии ....
Где почитать про это?
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: Аноним 461 
Дата: 26.12.05 12:34
для 1.1 архив битый?..


B>Все предложения и пожелания о работе программы рад услышать на e-mail info@xpbit.com
Re[2]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: lozzy 
Дата: 26.12.05 13:20
Здравствуйте, lozzy, Вы писали:

B>>.NET упаковщик уменьшение размера исполняемых файлов

L>А зачем, собственно? В чем бенефит?
Раз ответа на вопрос не последовало, то наверное я неясно выразил мысль. Итак, попытка номер два: в чем бенефит сжатия мэнэджэд кода? Кому и для чего это надо? Есть ли какие-либо дополнительные функции кроме сжатия?

Мое глубокое ИМХО — сжатие сейчас актуально только для передачи по сети, да и то не всегда. Размер же программы на диске, по моему, вообще мало кого волнует. Ну пожму я софтину, ну станет она 1 Мб вместо двух — кто от этого выиграет? Вот если бы сжатие сопровождалось кодированием и поддерживался бы не один пароль, а несколько (а.к.а. ключик ) то это было бы совсем другое дело. А так Любой инсталлятор неплохо жмет.
Re[4]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: bazilxp 
Дата: 27.12.05 00:38
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, bazilxp, Вы писали:


GN>Заголовок IMAGE_OPTIONAL_HEADER, поле Subsystem. Значения IMAGE_SUBSYSTEM_WINDOWS_GUI или IMAGE_SUBSYSTEM_WINDOWS_CUI

Это определил

GN>Ну и заодно:

GN>NET 1.1 и 2.0 скорее всего так же можно определить програмным образом из пакера. Каким образом не знаю, не интересовался, но системный загрузчик как-то это делает.
Разобрался определяет packer тип файла,
по поводу CLR header нашел определение в файле "CorHdr.h" ..

позицию определить очень легко

для MC++ все по другому у меня не получилось их упаковывать


для C# /VB / J# приложений

DOS HEADER
_dos_header.e_lfanew -> PE HEADER

PE HEADER-> OptionalHeader.SizeOfHeaders

следующая секция OptionalHeader.SizeOfHeaders + 8
для СOR20HEADER следующая структура
        struct _COR20HEADER
        {
            public uint       cb;              
            public ushort     MajorRuntimeVersion;
            public ushort     MinorRuntimeVersion;
        }

Для .NET 1.1
_cor_header.cb==0x48
_cor_header.MajorRuntimeVersion==2
_cor_header.MinorRuntimeVersion==0

Для .NET 2.0
_cor_header.cb==0x48
_cor_header.MajorRuntimeVersion==2
_cor_header.MinorRuntimeVersion==5



GN>Ключик -i лишний. Пакер _обязан_ определять, упаковани ли им файл или нет. Если файл существует и непакован, очевидно, это входной файл.

ключик -i устранил

GN>-o можно сделать опциональным, немного эвристики поможет определить, что 2е имя — это выходной файл. Хотя я бы делал для первого backup, а

GN> 2й сохранял под тем же именем.
backup я думаю не стоит делать...
GN>Тогда можно и Shell Extension прикрутить и паковать мышкой, без консоли. По умолчанию же наверняка выбирается максимальная степень сжатия (да и зачем нужны другие?)
Shell extenstion займусь ,тогда и инсталяцию сделаю...

По поводу методов
Eли входной файл к примеру 20kb метод -1 дает сжатие , -2 и -3 будут грамоздки...

Новая версия доступна все там же http://codebelt.xpbit.com/download.php
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re[2]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: bazilxp 
Дата: 27.12.05 00:38
Здравствуйте, <Аноним>, Вы писали:

А>для 1.1 архив битый?..


да походу ,уже исправил и лежит новая версия ..
ключи -i -sw -sc -v1 -v2 более не актуальны....
Добавлено определение формата входного файла.

теперь для сжатия файла достаточно выполнять так
codebelt.exe MyApp.exe -o MyPacked.exe




B>>Все предложения и пожелания о работе программы рад услышать на e-mail info@xpbit.com
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re[3]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: bazilxp 
Дата: 27.12.05 00:38
Здравствуйте, lozzy, Вы писали:

L>Здравствуйте, lozzy, Вы писали:


B>>>.NET упаковщик уменьшение размера исполняемых файлов

L>>А зачем, собственно? В чем бенефит?
L>Раз ответа на вопрос не последовало, то наверное я неясно выразил мысль. Итак, попытка номер два: в чем бенефит сжатия мэнэджэд кода? Кому и L>>для чего это надо? Есть ли какие-либо дополнительные функции кроме сжатия?

Будут модули встраиваемые в процесс работы упаковщика...

L>Мое глубокое ИМХО — сжатие сейчас актуально только для передачи по сети, да и то не всегда. Размер же программы на диске, по моему, вообще мало кого волнует. Ну пожму я софтину, ну станет она 1 Мб вместо двух — кто от этого выиграет? Вот если бы сжатие сопровождалось кодированием и поддерживался бы не один пароль, а несколько (а.к.а. ключик ) то это было бы совсем другое дело. А так Любой инсталлятор неплохо жмет.



Планируется два типа модулей
1) Unmanaged CODE (Обычная DLL с определенным набором функций)
2) Managed code (Assembly сборка )


Еще будут и другие функции .....
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re[4]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: jit 
Дата: 27.12.05 08:54
Здравствуйте, bazilxp, Вы писали:

B>Планируется два типа модулей

B>1) Unmanaged CODE (Обычная DLL с определенным набором функций)

я правильно понял? будете жать в native-код? типа вот этого — http://www.remotesoft.com/salamander/protector.html ??

или вы имеете ввиду, что на выходе будет две dll-ки, одна managed (где пароли, шифрование и прочая защита), другая unmanaged?
Re[5]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: lozzy 
Дата: 27.12.05 09:39
Здравствуйте, jit, Вы писали:

jit>я правильно понял? будете жать в native-код? типа вот этого — http://www.remotesoft.com/salamander/protector.html ??

jit>или вы имеете ввиду, что на выходе будет две dll-ки, одна managed (где пароли, шифрование и прочая защита), другая unmanaged?

Честно говоря, я бы поостерегся вываливать на паблик софтину, защищенную подобным образом. ИМХО (сугубое ИМХО), что такая защита даст сбой и самое хреновое, что будет невозможно определить, где же собственно этот сбой возник.
Re[6]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: bazilxp 
Дата: 27.12.05 10:35
Здравствуйте, lozzy, Вы писали:

L>Здравствуйте, jit, Вы писали:


jit>>я правильно понял? будете жать в native-код? типа вот этого — http://www.remotesoft.com/salamander/protector.html ??

jit>>или вы имеете ввиду, что на выходе будет две dll-ки, одна managed (где пароли, шифрование и прочая защита), другая unmanaged?

L>Честно говоря, я бы поостерегся вываливать на паблик софтину, защищенную подобным образом. ИМХО (сугубое ИМХО), что такая защита даст сбой и самое хреновое, что будет невозможно определить, где же собственно этот сбой возник.


Обычное отраженные сборки ,себя виду весьма предсказуемо....
и говорят в большом сообщении об ошибке где же сбойнуло...
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re[7]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: lozzy 
Дата: 27.12.05 11:12
Здравствуйте, bazilxp, Вы писали:

L>>Честно говоря, я бы поостерегся вываливать на паблик софтину, защищенную подобным образом. ИМХО (сугубое ИМХО), что такая защита даст сбой и самое хреновое, что будет невозможно определить, где же собственно этот сбой возник.


B>Обычное отраженные сборки ,себя виду весьма предсказуемо....

B>и говорят в большом сообщении об ошибке где же сбойнуло...

А у тебя русский язык родной или ты переводишь транслятором?
Re[8]: .NET упаковщик уменьшение размера исполняемых файлов в избранное  новое    модер. 
От: bazilxp 
Дата: 27.12.05 11:27
Здравствуйте, lozzy, Вы писали:

L>Здравствуйте, bazilxp, Вы писали:


L>>>Честно говоря, я бы поостерегся вываливать на паблик софтину, защищенную подобным образом. ИМХО (сугубое ИМХО), что такая защита даст сбой и самое хреновое, что будет невозможно определить, где же собственно этот сбой возник.


B>>Обычное отраженные сборки ,себя виду весьма предсказуемо....

B>>и говорят в большом сообщении об ошибке где же сбойнуло...

L>А у тебя русский язык родной или ты переводишь транслятором?


перевожу транслятором ...
... << RSDN@Home 1.2.0 alpha rev. 618>>