linux中生成考核用的GPT分割槽表結構修復案例

2021-09-04 10:32:43 字數 2455 閱讀 6563

注:歷史版本,後期改用python實現了

實驗一:

目的:用於生成大量模擬破壞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

實驗二:

目的:用於生成大量模擬破壞gpt分割槽結構案例,並生成唯一方式修復後的評判方法。

故障:在乙個完整的gpt分割槽磁碟上,之前有乙個位置不確定的分割槽(指令碼中起始於100~150m,結束於350~400m),現在被重新分割槽後變成了乙個完整的大分割槽。

要求:1、利用winhex手工方式,修復給定映象檔案的分割槽結構。

2、僅在現有分割槽表項上做修改,僅修改其起始位置,結束位置。

3、不得使用winhex gpt分割槽模板進行參考修復。

4、修復後生成整個映象檔案的md5 hash值。

實驗樣本生成過程:

#!/bin/bash

for((i=1;i<=100;i++));do

r1=$(($random % 50+100))

r2=$(($random % 50+350))

qemu-img create -f raw $i.img 500m

losetup /dev/loop0 $i.img

parted -s /dev/loop0 mklabel gpt

parted -s /dev/loop0 mkpart -s primary ext3 "$r1"m "$r2"m 

mkfs.ntfs -f /dev/loop0p1

dd if=/dev/loop0 2>/dev/null| md5sum -b|tr a-z a-z 1>>md5.txt

dd if=/dev/loop0 2>/dev/null| gzip >s"$i".gz

parted -s /dev/loop0 rm 1

parted -s /dev/loop0 mkpart -s primary ext3 128s 100% 

dd if=/dev/loop0 2>/dev/null |gzip >"$i".gz

losetup -d

rm $i.img

done

linux中生成考核用的GPT分割槽結構樣例 二

第一部分 面向被考核者 實驗說明 已知有大小約500m 600m之間的某個磁碟映象,之前使用gpt分割槽方式劃分了乙個分割槽,格式化為ntfs檔案系統,分割槽起始位置和大小不確定。現在故障為 原來的分割槽被刪除,新建了乙個大分割槽,請找出刪除的分割槽,在現有分割槽表項的基礎上改出刪除的分割槽,完成修...

linux中生成任意大小的檔案

可以利用dd命令 root localhost test dd if dev zero of data.txt bs 1m count 2 2 0 records in 2 0 records out 2097152 bytes 2.1 mb copied,0.0140437 seconds,149...

sap中生成BAPI的ALE介面

t code bdbg 生成bapi的ale介面 物件 介面型別 介面組,可能通過swo1生成。方法 bapi 生成 bapi 的 ale 介面 資訊型別 z getgritem we81 z getgritem 已生成 idoc 型別 z getgritem01 we30 檢查基本型別 z get...