1. 程式人生 > >linux中生成考核用的NTFS文件系統結構樣例(一)

linux中生成考核用的NTFS文件系統結構樣例(一)

linux 數據恢復 ntfs dbr mft


實驗NTFS-1說明:NTFS-1.img是一個包含NTFS文件系統的磁盤鏡像,請使用winhex手工方式讀出這個文件系統內的指定文件,並回答其md5 HASH值。

要求:

1、利用WINHEX手工方式讀取。

2、不得使用WINHEX模板功能。

3、不得使用WINHEX文件系統解析功能。

4、填寫的MD5 HASH值全部為大寫,不包括0x頭標或H尾標,中間不得有任何間隔符號(包括空格、制表符、’-’等符號),以WINHEX軟件運算出的HASH值為準。


實驗目的:

1、實現手工方式跟蹤一個NTFS文件系統,並讀出指定的某個文件。

2、理解目錄緩沖區的結構原理。

3、理解文件有多個碎片的處理方式(runlist的結構)。

4、理解DBR、$MFT、FileRecord等文件系統組件。

5、熟練使用WINHEX

題庫:

實驗NTFS-1中,文件系統中對"/mnt/NTFS-1-58/12.txt",人工讀取內容後計算得到的文件MD5 HASH值為0x___。////927C94BBFC5B2A545C8526F8272F65F8//容易。。 
實驗NTFS-1中,文件系統中對"/mnt/NTFS-1-58/7.txt",人工讀取內容後計算得到的文件MD5 HASH值為0x___。////685A3C1600211F75362F2B9D0541A2DA//容易。。
實驗NTFS-1中,文件系統中對"/mnt/NTFS-1-58/4.txt",人工讀取內容後計算得到的文件MD5 HASH值為0x___。////0C72D420DD8902BBAE41A8C4E6676BCA//容易。。
... ...

附:生成考題的python腳本:

#!/usr/bin/python3
import os
import random
import hashlib
import struct
 
r=os.system
rc=random.choice
ri=random.randint
md5=hashlib.md5

items = list(range(1,21))
r("cd ~/NTFS-1")
fkaoti=open("NTFS-1-kaoti.txt",‘w+‘)
r("qemu-img create -f raw NTFS-1.img 500M")
r("losetup /dev/loop0 NTFS-1.img")
r("mkfs.ntfs -f /dev/loop0")
r("mount.ntfs-3g /dev/loop0 /mnt")

for i in range(1,60):
  r("mkdir /mnt/NTFS-1-%d" % i)
  random.shuffle(items)
  for ii in items:
    f=open("/mnt/NTFS-1-%d/%d.txt"%(i,ii),‘w+‘)
    for iii in range(1,ri(500,550)):
      if ri(1,32)==1:
        f.write("*****COPY RIGHT:")
      else:
        f.write("www.frombyte.com")
    f.close()

for i in range(1,60):
  random.shuffle(items)
  for ii in items:
    f=open("/mnt/NTFS-1-%d/%d.txt"%(i,ii),‘a‘)
    for iii in range(1,ri(1000,1100)):
      if ri(1,32)==1:
        f.write("*****COPY RIGHT:")
      else:
        f.write("www.frombyte.com")
    f.close()
#//對40以後的目錄生成MD5 HASH,40之後即不可能存在於第一個目錄塊
for i in range(40,60):
   for ii in items:
     fn="/mnt/NTFS-1-%d/%d.txt"%(i,ii)
     ff=open(fn,‘r‘)
     data=ff.read()
     ff.close()
     fkaoti.write("實驗NTFS-1中,文件系統中對\"%s\",人工讀取內容後計算得到的文件MD5 HASH值為0x___。//%s//容易。。\n"                   % (fn,md5(data.encode("utf8")).hexdigest().upper()) ) 
     fkaoti.flush() 
fkaoti.close()
r("cd")
r("umount /dev/loop0")
r("losetup -d /dev/loop0")


部署流程:

1、在liunx下執行上述腳本,生成NTFS-1.img和NTFS-1-kaoti.txt(可以生成兩份,一份用於練習,一份用於考試)。

2、針對每一份考題,把NTFS-1-kaoti.txt導入考試系統。

3、針對每一份考題,把NTFS-1.img放入考試系統指定目錄。

4、不得將用於考試的直接涉及答案的文件放入考試系統磁盤中。

本文出自 “張宇(數據恢復)” 博客,請務必保留此出處http://zhangyu.blog.51cto.com/197148/1941949

linux中生成考核用的NTFS文件系統結構樣例(一)