Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
第二回定例会
TATa
いつもどうり 紹介
TATa.name = ‘太田 侑冶’;
TATa.twitterID = ‘pf35301’;
TATa.mailAddress = ‘pf35301@gmail.com’;
TATa.like = ‘Dr.Pepper’...
変わったこと
Windows -> Ubuntu
Visual Studio Code -> vim
それぐらい。
最近やってること
Wi*UHack
.vimrc
暇
技術的なこと
ntfs データ復元について
基礎知識 HDD編
一応
→
プラッタ
基礎 HDD編
・ ブートセクタ
└ ブートプログラムが入ってるとこ
・ MFT
└ (Master File Table)
  どこにどんなファイルがあるか記録したファイル
NTFS インデックス
・データ領域
└名前 通り
・MFT コピー...
データファイル 構成
要するに[Index : Data]みたいな感じ
画像 大体引用
ほんでもってこんな感じに割り当てられてる
データ1,データ2 データ領域に格納される
←大体0バイト も が入る
※何も書かれていないテキストなど
さらに
こ 保存 され方に 4種類ある。
判断基準 主にファイルサイズや断片化率など
軽い順番に紹介していきます。
1.(最軽量)
ファイル 内容すべてが$MTF レコード内に保存される。
NTFS 特徴であり利点
ディスク上 サイズが0バイトになってる状態
2.(普通)
要するにこれ
通常 保存方法
3.(普通(断片化がひどい))
ファイル 位置情報が別レコードになって保存されている
アドレス 量が多すぎて別になった状態
元 レコードに アドレスが書かれているアドレスが書かれている
4.(重量級)
ファイル アドレスが書かれているレコード アドレスが増えすぎて元レコードに入り切
らなくなった状態
レコード アドレス 情報(Data run list)が$MTF 外に置かれている
めったにない
属性
$MTF 複数 属性で構成される
$Standard_Infomation : 更新日時など 情報
$File_name : そ 名 通り
$Attribute_List : レコードに入らなかった場合 ?
他にも$MTFに直接あるRes...
$MTF
ブートセクタに$MTF アドレスなど 情報があり見ることができる
MTFも一つ ファイルな で図 ように
断片化する場合もある
ファイルレコードヘッダ
アップデートシーケンス オフセット (0x30)
アップデートシーケンス サイズ (0x03)
最初 属性 offset(0x38)
フラグ(0x00001)
フラグ 0x00001がファイル,0x0003がフォルダ,0...
アップデートシーケンス
ntfsに セクタ 破損を検知するためにアップデートシーケンスと言うも がある
$MTFで 各セクタ 最後 2バイトをランダムな値に置換して元 値を
ファイルレコードヘッダに保存している
まずファイルレコードヘッダにセク...
属性(Resident)
属性ID(0x10)
属性サイズ(0x60)
Form code(0x00)
内容 サイズ(0x48)
内容 offset(0x18)
Form codeがこ 属性 内容が Residentか示している
次 属性 現在...
属性(Non-resident)
属性ID(0x80)
属性(レコード内) サイズ(0x60)
Form code(0x01)
Data run list offset(0x40)
内容 サイズ 32bit -> 64bit(0x164f)
D...
Data run list
例え さっき [41 02 B9 30 91 11]だと
ビット数 : 41
長さ : B902
offset : 119130
となる
ファイル 内容
長くなる で省略
自分で調べて、どうぞ
ファイル 復元について
以上 方法から内容が上書きされる前にフラグを戻せ 良いことがわかる。
しかし4GiB以上 場合、ファイルサイズやData run listが全て0クリアされてしまってフラ
グを戻しても復元すること 不可能
謎
おわり
ntfs クソ
これからもどうぞよろしく
Upcoming SlideShare
Loading in …5
×

TaTa's Present

386 views

Published on

tento.tech 第二回定例会のたたおじのプレゼン資料です

Published in: Technology
  • Be the first to comment

  • Be the first to like this

TaTa's Present

  1. 1. 第二回定例会 TATa
  2. 2. いつもどうり 紹介 TATa.name = ‘太田 侑冶’; TATa.twitterID = ‘pf35301’; TATa.mailAddress = ‘pf35301@gmail.com’; TATa.like = ‘Dr.Pepper’; TATa.favoriteLangage = [‘C#’, ‘python’];
  3. 3. 変わったこと Windows -> Ubuntu Visual Studio Code -> vim それぐらい。
  4. 4. 最近やってること Wi*UHack .vimrc 暇
  5. 5. 技術的なこと
  6. 6. ntfs データ復元について
  7. 7. 基礎知識 HDD編 一応 → プラッタ
  8. 8. 基礎 HDD編 ・ ブートセクタ └ ブートプログラムが入ってるとこ ・ MFT └ (Master File Table)   どこにどんなファイルがあるか記録したファイル NTFS インデックス ・データ領域 └名前 通り ・MFT コピー └名前 通り ざっくり。
  9. 9. データファイル 構成 要するに[Index : Data]みたいな感じ 画像 大体引用
  10. 10. ほんでもってこんな感じに割り当てられてる データ1,データ2 データ領域に格納される ←大体0バイト も が入る ※何も書かれていないテキストなど
  11. 11. さらに こ 保存 され方に 4種類ある。 判断基準 主にファイルサイズや断片化率など 軽い順番に紹介していきます。
  12. 12. 1.(最軽量) ファイル 内容すべてが$MTF レコード内に保存される。 NTFS 特徴であり利点 ディスク上 サイズが0バイトになってる状態
  13. 13. 2.(普通) 要するにこれ 通常 保存方法
  14. 14. 3.(普通(断片化がひどい)) ファイル 位置情報が別レコードになって保存されている アドレス 量が多すぎて別になった状態 元 レコードに アドレスが書かれているアドレスが書かれている
  15. 15. 4.(重量級) ファイル アドレスが書かれているレコード アドレスが増えすぎて元レコードに入り切 らなくなった状態 レコード アドレス 情報(Data run list)が$MTF 外に置かれている めったにない
  16. 16. 属性 $MTF 複数 属性で構成される $Standard_Infomation : 更新日時など 情報 $File_name : そ 名 通り $Attribute_List : レコードに入らなかった場合 ? 他にも$MTFに直接あるResidentとアドレスが書かれている Non-residentがある
  17. 17. $MTF ブートセクタに$MTF アドレスなど 情報があり見ることができる MTFも一つ ファイルな で図 ように 断片化する場合もある
  18. 18. ファイルレコードヘッダ アップデートシーケンス オフセット (0x30) アップデートシーケンス サイズ (0x03) 最初 属性 offset(0x38) フラグ(0x00001) フラグ 0x00001がファイル,0x0003がフォルダ,0x0002が削除済み こ レコードが他 レコードに入り切らなかった内容 場合、 +0x20に元レコード 参照が含まれてるためここが 0出ないとき こ レコード読み飛 せ 良い ?
  19. 19. アップデートシーケンス ntfsに セクタ 破損を検知するためにアップデートシーケンスと言うも がある $MTFで 各セクタ 最後 2バイトをランダムな値に置換して元 値を ファイルレコードヘッダに保存している まずファイルレコードヘッダにセクタ 最後 値が保存されそ 次に元 値が 保存されていて読み込むときに置換される
  20. 20. 属性(Resident) 属性ID(0x10) 属性サイズ(0x60) Form code(0x00) 内容 サイズ(0x48) 内容 offset(0x18) Form codeがこ 属性 内容が Residentか示している 次 属性 現在 属性 オフセットに属性 サイズを加えた場所にある
  21. 21. 属性(Non-resident) 属性ID(0x80) 属性(レコード内) サイズ(0x60) Form code(0x01) Data run list offset(0x40) 内容 サイズ 32bit -> 64bit(0x164f) Data run list(41 02 B9 30 91 11)
  22. 22. Data run list 例え さっき [41 02 B9 30 91 11]だと ビット数 : 41 長さ : B902 offset : 119130 となる
  23. 23. ファイル 内容 長くなる で省略 自分で調べて、どうぞ
  24. 24. ファイル 復元について 以上 方法から内容が上書きされる前にフラグを戻せ 良いことがわかる。 しかし4GiB以上 場合、ファイルサイズやData run listが全て0クリアされてしまってフラ グを戻しても復元すること 不可能 謎
  25. 25. おわり ntfs クソ これからもどうぞよろしく

×