码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2017-06-23 21:05:49      阅读:271      评论:0      收藏:0      [点我收藏+]

标签: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\\..


本文出自 “张宇(数据恢复)” 博客,请务必保留此出处http://zhangyu.blog.51cto.com/197148/1941416

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

标签:linux   数据恢复   fat32   

原文地址:http://zhangyu.blog.51cto.com/197148/1941416

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!