Data




【資料1】

各種TXT、バイナリ変換方式の比較
Sample:307,551ByteのLZH圧縮済みFile

形式Size(Byte)Size増加率(%)
ISH (shift JIS形式)364,580118.54
ISH (8bit形式)392,116127.50
ISH (non-kana形式)392,116127.50
ISH (7bit形式)427,284138.93
CODE91389,100126.52
BtoA/AtoB394,363128.23
DSC410,068133.33
BOO420,863136.84
Base64420,915136.86
HQX424,673138.05
UUEncode430,655140.03
XXEncode430,665140.03
ABE459,197149.31
AR7523,055170.07
HEX634,343206.26

各形式の詳細は、各形式の項と、次項(【資料2】)を参照の事。






【資料2】

各種TXT、バイナリ変換方式の使用文字


以下で文字の場合『〜』『、』と言う記号を使ってますが、これは分かり易い様入れただけの物です。

○ISH
shift JIS 形式漢字・1byte仮名も使う
8bit 形式漢字を使わない
non-kana 形式1byte仮名を使わない
7bit 形式漢字・1byte仮名を使わない

:「<<< FileName for MS-DOS ( use ***** ish ) [ ???? lines ] >>>」で開始 「--- FileName (現在の行/????) ---」で終わるのが一般的。
(『*****』は変換形式、『????』は全行数)
:一行78文字


○Base64 (MIME準拠)
文字: A〜Z、a〜z、0〜9
記号: +/

:US-ASCII の文字の内の計64個(6bit)を基本に使う。但し、"="を65個目の文字として特殊な操作(変換が区切の中途で終わった時のSpacer役)を示す為に使う。
:一行76文字


○UUEncode
文字: A〜Z、0〜9
記号: `!"#$%&'()*+,-./:;<=>?@[\]^_

:計64文字(6bit)を基本に使う。
:「begin ??? FileName」で始まり、「end」で終わるのが一般的 。
(???はUNIX上での属性を示す数字)
:一行61文字
:行頭は「M」


○XXEncode
文字: A〜Z、a〜z、0〜9
記号: +-

:計64文字(6bit)を基本に使う。
:「begin ??? FileName」で始まり、「end」で終わるのが一般的 。
(???はUNIX上での属性を示す数字)
:一行61文字
:行頭は「h」


○BinHex
文字: A〜N、P〜Z、a〜f、h〜m、p、q、r、0〜6、8、9
記号: !"#$%&'()*+,@-`[

:計64文字(6bit)を基本に使う。
:「(This file must be converted with BinHex 4.0) 」が先頭に置かれ、「:」で変換部分が開始、「:」で終わるのが一般的。
:一行64文字


○BOO
文字: A〜Z、a〜o、0〜9
記号: :;<=>?@[\]^_`

:計64文字を基本に使う。
:元のFileNameで始まる。
:一行は78文字


○BtoA/AtoB
文字: A〜Z、a〜u、0〜9
記号: !"#$%&'()*+,-./:;<=>?@[\]^_`

:計85文字を基本に使う。但し、"x"を特殊操作用(Fileの始点終点の表示)に使う。
:『xbtoa Begin』に始まり『xbtoa End 〜〜(種々の情報)』で終わる。
:一行は80文字


○AR7
文字: A〜Z、a〜z、0〜9
記号: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

:計94文字を基本に使う。
:『,AR7 e-mailable archive: FileName』に始まり『!$』で終わる。
:一行は78文字


○DSC
文字: A〜Z、a〜z、0〜9
記号: ()

:計64文字(6bit)を基本に使う。
:他と異なり、Net通信等の為の形式では無いと思われる。
:一行は膨大な長さになる(正確には、改行は無い?)。





【資料3】

JDA の機能メモ

JDA は機能が豊富で、一見見間違いやすい機能も有るので、その違いを軽く記しておきます。

・『インプラントJPG機能』
名前の通り、JPGにファイルを埋め込む機能です。
他のビュアー等ではインプラントされている事も分かりません。
『遮蔽機能』、『ファイル取り出しのロック機能』が有ります。

『遮蔽機能』は、JDAからもインプラントJPGである事を隠す機能です。
遮蔽コードには『-2147483646 〜 +2147483646 』の数字を使います。
これからも分かる様に、『遮蔽機能』での隠蔽の対クラック強度は低いです(UNJDA等はこれを総当りで読み出そうとする物の筈。使ったこと無いので自信無いですが)。
『ファイル取り出しのロック機能』は、取り出しの際にPASSを設定できる機能です。
此方も対クラック強度は低いです。

・『暗号化インプラントJPG機能』
インプラントに於いて、JPG以外の部分を『BLOWFISH』暗号技術によって暗号化したものです。
他のビュアー等からは画像として認識されます。
『BLOWFISH』暗号技術の対クラック強度は著しく高いので、解読はほぼ不能です(『BLOWFISH』暗号技術自体に未だ弱点が見当たらず、また、解読された事が無い)。
もちろんUNJDA等では解読不可能です。

・『クローキングBitmap 』
BMPに他のファイルを埋め込む形式です。
「論理的に埋め込む」との事で、埋め込み後もBMPのSize、色数が変わらないのが特徴です。BMPのSizeによって埋め込みSizeが制限されるのが欠点かもしれません。

・『暗号化JPEG機能』
JPGその物を『BLOWFISH』暗号技術によって暗号化し、普通のビュアーでは不可視にします。『インプラント』等の機能ではありません。
JDA等のToolでなくては見れなくなります。…とは言うものの、PASSを知らないと画像が見れないのは一緒ですが。
拡張子は『JPZ』です。



【資料4】

一般的書庫のヘッダ


一般的な書庫の特徴的なヘッダを自分の経験を下に表にしました。間違いも有るとは思いますが、参考程度にはなるでしょう。
ただ、下記は夫々のヘッダの特徴であって、決して夫々のHeaderの全てではないのは念頭において下さい。
また、文字の表示は『Shift_JIS』を使っています。

形式Adress
0123456789ABCDEF
LHA (lh0)  -lh0-         
LHA (lh1)  -lh1-         
LHA (lh5)  -lh5-         
LHA (lh6)  -lh6-         
LHA (lh7)  -lh7-         
LArc (lzs)  -lzs-         
LArc (lz4)  -lz4-         
LArc (lz5)  -lz5-         
ZIPPK              
CABMSCF            
MS-CompressSZDD            
BZIP2BZh91           
RARRar!            
ACE       **ACE**  
YZ1yz01            
GZA    GZIP        
BZA    BZ2         
777777             
BIXBIX             
UFAUFA             
UHARCUHA*4            
SITSIT!            
GCAGCA*1        *2   
ZZIPZZ*3             
 0123456789ABCDEF

註)
(*1)Solid形式時は1、通常時は0
(*2)データ解析圧縮Mode時は=、通常時はA
(*3)ZZIPのVersionによって異なり、一回のVerUpで+1されるそうです (今は『0』)。
(*4)UHAのVersionによって異なるようです (v0.2なら『0x02』、v0.4なら『0x04』)。


上記以外
(ヘッダが文字では表示できない物)
(文字列は全て16進数)
形式Adress バイナリの終り
012--
GZIP1F8B08   
ARJ606A08   
UNIX Compress1F9D90   
ARC1A*1    
RK    RK

註)
・ARC
(*1) 圧縮に使用したアルゴリズムを示す部分。LZW法を使用した場合(これが一般的)は『08』




【資料5】

一般的ファイルのヘッダ


一般的なファイルの特徴的なヘッダを表にしました。参考にどうぞ。
ただ、下記は夫々のヘッダの特徴であって、決して夫々のHeaderの全てではないのは念頭において下さい。

文字に表せる部分は文字で表していますが、如何しても表し辛い部分(半角かなになってしまう部分等)は16進数で表しています(区別しやすい様に2桁でその場合は記載)。

形式Adress
0123456789ABCDEF
GIFGIF87a          
GIFGIF89a          
PNGNG        IHDR
JPG (JFIF)FFD8FFE0  JFIF      
BMPBM              
EXEMZ              
DLLMZ              
WAV(*3)RIFF    WAVEFMt20
AVIRIFF    AVI20LIST
MP3                
RPM (RIFF MP3)RIFF    RMP3Data
WMA0&B2uCF11A6D900AA0062CE0F
MIDIMThd            
DOCD0CF11B1          
PDF%PDF-1.*20D%CFD3  
JACKThis_Is_Jack_Fil
MSID0CF11B1          
HELP?       FFFFFFFF    
CHMITSF            
EDENCRYPTED20BY20V2.
 0123456789ABCDEF

(*1)
GIFは現時点で有効なVersionは上記の二つのみ。
ちなみに形式は『GIF??*』となる(?は数字、*はアルファベット)
(*2)
PDFのバージョンによって変わるらしい。
v1.1なら1、v1.2なら2、v1.3なら3のようです。
最新版は1.3のようです。

(*3)
WAVファイルはRIFF形式(Windows上でMultiMediaDataを処理する形式の一つ)の一種でありますが、そのWAVファイルも 同じ『WAV』でも、中身は色々有ります。
その違いはバイナリを見れば見当がつきます。

Adress
101112131415
1)1)1)1)2)2)


1) 0x10〜0x13
:'fmt 'チャンクのサイズ
WAVE なら [10 00 00 00] or [12 00 00 00]
(普通は前者だが、時には後者のヘッダのものも存在)
MPEG Audio なら [1E 00] or [20 00]

2) 0x14〜0x15
:このWAVEのデータフォーマット (下記の『データID』)

データID形式概要
00 01 リニアPCM ごく普通のWAVE
 :  :  :
55 00 RIFF/MP3 拡張子WAV、ID3タグ有
 :  :  :

これ以降は、
 チャネル数 (2bytes Mono: 01 00 、Stereo: 02 00)
 サンプリングレート (4bytes)
 バイト/秒 (4bytes)
等、と続きます。




【資料6】

圧縮アルゴリズムの概説

世の中には色々な圧縮アルゴリズムが存在し、現在でも改良・開発が行われています。
それらを詳しくまとめたSiteも存在しますが、一応軽い紹介程度のことを書いてみたいと思います。勿論紹介程度なので、もっと詳しく知りたい方はこのHTMLのLinkから色々飛んでみて下さい。


○Huffman法
  : D.A.Huffman考案(1950年頃)
  : 主な物は『静的ハフマン符号法』『適応型/動的ハフマン符号法』です。
  : 原理は『出現率の多い物を短い符号で、出現率の低い物を長い符号で表現する』です
  アイディアは、当時としてはかなり革新的な物でした。しかし、最近では単体で使われることは少なくなりました。しかし、複数段階圧縮で用いられる事は有ります。
  [例]
  ・静的ハフマン符号法 (Static Huffman Coding)
 :LHA(lh5〜lh7)の2段階目
・適応型/動的ハフマン符号法 (Adaptive/Dynamic Huffman Coding)
 :LHArc の2段階目


○Lampel-Ziv法
  : A.Lampel と J.Ziv 考案
  : 1977年考案の物を『LZ77法』、1978年考案の物を『LZ78法』と称します。
このアルゴリズムは現在、アーカイバの主流といえます。
  [例]
  LZ77法
 
  : 静的辞書圧縮法 (Static dictionary based compression)とも言われます。
主な派生形式には『LZSS法』(考案者:Storer、Szymanski、1982)が有ります。
  : LHA形式、ZIP形式、GZIP形式、CAB(MSZIP)形式、PNG画像 (以上 LZ77法)、MS-Compress (以上 LZSS法)
  LZ78法
  : 動的辞書法(Dynamic dictionary based compression)とも言われます。
主な派生形式は『LZW法』(考案者:Welch、1984)が有ります。
  : UNIX-Compress、ARC形式、GIF画像、TIFF画像 (以上LZW法 <= UNISYS社が特許を主張する部分)


○BWT法 (Burrows-Wheeler Transform)
  : M.Burrows、D.J.Wheeler 考案 (1994)
  : 或る方法でデータの中身を(圧縮し易いよう)ソートする(Block Sorting)のが基本的原理です。
  : このソート(Block Sorting)した物に圧縮を掛ける事で、高い圧縮率をたたき出せる様です。
圧縮率では優秀性を誇るPPM法(しかし、圧縮速度は遅い)に比べると、速度はそこそこ速く、且つ、かなり近しい圧縮率を達成します。
[例]
BZIP2、BA、DC、EXP1、IMP、reSource、SBC、SZIP、YBS、ZZIP等で採用


○PPM法
  : 『次の文字を予測する』と言うのがこの方法の原理の様です。
  : このアルゴリズムに関しては資料が少ないです。
  : 圧縮率ではこれも高い結果が期待できる方法です。
ただし、圧縮速度が如何しても遅くなる傾向があるのが欠点です。
[例]
PPMD、PPMZ、RK等で採用



【資料7】

LHA 形式の圧縮形式から見た歴史


一部資料不足の為、推測も混じっています。
(◎:圧縮,解凍可能、○:解凍のみ可能、×:処理不可能)

圧縮形式LArc
(v3.33)
LHarc
(v1.13c)
LH
(v1.9*)
LH
(v2.0*) (*1)
LHA
(v2.1*) (*2)
LHA
(v2.5*)
LHA
(v2.6*)
LHA32
(v2.67)
UNLHA32.DLL
lh0××
lh1×
lh2××
lh3××
lh4×× × ◎(*3)◎(*3)◎(*3)◎(*3)
lh5×××
lh6×××××
lh7××××××○(*4)
lzs
lz4
lz5

[註]
(*1)
 v2.05で名称が『LHa』となる。
(*2)
 v2.11に名称が『LHA』となる。
 v2.10が公式公開バージョン。それ以前は試作Ver.
(*3)
 少し特殊(添付TXT等参照)
(*4)
 v2.63より




【資料8】

DLL不要アーカイバのまとめ


アーカイバ、といえば、統合アーカイバプロジェクトのDLLを使うものが主流です。
しかし、それらの圧縮解凍エンジンを内蔵し、圧縮解凍を行えるアーカイバは存在し、支持を受けています。
それらに対しての需要も有る事より、軽く比較及びまとめを対応形式を重点にして表にしました。

(◎:圧縮,解凍可能、○:解凍のみ可能、×:処理不可能)

アプリ名
書庫形式Encode形式
L
H
A
Z
I
P
C
A
B
T
A
R
G
Z
I
P
B
Z
I
P
2
ZA
R
J
A
R
C
Z
O
O
R
A
R
A
C
E
B
H
M
S
C
o
m
p
S
I
T
B
6
4
M
I
M
E
U
U
E
X
X
E
H
Q
X
Aladdin Expander
(v7.5)
Free×××××××××
eo
(v1.5.2)
Free×××××
+Lhaca
デラックス版

(v1.18)
Free×××××××××××
Lhaplus
(v1.16)
Free×××
解凍レンジ
(v1.41)
Free×××××××××××
Japan Zip 32
(v2.0.3.2)
Share×××××××××
WinPack3Share××
ZELDA
(v2.8R2)
Share×××××××
ファイルコンパクト
(v4.00)
Share××××××
  L
Z
H
Z
I
P
C
A
B
T
A
R
G
Z
I
P
B
Z
2
ZA
R
J
A
R
C
Z
O
O
R
A
R
A
C
E
B
H
?
?
_
S
I
T
B
6
4
M
I
M
E
U
U
E
X
X
E
H
Q
X

註)
Aladdin Expander は MacBinary形式も○
Japan Zip 32 はHA形式も◎で、PAK形式が○。
WinPack32 Deluxe はAtoB/BtoA(boo)、Freeze(frz)、Quake Pak(pak) が◎
ZELDA は 777、7Z、ACE、GCA、RK、UHA書庫及びUPX形式も◎だが、各種EXEが必要
ファイルコンパクトはAIZ形式も◎
或る形式に対応、としても、その形式の内部Type全てに対応してる訳ではない事が有る。




【資料9】

LHA形式関連アーカイバ圧縮率比較


LHA形式関連のアーカイバの圧縮率の比較をしてみました(使用サンプルは『圧縮率の言及に関して』と同じです)。
UNLHA32.DLL、LHA32.EXE以外は全てデフォルトでの圧縮ですが、圧縮メソッドは記載しておきます。
夫々のEXEについての情報は各項を参照してください。
なお、数字の単位は『kbyte』です。

 UNLHA32.DLLLArcLHarcARLHA32LHARKH.C.E.II
lh5lh6lh7lz5lh1lh5lh5lh6lh7lh7
EXE(1,293)598580574712635598598580582577
TXT(1,730)674615582787725675673615607580
合計(3,023)1,2721,1951,1561,4991,3601,2731,2611,1951,2421,157






【資料10】

DOSエクステンダの簡単なまとめ


MS-DOS はVer.7.* になってLFNが使えるようになったり(v7.0)、FAT32が使えるようなったり(v7.1)しましたが、基本的に16bitのOSです。
Windows3.1もGUIではあるものの 16bitのOSでしたし、Windows9xもかなり32bit化されたとはいえ結局のところ16bitの呪縛から逃れていません。
このようにMS-DOS関連のOSは常に16bitという制限との苦闘の歴史とも言えるのです。
しかし、純粋に16bit環境で有る筈のMS-DOS環境で32bit環境を持ちこもうとした工夫が『DOSエクステンダ』と言うものです。

32bit環境はアーカイバにとっても有益なものです。
アーカイバによっては『辞書』と言う物が有り、これのサイズが大きいほど圧縮率が向上する傾向があります(例:RAR形式)。しかし、DOS(16bit)環境では16bitの制限の為、64KB(64Kb = 65536b = 216b)までしか辞書サイズを大きく出来ないのです(この為、LHA形式の『lh7』圧縮された書庫はDOSでは圧縮出来ないのです)。
そのような経緯も有り、DOSのアーカイバではDOSエクステンダを使うものが多々見られます( 註1 参照)。
それらについて主なものを軽くまとめてみたいと思います。

Name作成者STATUS必要環境主な外部Fileその他
DOS/4G (32bit)Rational Systems, Inc.Sale386以上、DOS v5.*以上DOS4G.EXEWATCOM C/C++,FORTRAN77対応
DLL使用可
メモリは4GB迄可
VCPI,DPMI準拠
DOS/4GW (32bit)Rational Systems, Inc.Sale386以上、DOS v5.*以上DOS4GW.EXEDOS/4Gの機能制限版
WATCOM C/C++,FORTRAN77対応
メモリは32MB迄可
VCPI,DPMI準拠
DOS/16M (16bit)Rational Systems, Inc.Sale286以上、DOS v3.*以上???要RealMode用C Compiler
メモリは16MB迄可
GO32 (32bit)DJ DelorieFree386以上GO32.EXEDJGPP v1.*
WDOSX (32bit)Michael TippachFree386以上?
DOS v3.3以上
STUBIT.EXEVCPI,DPMI準拠
EXE286/386 (32bit)京都マイクロコンピュータ(株)Free286/386以上EXE386.EXEVCPI準拠

これ以外にも多数存在するので興味の有る方は調べても良いでしょう。

註1)
『DOSエクステンダ』とは正確には『286以降のCPUで利用できる16bit/32bitプロテクトモードプログラムの実行機能を、リアルモードもしくは仮想8086モードで実行中のMS-DOSから実行するための環境』とされます(アスキーデジタル用語辞典より)。




【資料n】

参考リンク


基本的にTool作者さんのところは、ちょっと趣旨と外れるので此処からは外しました。
英語Siteはその旨明記してあります。


[アーカイバ関連の情報]

○Archive Comparison Test (ACT)
URLhttp://compression.ca/
Memo 各種アーカイバの能力比較を行っています。
マイナー系アーカイバも多く取り上げられてます。
但し、英語です。


○DO++
URLhttp://member.nifty.ne.jp/DO/
Memo アーカイバの歴史等に関して要点を得た解説が有ります。
また、幾つかソースも置いて有ります。


○Kompresja
URLhttp://www.kki.net.pl/fgf/kompresja/
Memo ものすごい数のアーカイブ形式を紹介しているSiteです。 紹介内容も私のものとは比べ物になりません。
しかしながらこのWevPageはポーランド語で書かれているらしく(charset=iso-8859-2)、 私は殆ど読解出来ないのが残念です。
サーバは少々重いと思います。


Lossless audio compression
URLhttp://www.firstpr.com.au/audiocomp/lossless/
Memo 可逆Audioファイル圧縮形式について比較、検討しているSiteです。


○Mitsuharu ARIMURA's Page
URLhttp://www.hn.is.uec.ac.jp/~arimura/
Memo アーカイバに関する研究を行っている方のようです。
Linkは数多い為、幾等か参考になるかと思います。
…Topは少しだけビックリしました。


○Muluz page
URLhttp://www.ingnet.or.jp/~kojif/mu/index.htm
Memo 圧縮法に関しての説明が分かりやすく解説されているSiteです。 圧縮法(ハフマン法、LZ法、BWT法、等)に興味を持たれたなら覗いて見るのも良いでしょう。


○The Data Compression Library
URLhttp://www.dogma.net/DataCompression/
Memo 各種のアーカイバに関するLinkを纏めているPageです。開発者向けにも良いところだと思います。
英語です。


○奥村晴彦のホームページ
URLhttp://www.matsusaka-u.ac.jp/~okumura/
Memo LHAフォーマット作成に関わった、奥村晴彦さんのSiteです。
圧縮形式関連のリンク等有って勉強になります。
なお、かなりこのHTMLの参考にさせていただきました(謝)。


○統合アーカイバプロジェクト
URLhttp://www.csdinc.co.jp/archiver/
Memo アーカイバDLL関連ならここでほぼ情報がそろいます。それ以外でも十分情報あります。
殆どのDLLも揃いますし。
なお、此方のSiteではメルマガもやってるので興味が有る方は購読しても良いのではないでしょうか。



[Tool紹介Site]


○Vector
URLhttp://www.vector.co.jp/
Memo 著名なOnLineSoft紹介Siteです。
マイナーなアーカイブ形式を処理するSoftも多々見られるので、まずは目を通しておく事を お勧めしておきます。
また、そうでなくても色々な物があるので、何かしたい時も覗くと良い結果を 得られる事も多いはずです。



[検索Site]

○AltaVista
URLhttp://www.altavista.com/
Memo 手に詰まったらここも選択肢でしょう。老舗(?)の検索エンジンです。
検索に引っかかる情報の数は、かなりウッハウハです。
多すぎてうぐぅな時も多いですが(苦笑)。
英語です。


○Google
URLhttp://www.google.com/
Memo 突如として登場、あっという間に便利な検索Siteとしてのし上がった感があります。
此処を使いこなせれば、かなりの事がすぐ分かります。
と言うか、此処さえあれば、人に訊く事なんて殆ど無いって断言できるかもしれません。


○Lycos Fast FTP Search
URLhttp://download.lycos.com/static/advanced_search.asp
Memo 探しているFileの名前が分かるのなら此処も選択肢でしょう。
少々コツが必要ですが、的確に使えた場合、探し物はもう目の前です。
英語です。


Scherzo
inserted by FC2 system