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,如需转载请自行联系原作者
目录
相关文章
|
存储 缓存 算法
Linux--系统结构与操作系统
Linux--系统结构与操作系统
261 0
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
922 0
|
存储 Linux C语言
Linux:冯·诺依曼结构 & OS管理机制
Linux:冯·诺依曼结构 & OS管理机制
409 0
|
Linux 调度
Linux系统结构
内核是操作系统的核心组件,负责管理系统资源和硬件设备。它提供了硬件抽象层,使得应用程序不必直接操作硬件。内核的主要功能包括: 进程管理:创建、调度和终止进程。 内存管理:分配和回收内存,提供虚拟内存功能。 设备管理:控制硬件设备的访问。 文件系统管理:管理文件和目录结构。 系统调用接口:提供系统调用,使应用程序能够与操作系统交互。
147 8
|
缓存 Linux
揭秘Linux内核:探索CPU拓扑结构
【10月更文挑战第26天】
347 1
|
缓存 运维 Linux
深入探索Linux内核:CPU拓扑结构探测
【10月更文挑战第18天】在现代计算机系统中,CPU的拓扑结构对性能优化和资源管理至关重要。了解CPU的核心、线程、NUMA节点等信息,可以帮助开发者和系统管理员更好地调优应用程序和系统配置。本文将深入探讨如何在Linux内核中探测CPU拓扑结构,介绍相关工具和方法。
393 0
|
网络协议 算法 Unix
Linux源码学习笔记01-Linux内核源码结构
Linux源码学习笔记01-Linux内核源码结构
|
存储 安全 Unix
2023年最详细介绍Linux 系统目录结构!你确定不来了解一下吗?
2023年最详细介绍Linux 系统目录结构!你确定不来了解一下吗?
322 1
|
监控 安全 Linux
systemd-cgls:Linux中的Cgroup层级结构查看利器
`systemd-cgls`是Linux工具,用于查看Cgroup层级结构,协助管理员管理资源。它以树形结构显示cgroup及其资源使用,用于监控、性能调优和安全隔离。通过`--no-page`, `--all`, `--full`等参数可定制输出。结合`systemd-cgtop`等工具,定期监控和配置资源限制,实现系统优化。
|
存储 网络协议 Linux
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(下)
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(下)