本發明涉及信息安全技術領域,特別涉及一種基于DHFS文件系統的監控視頻數據恢復方法。
背景技術:
國內經濟的蓬勃發展帶動了不少行業的發展,安保行業正是受益于經濟發展過程之中增長趨勢最為明顯的行業之一。尤其是在視頻監控技術不斷發展的今天,高清監控視頻、多角度視頻技術等專業的監控設備在各個行業多種場所都得到了有效地推廣。視頻監控設備在為實現安定和諧安全的社會環境上做出了巨大的貢獻。監控探頭所拍攝下來的視頻顯得尤其重要。
嵌入式系統是一種完全嵌入受控器件內部,為特定應用而設計的專用的操作系統,嵌入式系統監控機則是一個控制程序存儲在只讀存儲器中的嵌入式處理器控制板,用于控制和監視攝像探頭的裝置。從整體性能上來看,嵌入式硬盤錄像機表現出來了無比強大的優越性能,并且從目前的市場占有率上看,已經成為安防界的主流產品。
在發達國家,不少監控設備上面存儲的數據都是經過多重備份以便確保其數據存儲具備高度的安全性。然而,為了節省企業的開支以及降低管理上的難度,很多的持有監控設備的單位并沒有做過多的數據安全措施,這就意味著一旦設備上存儲的視頻資料一旦丟失或出現其他故障,將使得安防功能并無法起到相關的作用。此外,在部分情況下,也為不少案件提供了最真實,最可靠的視頻證據,成為了法院決斷的依據。因此對監控設備的數據提取與恢復具有重大意義。
由于監控視頻的存儲是設備廠商自定義的存儲格式,不同于任何一種傳統意義上的文件系統,這導致傳統的數據恢復技術無法應用到監控機的視頻數據提取與恢復中。
目前,在針對DHFS文件系統嵌入式監控機的刪除后產生的碎片文件、覆蓋后的殘余文件無法恢復,而且恢復出來的視頻文件的狀態屬性不能加以區分。
技術實現要素:
本發明針對現有技術的缺陷,提供了一種基于DHFS文件系統的監控視頻數據恢復方法,能有效的解決上述現有技術存在的問題。
一種基于DHFS文件系統的監控視頻數據恢復方法,包括以下步驟:
S1:加載磁盤,并讀取磁盤特征標記所在扇區信息并解析;
S2:檢測磁盤0號扇區含是否有特征標記“0x44484653”,且標記之后是否記錄著DHFS文件系統版本號;磁盤0x1E號扇區是否記錄著磁盤的主分配記錄表;上述特征都符合則執行S3,不符合則結束;
S3:解析磁盤中分區引導記錄中的參數,獲取各個分區的起始地址信息和分區大小;
S4:根據S3中解析的參數,解析分區的引導記錄信息,獲取分區中的塊大小和數據區的起始塊號;
S5:將S4中讀取的塊數據按照DHFS文件系統中視頻數據流格式解析;解析分區的引導記錄信息,獲取分區中的塊大小和數據區的起始塊號;解析每一幀中的幀特征頭、通道號、視頻數據幀對應的長度、視頻數據幀對應的視頻起始時間,根據公式下一幀起始地址=第一幀的幀特征頭起始地址+當前幀的幀長度來計算下一幀的起始地址,依次解析完該塊的所有數據;若解析塊中最后一個幀數據出現塊中所剩下的數據長度小于幀長度,則計算當前幀中數據缺失字節數,依據公式當前幀中數據缺失字節數=幀長度-塊中所剩下的數據長度;
S6:將一個塊中數據解析完成后,按照分區順序以及分區中塊順序記錄每一幀中的通道、幀對應視頻數據的起始時間、幀數據相對于塊起始地址的偏移值、幀數據完整性標記、幀中數據缺失字節數;判斷數據是否完整,若完整則執行S7,若不完整,需要記錄當前幀數據的缺失字節數再執行S7;
S7重復S4-S6解析磁盤中所有分區的每一塊所包含的幀數據結構,然后按照記錄的幀的信息中的通道和視頻數據的起始時間拼接整個磁盤中的數據;
S8將S7重組完成的數據進行校驗,驗證重組后的數據是否符合DHFS文件系統中的視頻數據流格式。
作為優選,S7重組中在若遇見不完整的幀需要判斷標注有如下幾點:
標準一:幀是否有幀中數據缺失字節數;
標準二:檢測磁盤的分區中每塊的第一個幀的幀數據相對于塊起始地址的偏移值是否存在等于標準一種的幀中數據缺失字節數;
標準三:缺失數據的幀中記錄的通道、視頻起始時間信息是否與標準二中匹配的塊的第一個幀中的通道、視頻起始時間信息相匹配,匹配的原則是通道相同、視頻起始時間差值小于1s;
當以上標準都滿足時將缺省幀進行重組恢復,完成數據的有效整合,若不滿足則不參與重組,單獨存儲。
與現有技術相比本發明的優點在于:完整解析DHFS文件系統被初始化的數據內容;重組DHFS文件系統的初始化后的碎片數據;可對缺失數據的幀進行重組,恢復重組視頻成功率高。
附圖說明
圖1為本發明DHFS磁盤數據結構示意圖;
圖2為本發明DHFS中視頻數據幀結構示意圖。
具體實施方式
為使本發明的目的、技術方案及優點更加清楚明白,以下舉實施例,對本發明做進一步詳細說明。
首先介紹存儲基于DHFS文件系統的監控視頻數據的磁盤結構,一個磁盤被DHFS文件系統初始化后,其主要結構如圖1所示,分為磁盤標記、主分配記錄、分區結構,其中磁盤標記記錄著DHFS的文件系統版本信息,該數據通常位于磁盤0x0扇區,偏移地址0x00~0x07;主分配記錄記錄著磁盤劃分分區的信息,該記錄位于磁盤0x1E扇區,第一個分區表項的相對0x1E扇區起始偏移地址為0x48,每個分區信息表項的長度為0x40,每個分區信息表項包含了分區的起始地址和分區引導記錄相對起始地址的偏移地址;分區結構分區引導記錄中主要記錄了每扇區字節數、每塊扇區數、文件首塊號、目錄文件位圖開始扇區、文件分配表的開始扇區、數據存儲區開始扇區、塊個數、數據存儲區備份的開始扇區、通道個數等信息,文件分配表是對數據存儲區是否使用的一個管理區域,文件分配表項的長度為0x20,一個表項對應數據存儲區的一個塊,每個表項中記錄對應塊的是否使用標記、塊中記錄的視頻數據的通道、塊中記錄的視頻數據的開始時間、塊中記錄的視頻數據的結束時間、塊中記錄的視頻數據上一個塊序號、塊中記錄的視頻數據下一個塊序號,數據存儲區記錄真實的視頻數據文件,在磁盤中每個分區結構是完全一致的。
下面具體的介紹本發明方法的主要流程:
一種基于DHFS文件系統的監控視頻數據恢復方法,包括以下步驟:
S1:加載磁盤,并讀取磁盤0號扇區特征標記,解析DHFS文件系統的版本號信息;
S2:加載磁盤0x00和0x1E扇區,讀取并解析該處扇區的數據內容,判斷磁盤數據結構是否符合存儲基于DHFS文件系統的監控視頻數據的磁盤結構,判斷的主要依據是:
依據一:磁盤0號扇區含有特征標記“0x44484653”,且標記之后記錄著DHFS文件系統版本號;
依據二:磁盤0x1E號扇區記錄著磁盤的主分配記錄表;
若磁盤結構同時符合上述依據,則跳轉至S3,不符合則結束;
S3:根據S2中解析磁盤的主分配記錄表信息,獲取各個分區的起始地址信息和分區大小,主分配記錄位于磁盤0x1E扇區,分區表項的起始地址是相對0x1E扇區起始偏移地址為0x48,每個分區信息表項的長度為0x40,每個分區信息表項相對表項起始偏移0x00長度為0x02表示分區引導記錄相對起始地址的偏移地址,每個分區信息表項相對表項起始偏移0x1C長度為0x04表示分區起始地址;
S4:根據S3中解析的參數,跳轉至分區的起始地址,解析分區的引導記錄信息,獲取分區中的塊大小和數據區的起始塊號,相對分區引導記錄起始地址偏移0x30~0x31的值記為塊大小、相對分區引導記錄起始地址偏移0x38~0x3B的值記為數據區使用的第一個塊號,相對分區引導記錄起始地址偏移0x48~0x4B的值記為數據區使用的首扇區號,根據公式第一個塊/下一個塊的首扇區值=數據區使用的首扇區號+(數據區使用的第一個塊號+x)*塊大小,其中x取值從0開始,計算第一個或下一塊數據塊的起始地址,并跳轉到相應地址讀取塊的數據;
S5:將S4中讀取的數據按照DHFS文件系統中視頻數據流格式解析并讀取的數據,DHFS文件系統中視頻數據流格式為圖2所示,在每一幀中都包含幀特征頭為“0x44484156”,在相對幀特征頭偏移0x06-0x07表示該視頻數據幀對應的通道號,在相對幀特征頭偏移0x0C-0x0D表示該視頻數據幀對應的長度,在相對幀特征頭偏移0x10-0x13表示該視頻數據幀對應的視頻起始時間,按照此結構解析塊中的每一幀數據,根據公式下一幀起始地址=第一幀的幀特征頭起始地址+當前幀的幀長度來計算下一幀的起始地址,依次解析完該塊的所有數據,特別地,在解析幀數據時,當在解析塊中最后一個幀數據時,會出現塊中所剩下的數據長度小于幀長度,此時需要計算當前幀中數據缺失字節數,依據公式當前幀中數據缺失字節數=幀長度-塊中所剩下的數據長度;
S6:將一個塊中數據解析完成后,按照分區順序以及分區中塊順序記錄每一幀中的通道、幀對應視頻數據的起始時間、幀數據相對于塊起始地址的偏移值、幀數據完整性標記、幀中數據缺失字節數,其中當幀的數據內容是完整將幀數據完整性標記記錄為0x00,其余記為0x01。判斷數據是否完整的依據是當前幀的幀特征頭所在的地址與下一幀的幀特征頭所在的地址之差是否等于當前幀的幀長度,若相等則表示當前幀數據是完整的,否則表示不完整,當幀的幀數據完整性標記為0x01時,需要記錄當前幀數據的缺失字節數;
S7:重復S4-S6解析磁盤中所有分區的每一塊所包含的幀數據結構,然后按照記錄的幀的信息中的通道和視頻數據的起始時間拼接整個磁盤中的數據,在進行數據重組時,需要對幀的幀數據完整性標記為0x01進行拼接重組,判斷標注有如下幾點:
標準一:幀的幀數據完整性標記為0x01的幀是否有幀中數據缺失字節數;
標準二:檢測磁盤的分區中每塊的第一個幀的幀數據相對于塊起始地址的偏移值是否存在等于標準一種的幀中數據缺失字節數;
標準三:缺失數據的幀中記錄的通道、視頻起始時間信息是否與標準二中匹配的塊的第一個幀中的通道、視頻起始時間信息相匹配,匹配的原則是通道相同、視頻起始時間差值小于1s;
當以上標準都滿足時可以將幀的幀數據完整性標記為0x01的缺省幀進行重組恢復,完成數據的有效整合;
S8將S7重組完成的數據進行校驗,驗證重組后的數據所包含的每一幀是否均符合DHFS文件系統中的視頻數據流格式。
本領域的普通技術人員將會意識到,這里所述的實施例是為了幫助讀者理解本發明的實施方法,應被理解為本發明的保護范圍并不局限于這樣的特別陳述和實施例。本領域的普通技術人員可以根據本發明公開的這些技術啟示做出各種不脫離本發明實質的其它各種具體變形和組合,這些變形和組合仍然在本發明的保護范圍內。