2010-01-01から1ヶ月間の記事一覧

書き込みセクタ再調査

セクタ狙い撃ちで、書き込みを行う作戦は、危険な気がするので、 その前に、読み込みでテストをする事にしたのだが、 正しく読み込めているか判断する為に、対象セクタに特定の書き込みをしようと、 フリーのバイナリエディタでファイルを編集&更新してみた…

FAT関連計算式

すぐ忘れるので、メモメモ。 FATテーブルの先頭セクタ =隠しセクタ+予約セクタ 任意のクラスタ管理領域Nのセクタ位置 =隠しセクタ+予約セクタ+N/128 任意のクラスタ管理領域Nのセクタ内オフセット =(N%128)*4 ルートエントリ先頭セク…

BDA:0x0475(固定ディスクの台数)

対象は、USB HDD なので、基本的には、二台目以降として認識される事になるはず。 そこで二台目以降を含めて、BIOSが認識した全ての HDD に対して、拡張 INT 13h の対応状況を調べてみる。 BIOSが認識済みの固定ディスク台数は、BDA:0x0475に記録されている…

INT 13h (AH=41h)

そういうわけで、拡張 INT 13h を、実際に使ってみる。 やはり、実際に動かしてみるってのは、大事な事だ。 調べただけで理解したつもりでいても、大抵、やってみたらダメな事が多い。 いや、これは、頭の良い人なら違うのかもしれないけれど、少なくとも、…

拡張INT13h

さて、ある程度、作戦の目処は立ってきたのだが、 ここで、もう一つ、大きな問題がある。 目標のセクタは、56,252,521。 これを、今まで使っていた INT 13h で処理しようとすると、 CHS指定では、最大でも C=1024 * H=255 * S=63 = 16,450,560で、足りないわ…

実際に見てみよう!!

一通り、FATの仕組みを調べてみたので、実際に見てみる。 今回、生贄になるのは、手元にあった、USB HDD。 一応、中身が壊れても大丈夫なように、大事なデータは退避済み。 さて、それでは、MBRから。 PARTITION 1 BOOTABLE = 00 [ブート不可] firstSecot…

ディレクトリ・エントリ(LFNエントリ含む)

ディレクトリエントリの構成は、以下の通り。 オフセット 内容 サイズ 0 名称 11 11 属性 1 12 予約 1 13 作成時刻ミリ秒(VFAT) 1 14 作成時刻(VFAT) 2 16 作成日付(VFAT) 2 18 アクセス日付(VFAT) 2 20 クラスタ番号上位(FAT32) 2 22 更新時刻 2 24 更新日…