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文件系统,并读出指定的某个文件。

2、理解多目录块的组合方式。

3、理解多个文件碎片的处理方式。

4、理解DBR、FAT表等文件系统组件。

5、熟练使用WINHEX

题库:

1、实验X中,\FROMBYTE51\28.txt文件的md5 HASH值为___________?

2、实验X中,\FROMBYTE55\8.txt文件的md5 HASH值为___________?

... ...

附:实验环境生成脚本:

#!/bin/bash
qemu-img create -f raw FAT32-1.img 500M
losetup /dev/loop0 FAT32-1.img
parted -s /dev/loop0 mklabel msdos
parted -s /dev/loop0 mkpart -s primary fat32 128s 100%
mkfs.fat -F 32 -s 8 /dev/loop0p1
mount /dev/loop0p1 /mnt

for((i=1;i<=100;i++));do
  mkdir /mnt/"FROMBYTE"$i
  for((ii=1;ii<10;ii++));do
    r2=$(($RANDOM % 32 + 512))
    #create file
    r3=$(($RANDOM % 32))
    for((iii=1;iii<$r2;iii++));do
      if [ $r3 -eq $iii ] ;then
        # random write "COPY RIGHT"
        echo -n "*****COPY RIGHT:" >>/mnt/"FROMBYTE"$i/$ii.txt
        r3=$(($RANDOM % 32 + $r3))
      else
        echo -n "www.frombyte.com" >>/mnt/"FROMBYTE"$i/$ii.txt
      fi
    done
  done
done

for((i=1;i<=100;i++));do
  for((ii=1;ii<10;ii++));do
    r2=$(($RANDOM % 512 + 512))
    #add padding
    r3=$(($RANDOM % 32))
    for((iii=1;iii<$r2;iii++));do
      if [ $r3 -eq $iii ] ;then
        # random write "COPY RIGHT"
        echo -n "*****COPY RIGHT:" >>/mnt/"FROMBYTE"$i/$ii.txt
        r3=$(($RANDOM % 32 + $r3))
      else
        echo -n "www.frombyte.com" >>/mnt/"FROMBYTE"$i/$ii.txt
      fi
    done
  done
done

for((i=50;i<=100;i++));do
  md5sum /mnt/"FROMBYTE"$i/* |tr a-z A-Z >>~/FAT32-1/FAT32-1.md5
done

cd
umount /dev/loop0p1
losetup -d /dev/loop0

总过程:

1、按上述脚本生成md5集合FAT32-1.md5,FAT32-1.img镜像

2、通过FAT32-1.md5,生成题库。方法有:

a、利用excel编辑替换的方式生成

b、linux下使用awk 、sed加shell的方式生成

c、利用python生成

示例,使用awk、sed生成题库(为容易看,断行,执行时一行即可)

sed -e ‘s/\/MNT//‘ -e ‘s/TXT/txt/‘ FAT32-1.md5
|awk ‘{print "test2:",$2,"
,this file MD5 HASH is:0x___.
","\\\\"$1"\\\\easy\\\\.."}‘ >test.txt

结果如下(截取部分):

test2: /FROMBYTE95/8.TXT ,this file MD5 HASH is:0x___. \\46D40D302D0CEBCF541086589E9FCCFB\\easy\\..

test2: /FROMBYTE95/9.TXT ,this file MD5 HASH is:0x___. \\D15F6065CDA928F5A581225AD2FA0AD0\\easy\\..

test2: /FROMBYTE96/1.TXT ,this file MD5 HASH is:0x___. \\646E1F87F8458D0423FE9E64EBBD1908\\easy\\..

test2: /FROMBYTE96/2.TXT ,this file MD5 HASH is:0x___. \\0E7C3DCBF868495E43BD6A34CE6D8418\\easy\\..

test2: /FROMBYTE96/3.TXT ,this file MD5 HASH is:0x___. \\681757B565DB23A467CDB527D2D107C8\\easy\\..

test2: /FROMBYTE96/4.TXT ,this file MD5 HASH is:0x___. \\C2FCEEBEE9FD30D107C0D5D57E5785A2\\easy\\..

test2: /FROMBYTE96/5.TXT ,this file MD5 HASH is:0x___. \\09F17DBAACA7AC8277457B5A97B14D66\\easy\\..

test2: /FROMBYTE96/6.TXT ,this file MD5 HASH is:0x___. \\3C63DB19A48086A33A31620346EB5F9B\\easy\\..

test2: /FROMBYTE96/7.TXT ,this file MD5 HASH is:0x___. \\B8FFC3B07E67D85E60B5B71367D75D90\\easy\\..

test2: /FROMBYTE96/8.TXT ,this file MD5 HASH is:0x___. \\12FC052979EAD0BC0C398E275CB6F56D\\easy\\..

test2: /FROMBYTE96/9.TXT ,this file MD5 HASH is:0x___. \\6C2055640D7FA21C6E9F8A31AB3A4C50\\easy\\..

test2: /FROMBYTE97/1.TXT ,this file MD5 HASH is:0x___. \\94791A0E619868560DF475AB96B5AE4D\\easy\\..

test2: /FROMBYTE97/2.TXT ,this file MD5 HASH is:0x___. \\F31D153B05329D5D22B74B06EEAB86A6\\easy\\..

test2: /FROMBYTE97/3.TXT ,this file MD5 HASH is:0x___. \\6B8375017CB05325CA565D586C596BE8\\easy\\..

test2: /FROMBYTE97/4.TXT ,this file MD5 HASH is:0x___. \\58E0129F24A5915D4BA957D90C05892A\\easy\\..

test2: /FROMBYTE97/5.TXT ,this file MD5 HASH is:0x___. \\66E2B4CD85DABA2ECEB810476B982538\\easy\\..

test2: /FROMBYTE97/6.TXT ,this file MD5 HASH is:0x___. \\502514DE713A04FBAFE3A44C8598028C\\easy\\..

test2: /FROMBYTE97/7.TXT ,this file MD5 HASH is:0x___. \\B66025D4FDD12837438ED36903F738A7\\easy\\..

test2: /FROMBYTE97/8.TXT ,this file MD5 HASH is:0x___. \\0F3B53E05AA6955A8377E55403E468F5\\easy\\..

test2: /FROMBYTE97/9.TXT ,this file MD5 HASH is:0x___. \\0A6EFA940D546735505D6847AFD4F9E0\\easy\\..

test2: /FROMBYTE98/1.TXT ,this file MD5 HASH is:0x___. \\E2567294C0EB341E43B1D26FF7372898\\easy\\..

test2: /FROMBYTE98/2.TXT ,this file MD5 HASH is:0x___. \\5624DA049E95F06475A2AF58BED6F050\\easy\\..

test2: /FROMBYTE98/3.TXT ,this file MD5 HASH is:0x___. \\8AB67DCDA00069208F1162C3FEF2BBD5\\easy\\..

时间: 2024-11-11 18:27:46

linux中生成考核用的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-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中生成考核用的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

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