03. Параметры конфигурации

 

PECompact v2.x - документация
 

 


В расположенной ниже таблице описываются доступные параметры сжатия.

Файлы проектов можно обрабатывать автоматически версией с графическим интерфейсом (GUI), используя приведённые здесь аргументы командной строки. Параметры командной строки, указанные ниже, предназначены только для консольной версии PECompact.

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

Параметр Описание Ключ командной строки Примеры
Разрешить Security Directory Присутствие каталога защитных данных (security data directory) обычно свидетельствует о том, что в файле содержится подпись. Подписывание должно происходить после сжатия, иначе подпись окажется неверной. Данный параметр разрешает сжатие, даже если в результате ранее добавленная подпись будет испорчена. Значение по умолчанию - "No". /AllowSecurityDirectory
или
/Asd
/AllowSecurityDirectory:Yes
/AllowSecurityDirectory:No
/Asd:No
Плагины-кодеки Управляющий кодек - это модуль, обеспечивающий алгоритмы сжатия и распаковки (или кодирования и декодирования) для PECompact. При сжатии можно использовать любое количество кодеков. Последовательность применения кодеков имеет важное значение, при распаковке или декодировании кодеки выполняются в обратном порядке. По умолчанию используется "pec2codec_lzma.dll". /CodecHost
или
/Ch

/CodecHost=pec2codec_ffce.dll
/CodecHost=pec2codec_jcalg1.dll
/CodecHost=pec2codec_aplib.dll
/CodecHost=pec2codec_crc32.dll,pec2codec_lzma.dll
/CodecHost=@mycodecs.lst
/Ch=pec2codec_ffce.dll
 
Проверка целостности кода Проверка целостности кода - это быстрый тест на этапе запуска файла, контролирующий неизменность реконструированного кода. Если требуется полный контроль целостности, то вместо этого ключа следует применять кодек CRC32. Значение по умолчанию - "Yes". Активизация этого параметра увеличивает размер загрузчика на некоторое количество байт. /CodeIntegrityCheck
или
/Cic
/CodeIntegrityCheck=Yes
/CodeIntegrityCheck=No
/Cic=Yes
Сжимать секции экспорта Таблица экспорта определяет символы, открытые для других модулей. Если её перераспределить, она может быть обработана без распаковки модуля. Рекомендуется использовать значение по умолчанию - "Auto". В этом случае секции экспорта исполняемых файлов сжимаются, а секции экспорта DLL и других модулей - нет. /CompressExports
или
/Ce
/CompressExports=Yes
/CompressExports=No
/CompressExports=Auto
/Ce=Auto

Сжимаемые ресурсы

 

Этот параметр позволяет указывать ресурсы, которые должны подвергнуться сжатию. По умолчанию сжимаются все ресурсы, кроме первой группы значков и значков, на которую она ссылается, ресурсов версии и манифеста. Чтобы получить список типов ресурсов, запустите консольную версию PECompact (файл PEC2.exe) без параметров и нажмите клавишу 'R'. /CompressibleRT:@list
или
/CompressibleRT:typename1,typename2,...
или
/CompressibleRT:typeid#1,typeid#2,...
или
/CompressibleRT:namedrsrc1,namedrsrc2

(разрешается использовать сочетания имён, типов, идентификаторов типов и файлов-списков)
/CompressibleRT:@myrsrc.txt
/CompressibleRT:groupicon,version
/CompressibleRT:4,5,1,namedresource,version
Сжимать безопасные ресурсы При выборе "Yes" сжимаются все ресурсы, допускающие сжатие. При выборе "No" все ресурсы остаются несжатыми. Значение по умолчанию - "Yes".
/CompressResources
или
/Cr
 
/CompressResources=Yes
/CompressResources=No
/Cr=Yes
Уровень сжатия
(общие параметры декодера)
Некоторые кодеки допускают изменение уровня сжатия. Чем выше уровень, тем сильнее, но медленнее сжатие. Скорость распаковки от уровня сжатия обычно не зависит.
Исключение составляет кодек LZMA, у которого на разных файлах можно добиться лучшего сжатия при использовании разных уровней сжатия, необязательно максимального. Значение по умолчанию - "7".

/CompressionLevel
или
/Cl
 
/CompressionLevel=1
/CompressionLevel=9
/Cl=8
Тип декодера (общие параметры декодера) 'Быстрый' декодер работает с более высокой скоростью, чем 'компактный', но имеет больший объём. Значение по умолчанию - "Auto", при котором компактные декодеры используются для файлов размером менее 100 Кбайт, а для всех остальных файлов применяются быстрые декодеры. /DecoderType
или
/Dt
/DecoderType=Small
/DecoderType=Fast
/DecoderType=Auto
/Dt=Small
Разрешить защиту памяти До сжатия секции исполняемого файла часто настроены на ограничение доступа по записи к их виртуальной памяти. Активизация этого параметра заставляет PECompact восстанавливать права доступа к виртуальной памяти при запуске файла. По умолчанию права доступа к памяти не восстанавливаются. При использовании этого параметра размер загрузчика увеличивается примерно на 50 байт.
/EnableMemoryProtection
или
/Emp
 
/EnableMemoryProtection=Yes
/EnableMemoryProtection=No
/Emp=No
Плагины-перехватчики API Плагин-перехватчик API может иметь любое количество различных функций. Этот ключ позволяет указать, какие плагины-перехватчики API нужно использовать. Значения по умолчанию нет (перехватчики API не используются). /HooksHost
или
/Hh

/HooksHost=pec2hooks_fastimport.dll
/HooksHost=pec2hooks_fastimport.dll,pec2hooks_morehooks.dll
/HooksHost=@myhooks.lst
 
Сохранять оверлей "Оверлей" - это дополнительные данные, добавляемые в конец некоторых PE-файлов. Иногда эти данные бесполезны и потому не нужны, но иногда они абсолютно необходимы (например, в инсталляторах и самораспаковывающихся архивах). Часто эти данные должны находиться в файле с фиксированным смещением, из-за чего после сжатия исполняемый файл не сможет их обнаружить. /KeepOverlay
или
/Ko
/KeepOverlay
/Ko

Кодек загрузчика
(только консольная версия)
 
Сам загрузчик также сжат, и этот параметр позволяет указать, какой кодек следует использовать для сжатия загрузчика. Значение по умолчанию -
"pec2codec_aplib.dll"
/LoaderCodecHost
или
/Lch
/LoaderCodecHost="pec2codec_brieflz.dll
/LoaderCodecHost="pec2codec_aplib.dll"
Плагин-загрузчик Этот параметр позволяет указать модуль загрузчика (или код-заглушку распаковщика) PECompact. Значение по умолчанию -
"pec2ldr.dll"

/LoaderHost
или
/Lh
 
/LoaderHost="pec2ldr.dll"
Объединять секции Этот параметр определяет, нужно или нет объединять совпадающие, полностью сжимаемые секции. По умолчанию PECompact объединяет такие секции. Выключать этот параметр не рекомендуется, разве только вы занимаетесь отладкой или столкнулись с какими-то проблемами. /MergeSections
или
/Ms
/MergeSections=Yes
/MergeSections=No
/Ms=Yes
Не создавать страховочные копии Если указан этот параметр, при обработке файла PECompact 2 не будет создавать его резервную копию. По умолчанию для всех обрабатываемых файлов создаются страховочные копии.
/NoBackup
или
/Nb
 
/NoBackup
Разрешить повторные  сжатия (одного файла) Если указан этот параметр, PECompact2 будет сжимать даже те файлы, которые уже были сжаты с помощью PECompact или ряда других упаковщиков. По умолчанию уже сжатые файлы пропускаются (не сжимаются).
/MultiCompress
или
/Mc
 
/MultiCompress

Приоритет процесса
 

Данный параметр позволяет указать приоритет, с которым будет выполняться сжатие. Например, при сжатии очень большого файла иногда имеет смысл указать низкий или минимальный приоритет, чтобы одновременно с упаковкой на компьютере можно было выполнять и другую работу. По умолчанию применяется обычный приоритет.
 
/Priority /Priority:idle
/Priority:low
/Priority:high
/Priority:realtime
'Тихий' режим При указании этого параметра PECompact2 сокращает количество выводимой на экран информации. Это может пригодиться, например, при использовании в пакетных файлах. Значение по умолчанию - выключено, т.е. на экран выводится обычный набор сообщений. /Quiet
или
/Q
/Quiet
/Q
Рекурсивная обработка (только для консольной версии) При указании этого параметра PECompact2 будет обрабатывать файлы не только в текущем, но и во всех вложенных каталогах. По умолчанию рекурсия подкаталогов не выполняется. /R /R
Пропускать совместно используемые секции При выборе "Yes" секции, маркированные как общие для разных запущенных копий файла, не сжимаются. При выборе "No" эти секции маркируются как не общие, после чего сжимаются. Если предполагается запускать по нескольку копий файла с общими секциями, или вам требуется, чтобы секции оставались общими, у этого параметра следует выбрать значение "Yes". Значение по умолчанию - "No".
/SkipSharedSections
или
/Ssh
 
/SkipSharedSections=No
/SkipSharedSections=Yes
 
Обрезать отладочную информацию Отладочная информация добавляется в файлы для того, чтобы предоставить возможность работать отладчикам. В окончательных версиях ПО этой информации быть не должно. Значение по умолчанию - "yes". В этом режиме отладочная информация будет всегда удаляться. /StripDebug
или
/Sd
/StripDebug=No
/StripDebug=Yes
Обрезать адресные привязки (fixups) Адресные привязки позволяют PE-файлу быть перебазированным, т.е. быть загруженным по адресу, отличному от ожидаемого. Большинство исполняемых файлов не нуждаются в адресных привязках, тогда как большинству DLL-файлов они нужны. Значение по умолчанию - "Auto", и его рекомендуется использовать. В этом случае у исполняемых файлов адресные привязки удаляются, а у DLL и других файлов - сохраняются. /StripFixups
или
/Sf

/StripFixups=No
/StripFixups=Yes
/StripFixups=Auto
 

Несжимаемые ресурсы

 


Этот параметр позволяет указать ресурсы, которые не должны подвергаться сжатию. По умолчанию не сжимаются первая группа значков и соответствующие ей значки, ресурсы версии и манифеста. Чтобы получить список типов ресурсов, запустите консольную версию PECompact2 без параметров и нажмите клавишу 'R'.
 
/UncompressibleRT:@list
или
/UncompressibleRT:typename1,typename2,...
или
/UncompressibleRT:typeid#1,typeid#2,...
или
/UncompressibleRT:namedrsrc1,namedrsrc2

(допускается комбинировать имена, типы, идентификаторы типов и файлы-списки)
/UncompressibleRT:@myrsrc.txt
/UncompressibleRT:groupicon,version
/UncompressibleRT:4,5,1,namedresource
Подробный вывод (только консольная версия) При указании этого параметра на экран выводится расширенный набор сообщений. По умолчанию режим подробного вывода выключен.
/Verbose
или
/V
 
/Verbose
/V
Использовать загрузчик Windows
(только консольная версия)
При выборе значения "Yes" все импортированные модули добавляются в новую таблицу импорта, и ответственность за их загрузку берёт на себя не загрузчик PECompact, а Windows. При выборе значения "No" новая таблица импорта может быть меньше, а следовательно и сам исполняемый файл будет меньше. Рекомендуется использовать значение по умолчанию - "Auto", при котором PECompact делает выбор автоматически. /WinModuleLoader
или
/Wl

/WinModuleLoader=No
/WinModuleLoader=Yes
/WinModuleLoader=Auto