SSN2.EXE - HiBase汎用ダンプユーティリティ ssn2 [-h][-v{0|1}][-f ][-o ][-n ] [ [] ] -h ヘルプを表示 -v={0|1} 1:QuickTime Movieも変換する -f 定義ファイル -o マルチメディアデータの出力先 -n 出力するレコード数の上限(無指定は全件) DBディレクトリ名 DBファイル番号(無指定は@DDD.dat) 【解説】 ・小学館スーパーニッポニカはホロン株式会社の国産データベースHiBaseをデータベー スエンジンに使用しています。SSN2.exeは、HiBaseデータベースの内容をテキスト化す る汎用プログラムであり、次の機能を持ちます。  (1)HiBadseデータベースファイルのレコードのダンプ  (2)複数のデータベースファイルを主キーで連結し、レコード単位に情報を出力(JOIN)  (3)項目の整形  (4)マルチメディアデータのファイル化  (5)スーパーニッポニカの暗号化された本文の復号化 ・SSN2の出力はスーパーニッポニカToolkit用に最適化されていますが、単純なテキスト  データなので、他のアプリケーションで活用することも可能でしょう。 ・SSN2.EXEの利用は、著作権法で認められた「私的利用のための複製」の範囲内で行っ  て下さい。 【基礎知識】 ・データベースはディレクトリ毎に格納される。データベース名.confのファイルに、  データベースファイルが実際にあるディレクトリ名が記述される。  →ハードディスクとCD-ROMにデータを分散して配置することを想定している ・データベースファイルは、データファイル(*.dat)とインデックスファイル(*.idx)か  ら構成される。 ・@DDD.* はデータベースの定義(スキーマ) ・@Value.* はデータベース毎に一つ存在する。データベースの全てのファイルのマルチ  メディアデータや、256バイト以上の本文データを格納する。 ・@<ファイル番号>.* はデータベースファイル。 【使用例】 ssn2 -h ヘルプを表示 ssn2 SSN_DB01 SSN_DB01/@DDD.datを表示 ssn2 -n 10 SSN_DB01 21 SSN_DB01/@f021.datを表示 ssn2 -f SSN2003DVD1.ini -o c:\ssn 定義ファイル SSN2003DVD1.ini に従って変換 【定義ファイル】 CRYPT1=73 C8 1D 4D 65 BE 8F 33 CRYPT2=74 C9 1E 34 64 84 B0 33 FILE=SSN_DB01,1,3, # コンテンツインデックス ITEM=2,$CLASS: ITEM=3,$SSN_ID: ITEM=4,$TITLE: ITEM=5,$KANA: ITEM=7,$KEYWORD: FILE=SSN_DB02,101,2,CRYPT1 # コンテンツ ITEM=3,$TEXT: BINFILE=SSN_DB02,111,2 # インライン画像 BINFILE=SSN_DB07,551,1,CRYPT2 # 社会・文化 CRYPTn=<暗号化キーのバイト列(16進コード)> FILE=,<ファイル番号>,,[CRYPTn] ITEM=<項目番号>,<項目名> BINFILE=,<ファイル番号>,<ファイル名に使用する項目番号>,[CRYPTn] [意味] ●CRYPTn= ・本文やマルチメディアデータが暗号化されている場合に用いる暗号化キー。 ・CRYPT0からCRYPT9まで、10個の暗号化キーを指定できる。 ・暗号化キーは、16進コードの列で指定する。 ●FILE= ・FILE=で指定したDBファイルを変換し、結果を標準出力に出力する。 ・FILE=が複数個ある場合、最初に現れるFILEが連結の主表になる。二番目以降の  ファイルは、をキーに主表のレコードと連結される。 ・本文が暗号化されている場合、CRYPTnを指定する。 ●ITEM= ・FILE=に続けて、複数のITEM=を指定できる(任意)。  ITEM=を定義すると、出力する項目を選択できる。また項目名を設定できる。  ITEM=がないと、全ての項目を編集せずに表示する。(低レベル出力) ●BINFILE= ・BINFILE=はマルチメディアデータ用に用いる。結果は -o オプションで指定したディ  レクトリに出力される。ファイル名の情報はマルチメディアデータの列に無ければな  らない。 ・BINFILE=はFILE=と異なり、主表とIDで連結されない。 ・マルチメディアデータが暗号化されている場合、CRYPTnを指定する。 【実行結果】 (1) DB01のファイル番号1(見出し)を低レベル出力 ssn2 SSN_DB01 1 > 1.txt -------------------------------------------------------------- record#: 1 size=33 項目 番号 データ型 ↓ ↓ 01:type=07 size=1 nval=0 mmid= mmsize=0 data=1 ←record# 02:type=06 size=3 nval=0 mmid= mmsize=0 data=SSN ←日本大百科全書 03:type=06 size=10 nval=0 mmid= mmsize=0 data=0001000100←ID 04:type=06 size=2 nval=0 mmid= mmsize=0 data=あ ←見出し 05:type=06 size=2 nval=0 mmid= mmsize=0 data=あ ←かな検索 record#: 2 size=43 01:type=07 size=1 nval=0 mmid= mmsize=0 data=2 ←record# 02:type=06 size=3 nval=0 mmid= mmsize=0 data=KOK ←国語大辞典 03:type=06 size=10 nval=0 mmid= mmsize=0 data=9000000010←ID 04:type=06 size=12 nval=0 mmid= mmsize=0 data=あ【あ・ア】←見出し 05:type=06 size=2 nval=0 mmid= mmsize=0 data=あ ←かな検索 <以下略> -------------------------------------------------------------- (2) DB02のファイル番号101(本文)を低レベル出力 ssn2 SSN_DB02 101 > 101.txt -------------------------------------------------------------- record#: 1 size=45 01:type=06 size=3 nval=0 mmid= mmsize=0 data=SSN ←日本大百科全書 02:type=06 size=10 nval=0 mmid= mmsize=0 data=0001000100 ←ID 03:type=50 size=23 nval=0 mmid=1 mmsize=870 data= ←暗号化データ -------------------------------------------------------------- (3) 定義ファイルを使用して整形する。見出しと本文をIDをキーに連結し、本文を復号化する ssn2 -f SSN2003DVD1.ini > ssn.txt -------------------------------------------------------------- record#: 1 $CLASS:SSN $SSN_ID:0001000100 $TITLE:あ $KANA:あ $TEXT: 五十音図第1行第1段の仮名。平仮名の「あ」は「安」の草体から、また、片仮名の「ア」 は「阿」の偏から変化してできたものである。万葉仮名では「阿、安、婀、鞅(以上音仮 名)、足(訓仮名)」などが使われた。ほかに草仮名としては「003978(阿) 」「750001(愛)」「600039(悪)」などがある。  音韻的には、5母音の一つ/a/にあたる。東京語などでは、奥舌の[a]よりもやや舌 が前寄りで、口の開きの大きい中舌広母音である。ア段長音の引き音節部分を、「おかあ さん」「おばあさん」などのように表しもする。また表記上はアであっても、音の連なり 方によって、「ピ[_ア]ノ→ピ[_ヤ]ノ」「バ[_ア]イ(場合)→バ[_ヤ]イ/バ[_ワ]イ」 「オン[_ア]イ(恩愛)→オン[_ナ]イ」などと発音されたりする。  なお「阿吽{あうん}の仁王」「阿吽の呼吸」などと使われる「阿吽」の「阿」は、悉曇 {しったん}十二母音の初音で、物事の初めの意で用いられ、口を開いた形相や吐息をも表 す。上野和昭 【暗号化キーの探り方(概要)】 (1)本文の場合 ・まず複合化なしで本文をダンプしてみる  (.iniファイルの"CRYPTn="を削除してssn2.exeを実行)。 ・国語大辞典および日本大百科全書の「あ」の項のダンプ結果を見る。  「あ」の項のテキストと、バイト毎に排他的論理を取る。  固定長(8バイト)で同じバイトパターンが繰り返し現れるはず。  このバイトパターンが暗号化キー。 ・暗号化キーをCRYPTn=に指定して、もう一度ssn2.exeで本文をダンプする。  これで文章が見えれば成功。 (2)マルチメディアデータ ・まず複合化なしで、BINFILE=を指定してデータをファイル化する  (.iniファイルの"CRYPTn="を削除してssn2.exeを実行)。 ・拡張子jpgのファイルを画像ビューアで見る。正常に見えれば暗号化されていない。 ・エラーになったり、画像が崩れて見える場合は暗号化されている。  暗号化されたJPEGファイルの先頭8バイトと、任意の正常なJPEGファイルのファイル  ヘッダー8バイトとの排他的論理和を取る。この結果が暗号化キー。 ・暗号化キーを指定してもう一度ssn2.exeでマルチメディアデータをファイル化する。  正常なJPEGが出力されれば、成功。