Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Упаковщики исполняемых файлов

123 views
Skip to first unread message

Alexander Morozov

unread,
Oct 24, 2015, 5:45:00 PM10/24/15
to
Hello, All.

Раз уж зашёл такой разговор...

Кто знает, какие упаковщики использовала Microsoft для упаковки своих
исполняемых файлов в формате EXE и COM, входивших в состав MS-DOS 6.22? (Хотя
многие файлы из DOS с расширением COM на самом деле имеют формат EXE.) Помню,
ещё в старые времена периодически проверял жёсткий диск на вирусы с помощью
Doctor Web для DOS. Так он при проверке файлов в каталоге C:\DOS то и дело
выводил сообщения об этом, например: "Файл C:\DOS\FORMAT.COM упакован <название
упаковщика>". Но вот этих самых названий не помню, хоть убей. А кто помнит?

А вот в MS-DOS 7.x и 8.x, входивших в состав Windows 9x, насколько я помню,
файлы уже не были упакованы. Или я ошибаюсь?

Но вот EXE-файлы из Windows 3.x, 9x и NT уже точно не были упакованы. Конечно,
существуют упаковщики для EXE-файлов для Windows, например уже упоминавшийся
здесь UPX. Но в Internet я читал, что в Windows не всё так просто, что упаковка
Windows EXE-файлов может привести к разным нехорошим последствиям, в частности,
упакованная программа для своей работы может отнимать даже больше оперативной
памяти, чем неупакованная.

--
Best regards!
No animals were harmed during writing of this message

Sasha Shost

unread,
Oct 24, 2015, 11:55:00 PM10/24/15
to
Hello Alexander!



AM> например: "Файл C:\DOS\FORMAT.COM упакован <название упаковщика>". Hо
AM> вот этих самых названий не помню, хоть убей. А кто помнит?
так их трое по сути было - пклайт, упх и диез
в те дикие времена это (сжатие) было повсеместно необходимым (шоб на дискеты
лезло)




Sasha http://dr-shost.com http://shostatsky.narod.ru [Team OS/2][Team EDSMO]



Alexander Morozov

unread,
Oct 25, 2015, 4:05:00 AM10/25/15
to
Hello, Sasha Shost.

On 10/25/15 06:42 you wrote:

AM>> например: "Файл C:\DOS\FORMAT.COM упакован <название
AM>> упаковщика>". Hо вот этих самых названий не помню, хоть убей. А
AM>> кто помнит?

SS> так их трое по сути было - пклайт, упх и диез в те дикие времена
SS> это (сжатие) было повсеместно необходимым (шоб на дискеты лезло)

Думаю, да, файлы из MS-DOS сжимались в первую очередь именно для того, чтобы
влезали на дискеты и быстрее загружались с них. Помню, был PKLITE, был DIET и
ещё вроде бы какой-то EXEPACK, что ли... Но точно не UPX. Но не могу вспомнить,
какой из них использовался в Microsoft.

Denis Mosko

unread,
Oct 25, 2015, 6:15:00 AM10/25/15
to
Здpавствуй, Alexander!

Воскресенье 25 Октября 2015 10:52, ты писал(а) Sasha Shost, в сообщении по
ссылке area://su.comp.old?msgid=2:5020/837.15+b6bf9366:

AM> Hello, Sasha Shost.

AM> On 10/25/15 06:42 you wrote:

AM>>> например: "Файл C:\DOS\FORMAT.COM упакован <название
AM>>> упаковщика>". Hо вот этих самых названий не помню, хоть убей. А
AM>>> кто помнит?

SS>> так их трое по сути было - пклайт, упх и диез в те дикие времена
SS>> это (сжатие) было повсеместно необходимым (шоб на дискеты лезло)

AM> Думаю, да, файлы из MS-DOS сжимались в первую очередь именно для того,
AM> чтобы влезали на дискеты и быстрее загружались с них. Помню, был
AM> PKLITE, был DIET и ещё вроде бы какой-то EXEPACK, что ли... Hо точно
AM> не UPX. Hо не могу вспомнить, какой из них использовался в Microsoft.
ДА, Александр


Раскажите о CAUNLITE И ДРУГИХ РАСПАКОВШИКАХ, ЛЮДИ!
(желательно под win7)

Max Vasilyev

unread,
Oct 25, 2015, 10:15:00 AM10/25/15
to
Hello Alexander!

25 Oct 15 00:27, you wrote to All:

AM> Кто знает, какие упаковщики использовала Microsoft для упаковки своих
AM> исполняемых файлов в формате EXE и COM, входивших в состав MS-DOS
AM> 6.22? (Хотя многие файлы из DOS с расширением COM на самом деле имеют
Exepack. Были разные версии в разные годы. Его можно было найти отдельно.

WBR, Max. piwamoto!писем-нет

Alexander Morozov

unread,
Oct 25, 2015, 11:55:00 AM10/25/15
to
В дополнение к уже написанному:

AM> Кто знает, какие упаковщики использовала Microsoft для упаковки
AM> своих исполняемых файлов в формате EXE и COM, входивших в состав
AM> MS-DOS 6.22?

После долгих и мучительных поисков нашёл ответ в Internet через поиск Google
Books:
https://www.google.com/search?q=Microsoft+EXE+File+Compression+Utility&newwindow=1&source=lnms&tbm=bks
. Программа называется Microsoft EXE File Compression Utility (EXEPACK). Она
поставлялась вместе с компиляторами с разных языков программирования от
Microsoft: Microsoft C, Microsoft Fortran, Microsoft Macro Assembler. Вот
небольшая статья о ней http://www.shikadi.net/moddingwiki/Microsoft_EXEPACK .

AM> Но вот EXE-файлы из Windows 3.x, 9x и NT уже точно не были
AM> упакованы. Конечно, существуют упаковщики для EXE-файлов для
AM> Windows, например уже упоминавшийся здесь UPX. Но в Internet я
AM> читал, что в Windows не всё так просто, что упаковка Windows
AM> EXE-файлов может привести к разным нехорошим последствиям, в
AM> частности, упакованная программа для своей работы может отнимать
AM> даже больше оперативной памяти, чем неупакованная.

А вот хорошая статья, в которой объясняется, почему не следует использовать
упаковщики EXE-файлов в Windows: http://citforum.ru/book/cook/exepack.shtml .

А что касается своих собственных программ, то, на мой взгляд, лучше уменьшать
их размер другими способами, например, уменьшением шага выравнивания EXE-файла
и секций в нём и отказом от использования объектно-ориентированных библиотек в
пользу программирования на чистом Windows API. Конечно, на это многие сейчас
начнут кидаться помидорами. Но во времена старых добрых компьютеров и программ,
которым посвящена эта эха, такой подход не был редкостью.

Dennis Mysienko

unread,
Oct 26, 2015, 5:15:00 AM10/26/15
to
Привет, Sasha!

Воскресенье 25 Октября 2015 06:42:08, Sasha Shost писал(а) к Alexander Morozov:

AM>> например: "Файл C:\DOS\FORMAT.COM упакован <название
AM>> упаковщика>". Hо вот этих самых названий не помню, хоть убей. А
AM>> кто помнит?
SS> так их трое по сути было - пклайт, упх и диез

Про диез не слышал. Было их больше 3-х: основные, т.е. наиболее часто
всречающиеся в файлах досовых времён (до upx), это pklite, lzexe и diet. Есть
экзотический ainexe (из комплекта архиватора ain), бывает местячковый
мелкософтный exepack и тоже не частый wwpack. И наконец (по времени разработки)
upx. Это из тех, которые встречались лично мне. А вообще, в unp.doc их список
довольно не маленький:


=== Начало Windows Clipboard ===
Well, here is a list of routines that UNP V4.00 is known to remove:

* routines found in .COM files
CENTRAL POINT ANTI-VIRUS V1 ; immunize code
COMPACK V4.4
COMPACK V4.5
DIET V1.00
DIET V1.02b or V1.10a
DIET V1.20
ICE V1.00
PKLITE V1.00б
PKLITE V1.03
PKLITE V1.05
PKLITE V1.12
PKLITE V1.13
PKLITE V1.14
PKLITE V1.15
PROTECT! COM/EXE V1.0 or V1.1
PROTECT! COM/EXE V2.0
PROTECT! COM/EXE V3.0
PROTECT! COM/EXE V3.1
PRO-PACK V2.08, emphasis on packed size
PRO-PACK V2.08, emphasis on packed size, locked
PRO-PACK V2.08, emphasis on unpacking speed
PRO-PACK V2.08, emphasis on unpacking speed, locked
SCRNCH V1.00
SHRINK V1.00


* routines found in .EXE files
CENTRAL POINT ANTI-VIRUS V1 ; immunize code
COMPACK V4.4
COMPACK V4.5
CRUNCHER V1.0 ; +.COM files
DIET V1.01
DIET V1.00d ; small & large, with & without items
DIET V1.02b, V1.10a or V1.20 ; small & large, with & without items
DIET V1.44 ; small, large + .COM files
DIET V1.44, choose great SFX routine ; small, large + .COM files
DIET V1.45f ; small, large + .COM files
DIET V1.45f choose great SFX routine ; small, large + .COM files
DISLITE V1.15 or higher ; small signatures (no items in sig)
EXEPACK V4.00
EXEPACK V4.05 or V4.06
EXEPACK patched with EXPAKFIX V1.0
LINK /EXEPACK V3.60 or V3.64
LINK /EXEPACK V5.31.009
KVETCH V1.02б
LZEXE V0.90
LZEXE V0.91 or V1.00a
PGMPAK V0.14
PKLITE V1.00б 0,1,2
PKLITE V1.03 0,1,2,3
PKLITE V1.05 0,1,2
PKLITE V1.10 3
PKLITE V1.12 0,1,2,3
PKLITE V1.13 0,1,2,3
PKLITE V1.14 0,1,2,3
PKLITE V1.15 0,1,2,3
PKLITE V1.20 1
PKLITE V1.20 1,3
PRO-PACK V2.08, emphasis on packed size
PRO-PACK V2.08, emphasis on packed size, locked
PRO-PACK V2.08, emphasis on unpacking speed
PRO-PACK V2.08, emphasis on unpacking speed, locked
PROTECT! COM/EXE V1.0
PROTECT! COM/EXE V1.1
PROTECT! COM/EXE V2.0
PROTECT! COM/EXE V3.0
PROTECT! COM/EXE V3.1
SEA-AXE
TINYPROG V1.0
TINYPROG V3.3
TINYPROG V3.6
UNP V3.02 or higher ; fake PKLITE signature
=== Конец Windows Clipboard ===

BTW, файлы MS-DOS 6.22 упакованы в основном pklite, местами exepack, а файлы
MS-DOS 7.x уже исключительно exepack. Ещё из подобного: rar 2.50 упакован lzexe
(алгоритм от архиватора lha aka lzh - им ещё авардовские биосы матерей жали).


С уважением, Денис Николаевич Мусиенко.

... Вялотекущая настройка...

Alexander Morozov

unread,
Oct 26, 2015, 6:15:00 AM10/26/15
to
Hello, Dennis Mysienko.

On 10/26/15 12:06 you wrote:

DM> BTW, файлы MS-DOS 6.22 упакованы в основном pklite, местами
DM> exepack, а файлы MS-DOS 7.x уже исключительно exepack.

Я так полагаю, что PKLite в Microsoft использовали для файлов в формате COM,
поскольку их собственный EXEPack поддерживает только формат EXE?

Dennis Mysienko

unread,
Oct 28, 2015, 9:55:00 AM10/28/15
to
Привет, Alexander!

Понедельник 26 Октября 2015 13:02:32, Alexander Morozov писал(а) к Dennis
Mysienko:

DM>> BTW, файлы MS-DOS 6.22 упакованы в основном pklite, местами
DM>> exepack, а файлы MS-DOS 7.x уже исключительно exepack.

AM> Я так полагаю, что PKLite в Microsoft использовали для файлов в
AM> формате COM, поскольку их собственный EXEPack поддерживает только
AM> формат EXE?

Нет, всё веселее - делали т.с. как гейтс на хард положит, т.е. как обычно в MS
:) Да, com паковали в pklite, но exe частично жали просто в exepack, частично,
уже запаковынные в exepack, потом допаковывали pklite - видимо потому, что
exepack жмёт "стандартно", т.е. почти не жмёт. Например, файлик debug.exe в
оригинальном виде ~15KB, после первой распаковки 20, а далее 22. Не понятно,
зачем нужна такая двойная паковка, почему нельзя сразу в pklite, что даже байт
на 300 меньше выходит?


С уважением, Денис Николаевич Мусиенко.

... MS-DOS 7.1 exists and it's pure DOS!

Max Vasilyev

unread,
Oct 28, 2015, 12:15:00 PM10/28/15
to
Hello Dennis!

28 Oct 15 16:40, you wrote to Alexander Morozov:

DM> Hет, всё веселее - делали т.с. как гейтс на хард положит, т.е. как
DM> обычно в MS :) Да, com паковали в pklite, но exe частично жали просто
DM> в exepack, частично, уже запаковынные в exepack, потом допаковывали
DM> pklite - видимо потому, что exepack жмёт "стандартно", т.е. почти не
DM> жмёт. Hапример, файлик debug.exe в оригинальном виде ~15KB, после
DM> первой распаковки 20, а далее 22. Hе понятно, зачем нужна такая
DM> двойная паковка, почему нельзя сразу в pklite, что даже байт на 300
DM> меньше выходит?
Exepack не сжимает данные, он только сжимает relocation table.
И он вызывается из компилятора при наличии соответствующего ключа при сборке.
Это вряд ли можно считать паковкой - это особенность компиляции.

WBR, Max. piwamoto!писем-нет

Alex Shuman

unread,
Oct 31, 2015, 7:25:00 AM10/31/15
to

x) Sunday Oct 25, 2015, 00:27. Alexander Morozov ── All.

AM> Кто знает, какие упаковщики использовала Microsoft для упаковки своих
AM> исполняемых файлов в формате EXE и COM, входивших в состав MS-DOS 6.22?

exepack (встроенный microsoft link)

иногда - pklite

DOS-программы и в 7.0+ и даже в windows\system32 в win7 всё ещё упакованы, к
примеру

UNP 4.12с Executable file restore utility, written by Ben Castricum, 08/27/95

processing file : DEBUG.EXE
DOS file size : 20634
file-structure : executable (EXE)
EXE part sizes : header 512 bytes, image 20122 bytes, overlay 0 bytes
processed with : LINK V3.69 /EXEPACK

но большинство типа format уже переписаны в нативную win32 консоль (PE) и не
пакованы :)

0 new messages