首页 > 代码库 > linux中生成考核用的NTFS文件系统结构样例

linux中生成考核用的NTFS文件系统结构样例

实验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=http://www.mamicode.com/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、不得将用于考试的直接涉及答案的文件放入考试系统磁盘中。

 

linux中生成考核用的NTFS文件系统结构样例