我正在研究一個基本的文件卡弗,我目前正在計算文件的字節位置。計數存儲在變量中的字段數
我已經研究出我需要一段代碼來執行以下步驟;
- 找到$ SEARCHQUERY可變
- 刪除字符串的其餘部分的$ SEARCHQUERY發現
- 後計數,現在存在內部變量
- 減去2從該變量的字段數考慮到十六進制偏移和$ SEARCHQUERY本身
- 然後乘以二的答案,以獲得正確的字節數
就是這樣的一個例子;
- 找到內 「FFD8」 「00052a0:b4f1 559c FFD8 FFE0 0010 4a46 4946 0001」
- 變量被更新爲 「00052a0:b4f1 559c FFD8」
- $字段計數被分配 「4」 的值
- $段計數=((段計數-2))
- $ BYTECOUNT =((段計數* 2))
我只有指望在田裏的數量如何竭盡所能,一個基本的想法VAR iable。例如,我將如何計算變量中有多少個字段,直到找到$ searchQuery爲止?同樣,如果我刪除了不必要的字符串部分,該如何計算字段數?
在用grep查找$ searchString之後,我不知道如何繼續。我現在的代碼看起來像這樣;
#!/bin/bash
#***************************************************************
#Name: fileCarver.sh
#Purpose: Extracts files hidden within other files
#Author:
#Date Written: 12/01/2013
#Last Updated: 12/01/2013
#***************************************************************
clear
#Request user input
printf "Please enter the input file name: "
read inputFile
printf "Please enter the search string: "
read searchString
#Search for the required string
searchFunction()
{
#Search for required string and remove unnecessary characters
startHexOffset=`xxd $1 | grep $2 | cut -d":" -f 1`
#Convert the Hex Offset to Decimal
startDecOffset=$(echo "ibase=16;${startHexOffset^^}" | bc)
}
searchFunction $inputFile $searchString
exit 0
感謝您的幫助!
讀關於AWK和它的'FS'(字段分隔符),和變量'NF'(場數)。你可以消除所有額外的進程,比如'grep'和'cut'。另外,你的問題有點不清楚,你看到這個函數的輸出是什麼?文檔塊說「隱藏在其他文件中的文件」,但您的示例數據似乎不支持。 (請輸出樣品)。祝你好運! – shellter
謝謝,我會做的! 本質上,它將能夠通過獲取隱藏文件開始的確切字節來提取與非相關數據混淆的文件。例如,它將搜索JPG頭文件「ffd8」和頁腳「ffd9」,基本上只是將所有數據從兩端剪切並粘貼到另一個文件中,以便正常查看圖像。 – Revenant
我添加了行 'echo $ fullOffset | awk -F「」「/ $ searchString/{print NF}」' 但它僅輸出變量中的字段數量。該變量包含'00052a0:b4f1 559c ffd8 ffe0 0010 4a46 4946 0001 ..U ....... JFIF..'。 – Revenant