ページ

2013年3月26日火曜日

WG-N10のバックアップファイルを解析2

Apache Commons Compressに手を加えてWG-N10で読み取れるファイルが作成出来ました(^^)

これで、PCでページをコピーしたりリフィルを入れ替えたり出来そうです。
っと言ってもフォームは触れないッポイ事がもう分かっててヤル気が駄々下がりなのですが…orz
まあ、それについては次回ということで、実際にプログラムを組んだときに分かったフォーマットについての修正版です。


1.始に


基本はTARファイルだが、幾つか独自の箇所があるため、ポイントを記述する。

ただし、バイナリを眺めただけなのでこれを守ったからといって読み込めるかは不明。

なお、TARについては以下の情報、及びTAR32.DLL、Apache Commons Compressのソースコードを参考にしています。

  • http://openlab.ring.gr.jp/tsuneo/tar32/index-e.html
  • http://openlab.ring.gr.jp/tsuneo/soft/tar32_2/tar32_2/sdk/TAR_FMT.TXT
  • http://www.redout.net/data/tar.html
  • http://commons.apache.org/proper/commons-compress//

2.フォーマット


512byte区切り。(TARと同じ)

ただし、最後のend of archive Recordは512byte0x00埋め。(TARは1024byte)

3.ヘッダ


数字は8進数文字列で格納される(TARと同じ)

ただし、文字列の終端は0x00が使用される(TARは0x20…たぶん…)

チェックサムの計算はTARと同じ、0x20で埋めて計算する。(TARと同じ)

以下、パラメータ毎の解説

  1. ファイル名 (100byte) … パスの区切りは'\', ディレクトリの最後に'\'は付かない
  2. 属性 (8byte) … ファイル(0100666), ディレクトリ(0400666)
  3. ユーザーID (8byte) … '0000000'
  4. グループID (8byte) … '0000000'
  5. ファイルサイズ (12byte) … TARと同じ
  6. 更新日時 (12byte) … TARと同じ
  7. チェックサム (8byte) … 最後は0x00,0x20(TARと同じ)
  8. タイプ (1byte) … ファイル'0', ディレクトリ'5'(TARと同じ)

【以下0x00埋め】


4.その他


WG-N10で作成されるバックアップファイルには'/'区切りのディレクトリ情報が作成されることがある。
この情報は'\'区切りのディレクトリ情報と2重になっているため、展開時に上書きされる。
結合時には無くてもかまわない。

※ イリーガルな事やっているうちにWG-N10内に変なファイル情報が作られたのかも…

以上

2013年3月25日月曜日

WG-N10のバックアップファイルを解析1

SHAPEの電子ノート(WG-N10)を購入したので、久しぶりにブログを更新する事にしました。
最初は使用感とか書くつもりだったけど、イキナリバックアップファイルを解析し始めてしまったのでメモを置いておきます。

(この情報は古いです。こちらを参照して下さい。)

 ちなみに、enote.bkupはTARファイルとして復元できるけど、TAR32.DLL等で再構築すると正常に読み込めません。


1.始に

基本はTARファイルだが、幾つか独自の箇所があるため、ポイントを記述する。
ただし、バイナリを眺めただけなのでこれを守ったからといって読み込めるかは不明。

なお、TARについては以下の情報、及びTAR32.DLLのソースコードを参考にしています。

  •  http://openlab.ring.gr.jp/tsuneo/tar32/index-e.html
  •  http://openlab.ring.gr.jp/tsuneo/soft/tar32_2/tar32_2/sdk/TAR_FMT.TXT
  •  http://www.redout.net/data/tar.html

2.フォーマット

512byte区切り。(TARと同じ)

3.ヘッダ

数字は8進数文字列で格納される(TARと同じ)
ただし、文字列の終端は0x00をが使用される(TARは0x20…たぶん…)

チェックサムの計算はTARと同じ、0x20で埋めて計算する。(TARと同じ)

以下、パラメータ毎の解説

  1.  ファイル名 (100byte) … パスの区切りは'\', ディレクトリの最後に'\'は付かない
  2.  属性 (8byte) … ファイル(0100666), ディレクトリ(0400666)
  3.  ユーザーID (8byte) … '0000000'
  4.  グループID (8byte) … '0000000'
  5.  ファイルサイズ (12byte) … TARと同じ
  6.  更新日時 (12byte) … TARと同じ
  7.  チェックサム (8byte) … 最終バイトにはなぜか0x20が入っている
  8.  タイプ (1byte) … ファイル'0', ディレクトリ'5'(TARと同じ)

 【以下0x00埋め】

以上