Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2016, 11:15   #1
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию PE Tool — продвинутый вариант StripReloc

Кто озадачивался размером exe-файлов программ на Delphi, наверняка знает про утилиту StripReloc и даже пользовался ею. Но перемещаемые символы — не единственная избыточная информация в exe-файле, можно сэкономить немного еще. Кроме того, по исходнику StripReloc можно видеть, что она не пересобирает файл, а просто находит и обнуляет секцию перемещаемых символов.

PE Tool — утилита пересборки exe-файлов, умеющая проделывать следующие оптимизации:
  • Уменьшать размер заголовков PE за счет сокращения неиспользуемых записей каталога данных.
  • Находить и вырезать отладочную информацию, прикрепленные данные, пустые секции и секции без ссылок на них.
  • Находить и вырезать перемещаемые символы и секцию экспорта из exe-файлов.
  • Удалять секции, имена которых заданы ключом -dropsect.
  • Заменять DOS-заглушку любой другой программой DOS, в том числе вытащенной на лету из другого PE-файла. Сама PE Tool имеет заглушку размером 60 байт, которую можно использовать по умолчанию.
  • Обрезать данные секций, попутно вырезая повторяющиеся PADDINGXXPADDING, добавляемые системной функцией UpdateResource при внедрении манифеста.
  • Выравнивать секции на минимально возможное значение — 512 байт.
  • Не выравнивать последнюю секцию при сохранении файла, обрезая его по границе фактических данных.
Дополнительные возможности:
  • Установка требуемой версии ОС — ключ -osver.
  • Установка флага LARGE_ADDRESS_AWARE — ключ -3GB.
Типичный вызов:
Код:
pet -strip -trunc -stub . MyFile.exe -into MyFile-stripped.exe
В процессе обработки выводится подробная статистика (см. скриншот).

Вчера выпустил бету 0.4. Скачать с SourceForge.

За процессом разработки можно наблюдать вживую. Буду рад, если кто-то просветит меня о работоспособности ASLR в настольных версиях Windows.
Изображения
Тип файла: png Stripping-tregsvr.png (1.3 Кб, 259 просмотров)
Vapaamies вне форума Ответить с цитированием
Старый 08.01.2016, 12:17   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

В принципе, использую UPX в связке со StripReloc от Inno.

Вот вам интересные идеи:
1. Добавьте интеграцию в проводник, чтобы можно было из контекстного меню таскать.
2. Добавьте возможность создавать шаблоны параметров, для быстрого их вызова: pet.exe /cfg=realign myexe.exe + тот же проводник

по конфигу, ПО выровняет секции. Тога как обычный вызов, режет ещё и таблицы переадресаций.
Человек_Борща вне форума Ответить с цитированием
Старый 09.01.2016, 00:18   #3
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
1. Добавьте интеграцию в проводник, чтобы можно было из контекстного меню таскать.
Идея интересная, но если займусь Кантором, не обещаю. К тому же, сам не пользуюсь "Проводником", обхожусь командной строкой.

По ссылке вижу, что у вас есть какой-то свой пакет. Попробуйте заменить в нем StripReloc на Pet -- вот и будет вам интеграция. Каждый должен заниматься своим делом.

Преимущества Pet я уже описал, можете сами сравнить выигрыш. Я старался написать утилиту коммерческого качества, не поделку какую-нибудь.

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
2. Добавьте возможность создавать шаблоны параметров, для быстрого их вызова: pet.exe /cfg=realign myexe.exe
В очередь на реализацию стоит параметр -auto, будет или в окончательной версии 0.4, или в 0.4.1.
Vapaamies вне форума Ответить с цитированием
Старый 17.01.2016, 14:47   #4
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
параметр -auto, будет или в окончательной версии 0.4, или в 0.4.1.
Версия 0.4 выходит без параметра -auto. Откладывается на 0.4.1, стало быть.

Еще такой вопрос. Поскольку Pet может заменять заглушку любой DOS-программой, есть желающие делать свои заглушки? Вписывать туда свои имена, например? Я тогда включу в релиз образцы, в котором достаточно вписать свое сообщение, собрать FASM-ом и скормить Pet (в исходниках они лежат под именами WinXXXX.asm).

Идея 'PE Tool PowerPack' была с момента появления программы, но в ее целесообразности продолжаю сомневаться, поэтому ничего дополнительного в архив не включал.
Vapaamies вне форума Ответить с цитированием
Старый 22.01.2016, 01:48   #5
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Выложен кандидат в релиз PE Tool 0.4 (ревизия 638), с исходниками.

Тема о собираемости Pet современными версиями Delphi. Сейчас в архиве cfg- и dof-файлы поправлены, ключ {$T+} включен по умолчанию, так что Pet должна собраться без плясок с бубном.
Vapaamies вне форума Ответить с цитированием
Старый 23.01.2016, 16:20   #6
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Выложенная ранее ревизия 638 стала релизом, ссылка на исходники не изменилась.
Vapaamies вне форума Ответить с цитированием
Старый 30.01.2016, 19:35   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Вышла версия PE Tool 0.4.1, с исходниками. Это выпуск с исправлением ошибок.
Vapaamies вне форума Ответить с цитированием
Старый 10.04.2016, 13:14   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Как оно обходится с DLL? Релоки же нельзя из DLL резать.
Человек_Борща вне форума Ответить с цитированием
Старый 10.04.2016, 14:19   #9
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Не режет.
Vapaamies вне форума Ответить с цитированием
Старый 03.08.2016, 06:12   #10
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Некоторое время назад вышла PE Tool 0.5 с поддержкой ASLR, при включении которого перемещаемые символы из EXE-файлов не вырезаются.
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Палитра компонентов (Tool Palette) C++++ Помощь студентам 0 14.06.2014 20:32
Tool Bar Deacon JavaScript, Ajax 0 22.10.2010 03:11
Продвинутый роутер OCTAGRAM Компьютерное железо 4 26.08.2010 11:00
research tool cppta Общие вопросы по Java, Java SE, Kotlin 1 05.03.2010 16:40
Окно Tool Palette bmb_66 Общие вопросы Delphi 0 01.05.2009 19:20