目的:用于生成大量模拟破坏GPT分区结构案例,并生成唯一方式修复后的评判方法。
故障:在一个完整的GPT分区磁盘上,丢失了GPT主分区表,或备份分区表。
要求:
1、利用WINHEX手工方式,修复给定镜像文件的分区结构。
2、不得对现存主分区表或备份分区表做任何修改。
3、不得使用WINHEX GPT分区模板进行参考修复。
4、修复后生成整个镜像文件的MD5 HASH值。
实验样本生成过程:
#!/bin/sh #删除头部做50个 for((i=1;i<=50;i++));do r1=$(($i+200)) qemu-img create -f raw $i.img "$r1"M losetup /dev/loop0 $i.img parted -s /dev/loop0 mklabel gpt parted -s /dev/loop0 mkpart -s primary ext3 128s 100% dd if=/dev/loop0 2>/dev/null |md5sum -b|tr a-z A-Z 1>>md5.txt dd if=/dev/loop0 of=head"$i".img bs=512 count=64 dd if=/dev/zero of=/dev/loop0 bs=512 seek=1 count=2048 dd if=/dev/loop0 of=f"$i".img tar -zcvf f"$i".tar.gz f"$i".img rm f"$i".img losetup -D rm $i.img done #删除尾部做50个 for((i=51;i<=100;i++));do r1=$(($i+200)) r2=$(($r1*2048-64)) qemu-img create -f raw $i.img "$r1"M losetup /dev/loop0 $i.img parted -s /dev/loop0 mklabel gpt parted -s /dev/loop0 mkpart -s primary ext3 128s 100% dd if=/dev/loop0 2>/dev/null |md5sum -b|tr a-z A-Z 1>>md5.txt dd if=/dev/loop0 of=tail"$i".img skipk=$r2 bs=512 dd if=/dev/zero of=/dev/loop0 bs=512 seek=$r2 dd if=/dev/loop0 of=f"$i".img tar -zcvf f"$i".tar.gz f"$i".img rm f"$i".img losetup -D rm $i.img done
本文出自 “张宇(数据恢复)” 博客,请务必保留此出处http://zhangyu.blog.51cto.com/197148/1940719
原文地址:http://zhangyu.blog.51cto.com/197148/1940719