專利名稱:閃存芯片數(shù)據(jù)解析方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及閃存芯片技術(shù)領(lǐng)域,特別是涉及一種閃存芯片數(shù)據(jù)解析方法和裝置。
背景技術(shù):
隨著存儲行業(yè)日新月異的發(fā)展,基于FLASH(閃存)芯片的新型存儲模式取代傳統(tǒng)的機(jī)械磁存儲(硬盤)模式已是大勢所趨,技術(shù)上的巨大差異使傳統(tǒng)數(shù)據(jù)解析行業(yè)面臨前所未有的嚴(yán)峻挑戰(zhàn)。FLASH芯片中數(shù)據(jù)組織模式的不同造成傳統(tǒng)數(shù)據(jù)解析工具無法對其數(shù)據(jù)識別、加載的后果,因此,需要本領(lǐng)域技術(shù)人員提供一種新的技術(shù),將FLASH芯片數(shù)據(jù)的組織模式改變?yōu)閭鹘y(tǒng)硬盤的數(shù)據(jù)組織模式,同時(shí)又保證不會改變原FLASH芯片的數(shù)據(jù)解析環(huán)境,才能從根本上上述問題。現(xiàn)有技術(shù)的主要采用如下方案解決FLASH芯片的數(shù)據(jù)解析問題字串搜索方式用編程器讀出FLASH芯片數(shù)據(jù)鏡像,在數(shù)據(jù)鏡像內(nèi)通過直接查找字符串,對字符串進(jìn)行編解碼,從而獲得證據(jù)信息。該方法思路簡單,實(shí)現(xiàn)容易,搜索速度較快,可以定位并獲取敏感信息。但該方案的局限性也非常明顯無法從文件系統(tǒng)的角度挖掘出數(shù)據(jù),特別對照片、復(fù)合文檔、視頻、錄音等重要文件缺乏支持;另外,就其本身技術(shù)細(xì)節(jié)而言,其挖掘出的字符串存在截?cái)?、亂碼的風(fēng)險(xiǎn)。圖片碎片重組方式該方案直接利用圖片碎片的特征信息,找出圖片碎片后按照正確順序重新拼接成圖片;該方案可解決存儲在FLASH芯片中的圖形證據(jù)的獲取問題,但該方案的缺陷亦非常顯著只能針對圖片數(shù)據(jù)進(jìn)行挖掘,而且,由于圖片壓縮編碼多樣復(fù)雜,實(shí)際挖掘效果與預(yù)期相差甚遠(yuǎn)。另外,類似的方案還有復(fù)合文檔碎片重組,數(shù)據(jù)庫頁重組等,與圖片碎片重組方式的原理一致,優(yōu)缺點(diǎn)也相同。以上方案無一例外都是針對某一種證據(jù)信息而設(shè)計(jì)的,都不能進(jìn)行數(shù)據(jù)解析環(huán)境的改造,在FLASH頁排列混亂的狀況下,以上方案都不能完美達(dá)到其預(yù)期的技術(shù)效果。另外,市面上還有相當(dāng)一部分手機(jī)和U盤采用非標(biāo)準(zhǔn)FLASH芯片作為其主存儲器, 這些非標(biāo)準(zhǔn)的FLASH芯片往往不具備映射表或相似結(jié)構(gòu),數(shù)據(jù)組織方式完全不同,因此,上述方案不適用于此類FLASH芯片的數(shù)據(jù)解析。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種閃存芯片數(shù)據(jù)解析方法,可解決現(xiàn)有技術(shù)只能對閃存芯片的單一證據(jù)信息進(jìn)行數(shù)據(jù)解析,不能進(jìn)行數(shù)據(jù)解析環(huán)境的改造的問題。本發(fā)明還提供了一種閃存芯片數(shù)據(jù)解析裝置,以保證上述方法在實(shí)際中的應(yīng)用。為了解決上述問題,本發(fā)明公開了一種閃存芯片數(shù)據(jù)解析方法,包括容器文件創(chuàng)建步驟創(chuàng)建用于保存數(shù)據(jù)解析結(jié)果的空的容器文件;引導(dǎo)扇區(qū)搜索步驟在所述閃存芯片的整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)頁,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),作為后續(xù)重組步驟的起始編號;
重組步驟在所述閃存芯片的鏡像中,以頁為單位搜索,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),判斷該16位整數(shù)是否與所述起始編號相同,若是,則計(jì)數(shù)器遞增1 ;直至所述計(jì)數(shù)器遞增至報(bào)數(shù)終點(diǎn)為止;以及,將搜索到的包含有所述起始編號的頁寫入所述容器文件;計(jì)數(shù)提取步驟重復(fù)執(zhí)行將所述起始編號遞增1,以及,按所述重組步驟的方法搜索并將包含有所述遞增后的起始編號的頁依次寫入所述容器文件的過程,直至所述遞增后的起始編號不能在所述閃存芯片的鏡像中搜索到為止。優(yōu)選的,在所述引導(dǎo)扇區(qū)搜索步驟或容器文件創(chuàng)建步驟之前還包括讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù);以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);若所述相同值個(gè)數(shù)為2的η次方,則繼續(xù)后續(xù)流程;其中,η為不小于2的正整數(shù)。優(yōu)選的,在所述引導(dǎo)扇區(qū)搜索步驟或容器文件創(chuàng)建步驟之前還包括讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù);以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);用所述相同值個(gè)數(shù)除以4、2或8,作為所述重組步驟的報(bào)數(shù)終點(diǎn)。優(yōu)選的,所述頁的大小為5 字節(jié);所述預(yù)設(shè)偏移地址為512或520字節(jié)。優(yōu)選的,在所述引導(dǎo)扇區(qū)搜索步驟以及重組步驟中的讀取一個(gè)16位無符號整數(shù)的步驟之后還包括置換該16位無符號整數(shù)的高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高4位清零,生成轉(zhuǎn)換后的16位整數(shù)。依據(jù)本發(fā)明的另一優(yōu)選實(shí)施例,還公開了一種閃存芯片數(shù)據(jù)解析裝置,包括容器文件創(chuàng)建單元、引導(dǎo)扇區(qū)搜索單元、重組單元和計(jì)數(shù)提取單元,其中所述容器文件創(chuàng)建單元用于創(chuàng)建保存數(shù)據(jù)解析結(jié)果的空的容器文件;所述引導(dǎo)扇區(qū)搜索單元用于在所述閃存芯片的整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)頁,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),作為所述重組單元的起始編號;所述重組單元用于在所述閃存芯片的鏡像中,以頁為單位搜索,讀取所述預(yù)設(shè)偏移地址處的16位無符號整數(shù),判斷該16位整數(shù)是否與所述起始編號相同,若是,則計(jì)數(shù)器遞增1 ;直至所述計(jì)數(shù)器遞增至報(bào)數(shù)終點(diǎn)為止;以及,將搜索到的包含有所述起始編號的頁寫入所述容器文件創(chuàng)建單元?jiǎng)?chuàng)建的容器文件;所述計(jì)數(shù)提取單元,用于重復(fù)將所述起始編號遞增1,以及,調(diào)用所述重組單元按新的起始編號執(zhí)行重組操作的過程,直至所述遞增后的起始編號不能在所述閃存芯片的鏡像中搜索到為止。優(yōu)選的,上述裝置還包括統(tǒng)計(jì)單元和判斷單元,其中所述統(tǒng)計(jì)單元用于讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù), 以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);所述判斷單元用于判斷所述統(tǒng)計(jì)單元獲得的相同值個(gè)數(shù)是否為2的η次方,若否,則結(jié)束數(shù)據(jù)解析過程; 其中,η為不小于2的正整數(shù)。優(yōu)選的,上述裝置還包括統(tǒng)計(jì)單元和報(bào)數(shù)終點(diǎn)生成單元,其中所述統(tǒng)計(jì)單元用于讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù),以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);所述報(bào)數(shù)終點(diǎn)生成單元用于將所述統(tǒng)計(jì)單元獲得的相同值個(gè)數(shù)除以4、2或8,作為所述重組單元使用的報(bào)數(shù)終點(diǎn)。優(yōu)選的,所述頁的大小為5 字節(jié);所述預(yù)設(shè)偏移地址為512或520字節(jié)。優(yōu)選的,上述裝置還包括數(shù)據(jù)轉(zhuǎn)換單元,用于將所述引導(dǎo)扇區(qū)搜索單元和重組單元讀取的16位無符號整數(shù)作后續(xù)操作之前,先進(jìn)行如下轉(zhuǎn)換置換該16位無符號整數(shù)的高 8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高4位清零,生成轉(zhuǎn)換后的16位整數(shù)。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明優(yōu)選實(shí)施例基于引導(dǎo)扇區(qū)搜索、冗余數(shù)據(jù)分析和計(jì)數(shù)提取FLASH芯片數(shù)據(jù)解析方法,與現(xiàn)有基于映射表解析的重組原則不同,利用FLASH芯片中特有的冗余數(shù)據(jù),計(jì)算并提煉出FLASH地址映射的相關(guān)參數(shù),再利用計(jì)數(shù)提取的獨(dú)特算法,摒棄對數(shù)據(jù)解析無用的固件信息,達(dá)到在PC上建立數(shù)據(jù)解析環(huán)境的目的;不僅可解決常規(guī)FLASH芯片的數(shù)據(jù)解析問題,還可實(shí)現(xiàn)對非標(biāo)準(zhǔn)FLASH芯片(如應(yīng)用于手機(jī)、U盤等存儲設(shè)備的特定格式 FLASH芯片)的數(shù)據(jù)解析。本發(fā)明優(yōu)選實(shí)施例基于引導(dǎo)扇區(qū)搜索、冗余數(shù)據(jù)分析和計(jì)數(shù)提取FLASH芯片數(shù)據(jù)解析方法,是FLASH芯片數(shù)據(jù)解析技術(shù)的一次突破,不僅可用于FLASH存儲設(shè)備中數(shù)據(jù)的提取(特別對采用非標(biāo)準(zhǔn)FLASH芯片的設(shè)備中數(shù)據(jù)的提取),還可以針對損壞的手機(jī)、U盤、閃存卡等便攜存儲設(shè)備進(jìn)行數(shù)據(jù)解析,恢復(fù)保存在這些設(shè)備中的證據(jù)信息和數(shù)據(jù),具有使數(shù)據(jù)“起死回生”的效果,增加了 FLASH芯片數(shù)據(jù)解析技術(shù)的應(yīng)用范圍,具有良好的應(yīng)用推廣前景。
圖1是本發(fā)明閃存芯片數(shù)據(jù)解析方法第一實(shí)施例流程圖;圖2是本發(fā)明閃存芯片數(shù)據(jù)解析方法第二實(shí)施例流程圖;圖3-1是本發(fā)明閃存芯片數(shù)據(jù)解析方法具體實(shí)施例數(shù)據(jù)解析前WINHEX軟件的識別結(jié)果示意圖;圖3-2是本發(fā)明閃存芯片數(shù)據(jù)解析方法具體實(shí)施例數(shù)據(jù)解析后WINHEX軟件的識別結(jié)果示意圖;圖4是本發(fā)明閃存芯片數(shù)據(jù)解析裝置一實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。參照圖1,示出了本發(fā)明閃存芯片數(shù)據(jù)解析方法第一實(shí)施例的流程,具體包括以下步驟步驟SlOl 創(chuàng)建用于保存數(shù)據(jù)解析結(jié)果的空的容器文件;步驟S102 搜索引導(dǎo)扇區(qū),讀取一個(gè)16位無符號整數(shù)作為起始編號;
具體方法為在閃存芯片的整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)頁,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),作為后續(xù)重組步驟的起始編號;在本優(yōu)選實(shí)施例中,頁的大小可設(shè)置為5 字節(jié),預(yù)設(shè)偏移地址可以為512或520
字節(jié);另外,對于部分閃存芯片,還需要將該16位無符號整數(shù)作如下操作后,才能作為起始編號置換其高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高4位清零。步驟103 以閃存芯片的鏡像中第1頁為當(dāng)前頁,初始化計(jì)數(shù)器;步驟104 從當(dāng)前頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù);與步驟S102類似,對于部分閃存芯片,在讀取該16位無符號整數(shù)之后,還需要將該16位無符號整數(shù)作如下操作置換其高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高 4位清零。步驟105 判斷該16位整數(shù)是否與起始編號相同,若是,轉(zhuǎn)步驟106 ;否則,轉(zhuǎn)步驟 107 ;步驟106 將搜索到的包含有起始編號的頁寫入上述容器文件;計(jì)數(shù)器遞增1 ;步驟107 判斷計(jì)數(shù)器是否小于報(bào)數(shù)終點(diǎn),并且,當(dāng)前頁不是閃存芯片的末尾頁; 若是,轉(zhuǎn)步驟108 ;否則,轉(zhuǎn)步驟109 ;步驟108 將閃存芯片鏡像中的下一頁作為當(dāng)前頁,轉(zhuǎn)步驟104 ;步驟109 判斷計(jì)數(shù)器是否大于初始化值,若是,轉(zhuǎn)步驟110 ;否則,結(jié)束流程;步驟110 起始編號遞增1,轉(zhuǎn)步驟103。對于上述步驟,若計(jì)數(shù)器在步驟104 步驟107循環(huán)執(zhí)行期間沒有增加,說明該起始編號在閃存芯片的鏡像中不存在。參照圖2,示出了本發(fā)明閃存芯片數(shù)據(jù)解析方法第二實(shí)施例的流程,在本優(yōu)選實(shí)施例中,除包括第一實(shí)施例的相關(guān)步驟外,還對閃存芯片包含的特定信息進(jìn)行統(tǒng)計(jì)分析,以確定該閃存芯片是否適合用本發(fā)明方法數(shù)據(jù)解析;另外,在本優(yōu)選實(shí)施例中,還給出了報(bào)數(shù)終點(diǎn)的具體設(shè)定方法,具體包括以下步驟步驟S201 建立一個(gè)空的容器文件,作為重組后的頁存放空間;步驟S202 讀取閃存芯片末尾大小為5 字節(jié)的1頁,以該頁512或520字節(jié)偏移為起始地址,提取一個(gè)64位無符號整數(shù);步驟S203 以該64位無符號整數(shù)為參照值,以第512或520字節(jié)偏移為參照地址, 在整個(gè)鏡像中搜索與該64位整數(shù)相同值的個(gè)數(shù);步驟S204 判斷該相同值的個(gè)數(shù)是否滿足2的η次方,若是,則轉(zhuǎn)步驟205 ;否則,
結(jié)束流程;如果搜索出的相同值的個(gè)數(shù)不滿足2的η次方(η為不小于2的整數(shù)),說明該 FLASH芯片并不適用于本發(fā)明方法,流程終止。例如,如果搜索出了 1 個(gè)相同的值,1 是 2的7次方,流程可以繼續(xù);步驟205 用上述相同值的個(gè)數(shù)除以4、2或8,作為計(jì)數(shù)器的報(bào)數(shù)終點(diǎn);建立一個(gè)計(jì)數(shù)器,優(yōu)選將步驟203搜索出的相同值的個(gè)數(shù)除以4,作為計(jì)數(shù)器的報(bào)數(shù)終點(diǎn)。例如如果搜索出了 1 個(gè)相同值,1 除以4為32,那么32就是計(jì)數(shù)器的報(bào)數(shù)終
7^ \\\ 步驟S206 搜索引導(dǎo)扇區(qū),讀取一個(gè)16位無符號整數(shù),轉(zhuǎn)換后作為起始編號;在整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)大小為 528個(gè)字節(jié)的頁,在該5 個(gè)字節(jié)中第512偏移處讀取一個(gè)16位無符號整數(shù),置換該16位無符號整數(shù)的高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高4位清零,得到的整數(shù)作為后續(xù)步驟的起始編號。例如,若讀出的16位無符號整數(shù)為0x1122,那么首先置換其高8 位和低8位,得出整數(shù)0x2211,清零高四位后成為0x0211,0x0211就是后續(xù)過程的起始編號;步驟S207 收集鏡像中相同位置擁有起始編號的頁,每搜到一個(gè),計(jì)數(shù)器遞增1, 把該擁有起始編號的頁寫入容器文件中;直至計(jì)數(shù)器增長到報(bào)數(shù)終點(diǎn)為止;按照步驟S206的方法,在每個(gè)頁的512偏移處提取并轉(zhuǎn)換16位無符號整數(shù),然后對比是否與起始編號相同(如0x0211),如果是,計(jì)數(shù)器遞增1,將該頁寫入容器文件;如果計(jì)數(shù)器已遞增到和報(bào)數(shù)終點(diǎn)相同的值,那么該起始編號的搜索工作即可結(jié)束;步驟S208 起始編號遞增1,重復(fù)執(zhí)行步驟S207,直至遞增后的起始編號不能在鏡像中搜索到為止。例如起始編號為0x0211,那么現(xiàn)在遞增為0x0212,然后收集鏡像中相同位置擁有0x0212編號的頁,如果在鏡像中搜索到擁有0x0212編號的頁,依然利用步驟S207的方法,把收集到的頁緊挨上次寫入的頁寫入容器文件中;依次類推,直到遞增后的起始編號不能在鏡像中搜索到為止。下面,以K9F1208U0B(M8BGA_SamSung芯片為例,具體說明本發(fā)明閃存芯片數(shù)據(jù)解析方法的流程。首先,在用本發(fā)明方法進(jìn)行數(shù)據(jù)解析之前,對K9F1208U0B@48BGA_Samsung芯片, 用WINHEX軟件進(jìn)行識別,報(bào)告找不到分區(qū)空間,其結(jié)果如圖3-1所示;說明沒有用本發(fā)明方法對該閃存數(shù)據(jù)解析之前,WINHEX軟件無法識別該閃存芯片。其次,參照上述第二實(shí)施例的流程,對上述K9F1208U0B(M8BGA_SamSung芯片進(jìn)行如下數(shù)據(jù)解析過程步驟S301 建立一個(gè)空的容器文件,作為重組后的頁存放空間;步驟S302 讀取該芯片末尾5 字節(jié),并在該5 個(gè)字節(jié)中的512偏移處開始提取一個(gè)64位無符號整數(shù);步驟S303 以該64位無符號整數(shù)為參照值,以5 字節(jié)中的第512偏移為參照地址,在整個(gè)鏡像中進(jìn)行搜索,搜索出的相同值的個(gè)數(shù);在該具體實(shí)例中,搜索出了 1 個(gè)相同的值,而1 是2的7次方,因此流程可以繼續(xù);步驟S304 用步驟S303搜索出的相同值的個(gè)數(shù)(即128)除以4,作為計(jì)數(shù)器的報(bào)數(shù)終點(diǎn)(在該具體實(shí)例中,1 除以4等于32,那么32就是計(jì)數(shù)器的報(bào)數(shù)終點(diǎn));步驟S305 在整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)大小為5 個(gè)字節(jié)的頁,在該頁的第512字節(jié)偏移處讀取一個(gè)16位無符號整數(shù),整數(shù)讀取后,置換其高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高4位清零,最終得到的整數(shù)作為重組過程的起始編號;在該具體實(shí)例中,讀出的16位無符號整數(shù)為0x1122,置換其高 8位和低8位后,得出整數(shù)為0x2211,將高四位清零后,得到整數(shù)0x0211,該整數(shù)0x0211就是后續(xù)重組過程的起始編號;步驟S306 首先收集鏡像中相同位置(即512字節(jié)偏移處)擁有起始編號0x0211 的頁,每搜到一個(gè),計(jì)數(shù)員變量遞增1,直到增長到報(bào)數(shù)終點(diǎn)為止。然后,把所有搜索到的擁有該起始編號0x0211的頁寫入上述容器文件中;步驟S307 把起始編號遞增1,利用上一步中的方法,把收集到的頁緊挨上次寫入的頁寫入容器文件中;重復(fù)上述過程,直到遞增后的起始編號不能在鏡像中搜索到為止。 例如起始編號為0x0211,那么首次遞增為0x0212,然后收集鏡像中相同位置擁有0x0212 編號的頁;如果在鏡像中沒有搜到擁有0x0212編號的頁,那么起始編號再遞增,搜索擁有 0x0213編號的頁;如果搜索到擁有0x0212編號的頁,則把收集到的頁緊挨上次寫入的頁寫入容器文件中;然后再重復(fù)上述遞增搜索過程,直到遞增后的起始編號不能在鏡像中搜索到為止。最后,在用本發(fā)明方法對該閃存芯片完成數(shù)據(jù)解析過程之后,用WINHEX軟件讀取上述數(shù)據(jù)解析過程產(chǎn)生的容器文件,可發(fā)現(xiàn)如圖3-2所示的目錄結(jié)構(gòu),包括ALBUM、AUDIO、 MOVIE和MP3等子目錄;對其中的MP3子目錄進(jìn)行數(shù)據(jù)驗(yàn)證,可以看到,MP3目錄下的所有 MP3文件全部都可以正常播放。通過該具體實(shí)例說明,對于K9F1208U0B@48BGA_Samsung芯片,通過本發(fā)明方法數(shù)據(jù)解析之后,WINHEX軟件可以通過上述數(shù)據(jù)解析過程產(chǎn)生的容器文件讀取該閃存芯片保存的數(shù)據(jù)。需要說明的是,上述基于引導(dǎo)扇區(qū)搜索、冗余數(shù)據(jù)分析和計(jì)數(shù)提取的FLASH芯片數(shù)據(jù)解析方法,是FLASH芯片數(shù)據(jù)解析技術(shù)的一次突破,除可以用于識別存儲在FLASH芯片中的數(shù)據(jù)外,還可以針對損壞的手機(jī)、U盤、閃存卡等包含有FLASH芯片的便攜存儲設(shè)備進(jìn)行數(shù)據(jù)恢復(fù),具有使其證據(jù)信息和數(shù)據(jù)“起死回生”的能力,可進(jìn)一步增加本發(fā)明FLASH芯片數(shù)據(jù)解析方法的應(yīng)用范圍,降低應(yīng)用成本。另外,對于前述的各方法實(shí)施例,為了描述簡單,故將其都表述為一系列的動作組合,但是本領(lǐng)域的技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)楦鶕?jù)本發(fā)明,某些步驟可以采用其他順序或同時(shí)執(zhí)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,上述方法實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。參照圖4,示出了本發(fā)明閃存芯片數(shù)據(jù)解析裝置一實(shí)施例的結(jié)構(gòu)框圖,具體包括以下單元容器文件創(chuàng)建單元41 用于創(chuàng)建保存數(shù)據(jù)解析結(jié)果的空的容器文件;引導(dǎo)扇區(qū)搜索單元42:用于在閃存芯片的整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)頁,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),用數(shù)據(jù)轉(zhuǎn)換單元45轉(zhuǎn)換后,作為重組單元43的起始編號;其中,上述頁的大小為5 字節(jié);預(yù)設(shè)偏移地址為該頁的第512或520字節(jié)處。重組單元43:用于在閃存芯片的鏡像中,以頁(5 字節(jié))為單位搜索,讀取預(yù)設(shè)偏移地址處(512字節(jié)或520字節(jié))的16位無符號整數(shù),用數(shù)據(jù)轉(zhuǎn)換單元45轉(zhuǎn)換后,判斷該轉(zhuǎn)換后的16位整數(shù)是否與起始編號相同,若是,則計(jì)數(shù)器遞增1 ;直至計(jì)數(shù)器遞增至報(bào)數(shù)終點(diǎn)生成單元48生成的報(bào)數(shù)終點(diǎn)為止;以及,將搜索到的包含有起始編號的頁寫入容器文件創(chuàng)建單元41創(chuàng)建的容器文件中;計(jì)數(shù)提取單元44 用于重復(fù)將起始編號遞增1,以及,調(diào)用重組單元43按新的起始編號執(zhí)行重組操作的過程,直至遞增后的起始編號不能在閃存芯片的鏡像中搜索到為止;數(shù)據(jù)轉(zhuǎn)換單元45 用于將引導(dǎo)扇區(qū)搜索單元42和重組單元43讀取的16位無符號整數(shù)作后續(xù)操作之前,先進(jìn)行如下轉(zhuǎn)換置換該16位無符號整數(shù)的高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高4位清零,生成轉(zhuǎn)換后的16位整數(shù);統(tǒng)計(jì)單元46 用于讀取閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址(512字節(jié)或520字節(jié))為起始地址,提取一個(gè)64位無符號整數(shù);以及,以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);判斷單元47 用于判斷統(tǒng)計(jì)單元46獲得的相同值個(gè)數(shù)是否為2的η次方,若否, 則結(jié)束數(shù)據(jù)解析過程;其中,η為不小于2的正整數(shù);報(bào)數(shù)終點(diǎn)生成單元48 用于將統(tǒng)計(jì)單元46獲得的相同值個(gè)數(shù)除以4、2或8,作為重組單元43使用的報(bào)數(shù)終點(diǎn)。需要說明的是,上述裝置實(shí)施例屬于優(yōu)選實(shí)施例,所涉及的單元和模塊并不一定是本發(fā)明所必須的。如,對于某些型號的FLASH芯片,不需要對其16位整數(shù)的高8位和底 8位置換,因此,數(shù)據(jù)轉(zhuǎn)換單元45可以省略;特定情況下,統(tǒng)計(jì)單元46、判斷單元47或報(bào)數(shù)終點(diǎn)生成單元48等單元也可以省略。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對于本發(fā)明的裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上對本發(fā)明所提供的一種閃存芯片數(shù)據(jù)解析方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種閃存芯片數(shù)據(jù)解析方法,其特征在于,包括容器文件創(chuàng)建步驟創(chuàng)建用于保存數(shù)據(jù)解析結(jié)果的空的容器文件;引導(dǎo)扇區(qū)搜索步驟在所述閃存芯片的整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)頁,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),作為后續(xù)重組步驟的起始編號;重組步驟在所述閃存芯片的鏡像中,以頁為單位搜索,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),判斷該16位整數(shù)是否與所述起始編號相同,若是,則計(jì)數(shù)器遞增1 ; 直至所述計(jì)數(shù)器遞增至報(bào)數(shù)終點(diǎn)為止;以及,將搜索到的包含有所述起始編號的頁寫入所述容器文件;計(jì)數(shù)提取步驟重復(fù)執(zhí)行將所述起始編號遞增1,以及,按所述重組步驟的方法搜索并將包含有所述遞增后的起始編號的頁依次寫入所述容器文件的過程,直至所述遞增后的起始編號不能在所述閃存芯片的鏡像中搜索到為止。
2.如權(quán)利要求1所述的閃存芯片數(shù)據(jù)解析方法,其特征在于,在所述引導(dǎo)扇區(qū)搜索步驟或容器文件創(chuàng)建步驟之前還包括讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù);以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);若所述相同值個(gè)數(shù)為2的η次方,則繼續(xù)后續(xù)流程;其中,η為不小于2的正整數(shù)。
3.如權(quán)利要求1所述的閃存芯片數(shù)據(jù)解析方法,其特征在于,在所述引導(dǎo)扇區(qū)搜索步驟或容器文件創(chuàng)建步驟之前還包括讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù);以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);用所述相同值個(gè)數(shù)除以4、2或8,作為所述重組步驟的報(bào)數(shù)終點(diǎn)。
4.如權(quán)利要求1 3之一所述的閃存芯片數(shù)據(jù)解析方法,其特征在于,所述頁的大小為 528字節(jié);所述預(yù)設(shè)偏移地址為512或520字節(jié)。
5.如權(quán)利要求1所述的閃存芯片數(shù)據(jù)解析方法,其特征在于,在所述引導(dǎo)扇區(qū)搜索步驟以及重組步驟中的讀取一個(gè)16位無符號整數(shù)的步驟之后還包括置換該16位無符號整數(shù)的高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高4位清零,生成轉(zhuǎn)換后的16位整數(shù)。
6.一種閃存芯片數(shù)據(jù)解析裝置,其特征在于,包括容器文件創(chuàng)建單元、引導(dǎo)扇區(qū)搜索單元、重組單元和計(jì)數(shù)提取單元,其中所述容器文件創(chuàng)建單元用于創(chuàng)建保存數(shù)據(jù)解析結(jié)果的空的容器文件;所述引導(dǎo)扇區(qū)搜索單元用于在所述閃存芯片的整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū),并在搜索到引導(dǎo)扇區(qū)的地址讀取一個(gè)頁,在該頁的預(yù)設(shè)偏移地址處讀取一個(gè)16位無符號整數(shù),作為所述重組單元的起始編號;所述重組單元用于在所述閃存芯片的鏡像中,以頁為單位搜索,讀取所述預(yù)設(shè)偏移地址處的16位無符號整數(shù),判斷該16位整數(shù)是否與所述起始編號相同,若是,則計(jì)數(shù)器遞增 1 ;直至所述計(jì)數(shù)器遞增至報(bào)數(shù)終點(diǎn)為止;以及,將搜索到的包含有所述起始編號的頁寫入所述容器文件創(chuàng)建單元?jiǎng)?chuàng)建的容器文件;所述計(jì)數(shù)提取單元,用于重復(fù)將所述起始編號遞增1,以及,調(diào)用所述重組單元按新的起始編號執(zhí)行重組操作的過程,直至所述遞增后的起始編號不能在所述閃存芯片的鏡像中搜索到為止。
7.如權(quán)利要求6所述的閃存芯片數(shù)據(jù)解析裝置,其特征在于,還包括統(tǒng)計(jì)單元和判斷單元,其中所述統(tǒng)計(jì)單元用于讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù);以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);所述判斷單元用于判斷所述統(tǒng)計(jì)單元獲得的相同值個(gè)數(shù)是否為2的η次方,若否,則結(jié)束數(shù)據(jù)解析過程;其中,η為不小于2的正整數(shù)。
8.如權(quán)利要求6所述的閃存芯片數(shù)據(jù)解析裝置,其特征在于,還包括統(tǒng)計(jì)單元和報(bào)數(shù)終點(diǎn)生成單元,其中所述統(tǒng)計(jì)單元用于讀取所述閃存芯片的末尾頁,以該末尾頁的預(yù)設(shè)偏移地址為起始地址,提取一個(gè)64位無符號整數(shù);以上述64位無符號整數(shù)為參照值,以預(yù)設(shè)偏移地址為每個(gè)鏡像頁的參照地址,在所述閃存芯片的整個(gè)鏡像中進(jìn)行搜索,獲得與該64位無符號整數(shù)相同的相同值個(gè)數(shù);所述報(bào)數(shù)終點(diǎn)生成單元用于將所述統(tǒng)計(jì)單元獲得的相同值個(gè)數(shù)除以4、2或8,作為所述重組單元使用的報(bào)數(shù)終點(diǎn)。
9.如權(quán)利要求6 8之一所述的閃存芯片數(shù)據(jù)解析裝置,其特征在于,所述頁的大小為 528字節(jié);所述預(yù)設(shè)偏移地址為512或520字節(jié)。
10.如權(quán)利要求6所述的閃存芯片數(shù)據(jù)解析裝置,其特征在于,還包括數(shù)據(jù)轉(zhuǎn)換單元, 用于將所述引導(dǎo)扇區(qū)搜索單元和重組單元讀取的16位無符號整數(shù)作后續(xù)操作之前,先進(jìn)行如下轉(zhuǎn)換置換該16位無符號整數(shù)的高8位和低8位,并將置換后產(chǎn)生的16位整數(shù)的高 4位清零,生成轉(zhuǎn)換后的16位整數(shù)。
全文摘要
本發(fā)明提供了一種閃存芯片數(shù)據(jù)解析方法和裝置,所述方法包括創(chuàng)建用于保存數(shù)據(jù)解析結(jié)果的空容器文件;在整個(gè)鏡像范圍內(nèi)搜索引導(dǎo)扇區(qū)頁,在預(yù)設(shè)偏移地址處讀取一16位無符號整數(shù)作為后續(xù)步驟的起始編號;在芯片鏡像中以頁為單位搜索讀取一16位無符號整數(shù),判斷其是否與起始編號相同,若是,則計(jì)數(shù)器遞增1,直至計(jì)數(shù)器遞增至報(bào)數(shù)終點(diǎn)為止,并將搜索到的包含有起始編號的頁寫入容器文件;重復(fù)執(zhí)行將起始編號遞增1以及按上述方法搜索并寫入容器文件的過程,直至遞增后的起始編號不能在閃存芯片的鏡像中搜索到為止。本發(fā)明基于引導(dǎo)扇區(qū)搜索、冗余數(shù)據(jù)分析和計(jì)數(shù)提取閃存芯片數(shù)據(jù)解析方法,可解決現(xiàn)有技術(shù)僅能對單一證據(jù)信息進(jìn)行數(shù)據(jù)解析的問題。
文檔編號G06F12/02GK102567209SQ20101059817
公開日2012年7月11日 申請日期2010年12月21日 優(yōu)先權(quán)日2010年12月21日
發(fā)明者張志偉, 張雪峰, 高志鵬 申請人:廈門市美亞柏科信息股份有限公司