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=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、不得将用于考试的直接涉及答案的文件放入考试系统磁盘中。

时间: 2024-10-12 12:10:52

linux中生成考核用的NTFS文件系统结构样例(一)的相关文章

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

实验NTFS-2说明:NTFS-2.img是一个包含NTFS文件系统的磁盘镜像,请使用winhex手工方式读出这个文件系统内的指定文件,并回答其md5 HASH值. 要求: 1.利用WINHEX手工方式读取. 2.不得使用WINHEX模板功能. 3.不得使用WINHEX文件系统解析功能. 4.填写的MD5 HASH值全部为大写,不包括0x头标或H尾标,中间不得有任何间隔符号(包括空格.制表符.'-'等符号),以WINHEX软件运算出的HASH值为准. 实验目的: 1.实现手工方式跟踪一个NTFS

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

实验NTFS-3说明: NTFS-3\目录下的xxx.tar.gz解压后是一个包括NTFS文件系统的磁盘镜像.现在已知的情况是: 1.硬盘之前使用MBR分区方式分了唯一这个NTFS文件系统的分区(无扩展分区): 2.MBR区域及DBR区域被清0,分区起始位置不确定: 3.NTFS DBR备份中一些重要的参数被破坏,其余区域无破坏: 请按如下要求回答问题. 要求: 请使用winhex手工方式修复DBR,并回答修改后的DBR扇区的md5 HASH值. 1.利用WINHEX手工方式读取. 2.不得使用

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

实验X说明:FAT32-1.img是一个包含FAT32文件系统的磁盘镜像,请使用winhex手工方式读出这个文件系统内的指定文件,并回答其md5 HASH值. 要求: 1.利用WINHEX手工方式读取. 2.不得使用WINHEX模板功能. 3.不得使用WINHEX文件系统解析功能. 4.填写的MD5 HASH值全部为大写,不包括0x头标或H尾标,中间不得有任何间隔符号(包括空格.制表符.'-'等符号),以WINHEX软件运算出的HASH值为准. 实验目的: 1.实现手工方式跟踪一个FAT32文件

linux中生成考核用的FAT32文件系统结构样例(二)

实验FAT32-2说明:FAT32-2\目录下的xxx.tar.gz解压后是一个FAT32文件系统的分区镜像,其DBR及备份的一些参数错误,请使用winhex手工方式修复DBR,并回答修改后的DBR的md5 HASH值. 要求: 1.利用WINHEX手工方式读取. 2.不得使用WINHEX模板功能. 3.不得使用WINHEX文件系统解析功能. 4.出错部分仅为DBR保留扇区.FAT表份数.FAT表大小.文件系统扇区总数.每簇扇区数.有效结束标志,其余部分不得修改. 5.文件系统扇区总数为可利用的

linux中生成考核用的NTFS文件系统

目的: 生成一个NTFS文件系统,要求: 1.$MFT至少2个碎片 2.根目录下建90个以从1开始的数字编号为名的子目录,每个子目录下建80-100个文件,文件编号从1开始编起. 3.有大量文件是由2个或以上碎片组成.(本例多为2个碎片) 1.shell 脚本如下: #!/bin/sh #   # #  Created by www.frombyte.com    张宇 on 2017/3/29.脚本可能有更新,见附件 # mkdir /mnt/padding cd /mnt/padding #

linux中生成考核用的GPT分区表结构修复案例

目的:用于生成大量模拟破坏GPT分区结构案例,并生成唯一方式修复后的评判方法. 故障:在一个完整的GPT分区磁盘上,丢失了GPT主分区表,或备份分区表. 要求: 1.利用WINHEX手工方式,修复给定镜像文件的分区结构. 2.不得对现存主分区表或备份分区表做任何修改. 3.不得使用WINHEX GPT分区模板进行参考修复. 4.修复后生成整个镜像文件的MD5 HASH值. 实验样本生成过程: #!/bin/sh #删除头部做50个  for((i=1;i<=50;i++));do  r1=$((

Linux中生成密钥的两种方法

Linux中生成密钥的两种方法 SSH服务支持一种安全认证机制,即密钥认证.所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密:另一个称为密钥(privatekey),只有拥有者才能看到,用于解密.通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难. ssh的密钥认证就是使用了这一特性.服务器和客户端都各自拥有自己的公钥和密钥.如何使用密钥认证登录linux服务器呢? 在使用密钥认证远程登入linux之前,我们

Linux中在当前目录下查找某个文件

ZT:https://zhidao.baidu.com/question/1512088073851955780.html Linux中在当前目录下查找某个文件可以使用find命令. 1.比如在/usr/lib下查找klibc的文件,进入/usr/lib目录后,可以执行 find . -name "klibc" 说明:find命令用于查找文件,后面的"."代表当前目录,-name是find命令的参数,后面接要搜索的文件名. 2.如果不明确文件名称,可以使用通配符 f

linux中的strip命令简介------给文件脱衣服

转载于:http://blog.csdn.net/stpeace/article/details/47090255 作为一名linux开发人员, 如果没有听说过strip命令, 那是很不应该的. strip这个单词, 大家应该早就学过了, 你就记住是脱衣服就行了, 别的不要多想. 在linux中, strip也有脱衣服的含义, 具体就是从特定文件中剥掉一些符号信息和调试信息. 我们来看main.c文件: [cpp] view plain copy print? #include <stdio.h