4k Demo.

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 31.10.2007 (Ср) 10:34

AGP
|( () ( T |/| |( задал правильный вопрос, было бы неплохо, если бы ты описал процесс урезания файлов, как руководство для чайников.
На счет миди - шестнадцатеричной цифры не просто мало, а очень мало, во первых, в мелодии может быть значительно больший скачек, чем на -8..+7, во вторых есть паузы, в третьих - полифония (одновременно звучат несколько нот). Еще желательно указывать смену инструмента, громкость ноты, да много еще параметров.

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 01.11.2007 (Чт) 19:14

[TR] Новый рекорд топика 3180 байт.
От AGP я исходников не дождался, по этому пришлось со звуком разбираться самому.
Mikle, я бы не стал утверждать что я чайник в урезании файлов (если это конечно был камень в мой огород), Я просто хотел узнать каким софтом он пользовался. Врятли он урезал exe-шник в ручную. И в батник сжимал явно не через makecab или dropper.
У вас нет доступа для просмотра вложений в этом сообщении.
С=[::::::::::> ™ e398wallpapers.narod.ru

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 01.11.2007 (Чт) 22:15

Статья: Процесс урезания EXE файлов, написанных на VB, для чайников.

Начну с вступления. Зачем вообще сжимать exe-шники? Причин несколько. Для некоторых пользователей просто привлекательней маленький размер программы, другим выгодней качать с Интернета, особенно тем кто через GPRS (как раз я токовым и являюсь). Для вирусмейкеров, это вообще камень преткновения, также как и для демомейкеров (в соответствующей категории, 4к,64к,512в и тому подобных). Но упаковка исполняемых файлов не как не связана с экономиям дискового пространства, потому что это бред. Как приводился, на одном форуме, пример: если HDD на 160Gb то ужав файл на 160b, можно сэкономить 0,00….01% места на винте..:)
Варианты упаковки.
1. Скачать программу сжатия PE файлов, и воспользоваться ей.
Если Вы, ни разу не пользовались такими программами, то скорей всего зададите вопрос: А какую выбрать? И на этот вопрос ни кто Вам однозначно не ответит. Так что я отвечу многозначно. Во-первых, определитесь для чего вы хотите сжать файл.
-Если Вы хотите защитить программу от взлома, то либо найдите пакер к которому нет распаковщика (этот подход защитит, разве что от любопытных пользователей, которые любят в ресурсах копаться), на сколько я знаю к MEW вроде нет, либо воспользуйтесь протектором, это проги специально заточенные под это.
-Если просто сжать (не максимально), так просто, чтоб красиво выглядела, то воспользуйтесь UPX последней версией (бесплатная, удобная софтинка).
-Если сжать максимально (в EXE формат), то я посоветую либо MEW, либо WinUpack, у обоих есть графические оболочки, что в свою очередь очень упрощает работу с ними. Также есть Upack Optimizer (UPO), это оптимизатор для WinUpack, он перебирает настройки пакера, и выдаёт, при каких настройках он сжимает максимально (для каждого файла эти настройки разные). Так что я посоветую такой алгоритм действий: Пихаем нужный exe-шник в UPO, смотрим какой размер минимальный (запоминаем :), затем сжимаем утилитой MEW, сравниваем, и пакуем тем, что лучше. (Примечание: если в MEW убрать галочку с чека “Win9x combatibility”, можно сэкономить пару байт)
-Если Вы хотите минимизировать ваш EXE максимально-максимально, и вы боритесь за каждый байт, и вам всё ровно в каком он формате, ли ж бы запускался двойным щелчком, и когда кажется что вы уже сжали его как только можно, Вы скидываете ещё один байт, и рады... То идущий ниже текст для вас.
2. Здесь пойдет речь о минимизации программы, написанной на VB.
Как все знают, в Basic-е не обязательно объявлять переменные, при компиляции они автоматически назначаются Variant, и занимают 8 байт (если не ошибаюсь), чтобы сделать объявление переменных обязательным напишите в верху кода “ Option Explicit ”.
Объявляйте переменные такими типами которые нужны. Например, если i в ходе программы меняется от 13 до 666 (целочисленно) то не стоит обзывать его Long-ом.
Дробные константы следует писать со знаком «!» в конце. x * 0.5 -> x * 0.5!
Это фундаментальные методы уменьшения программного кода. Так же оптимизируйте алгоритмы используемые Вами.
Компилируйте в P-Code.
Теперь когда готов exe-шник, пихаем его в Resource Hacker (или любую подобную программу), удаляем все ресурсы, и сохраняем. Затем обрабатываем его утилитой PE Optimizer (либо другой утилитой, которая вырезает релоки).
А теперь начинается самое интересное, работа топором :). Открываем WinHEX (в общем шеснадцетиричный редактор) Кидаем туда наш файлик, и поехали…
Если длинна DOS заголовок (это то что находиться между началом файла и символами “PE”) больше 59 байт то, начатая с 3 байта и до “PE”, исключая 59 байт, забиваем нулями (не символами «0», а нулевыми байтами), не трогаем “MZ”, 59 байт и “PE” (отсчёт байтов начинается с одного)
“.text”, ”.data”, “.rsrc” – тоже затираем нулями. Ищем строку где будет указан путь к папки с VB, тоже нулями. Находим имена: форм, проекта, модулей, всё в нули.
А теперь если вам дорог каждый байт, то наступает творческая работа… Забиваем какой ни, будь участок нулями, сохраняем, запускаем, закрываем – нет ошибок? – продолжаем. Есть ошибка – отменяем. И так долго и упорно, а главное долго… Вот чего стоит борьба за каждый байт…
Теперь когда Вы, либо мягко говоря устали, либо удалили всё что можно, качаем прогу Dropper v 2.0. Открываем cmd, переходим в папку с dropper-ом , и пишем “dropper /b2 имя exe-шника.exe”. В папки с dropper-ом появиться файл out.bat, запускаем.. работает? Радуемся. Если не работает или не появился вовсе, то идём более сложным путём. Переименовываем наш exe просто в ‘x’. В cmd пишем “makecab x”, (makecab, слово то такое, на слуху:) .В папке появиться новый файлик, меняем его имя на бла-бла.bat, кидаем в WinHEX, дописываем в конце такие hex значения: “0D 0A 0A 65 78 70 61 6E 64 20 25 30 20 2E 78 0A 2E 78 0A 64 65 6C 2E 78”. Сохраняем,… радуемся :)

P.S. Я не утверждаю что приведенный мною способ является лучшем, или вообще целесообразным, но как пишут во многих бесплатных программах: “Не нравиться, не пользуйтесь.” Так же я не утверждаю что приведенные мною программы, являются лучшими.

P.P.S. Это моя первая статья, так что было бы интересно услышать ваше мнение о ней.
|( () ( T |/| |( 2007.
С=[::::::::::> ™ e398wallpapers.narod.ru

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 02.11.2007 (Пт) 10:04

|( () ( T |/| |(
Это я кинул камень в свой огород:)
Просто имелось ввиду описать максимально подробно.

Пред.

Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList