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

题库:

1
2
3
4
实验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脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/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  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  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  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、不得将用于考试的直接涉及答案的文件放入考试系统磁盘中。





本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/1941949,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
存储 Linux Docker
|
5月前
|
存储 Linux Docker
|
20天前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
34 0
|
6月前
|
存储 算法 Unix
《Linux操作系统编程》第一章 操作系统引论:了解操作系统的发展、特征、功能以及操作系统结构
《Linux操作系统编程》第一章 操作系统引论:了解操作系统的发展、特征、功能以及操作系统结构
23 0
|
4月前
|
存储 Unix Linux
Linux加强篇006-存储结构与管理硬盘
山重水复疑无路,柳暗花明又一村
210 2
Linux加强篇006-存储结构与管理硬盘
|
5月前
|
存储 NoSQL Linux
深入理解Linux内核task_struct结构
深入理解Linux内核task_struct结构
|
2月前
|
Linux
linux tree命令找不到:如何使用Linux Tree命令查看文件系统结构
linux tree命令找不到:如何使用Linux Tree命令查看文件系统结构
34 0
|
7月前
|
存储 Oracle 安全
|
3月前
|
Linux 调度 索引
Linux内核源码的组织结构
Linux内核源码的组织结构
|
3月前
|
Linux API
字符设备驱动(1):Linux字符设备驱动结构
字符设备驱动(1):Linux字符设备驱动结构
35 1