海云數(shù)據(jù)恢復內(nèi)部資料Winhex模板編寫教程_第1頁
海云數(shù)據(jù)恢復內(nèi)部資料Winhex模板編寫教程_第2頁
海云數(shù)據(jù)恢復內(nèi)部資料Winhex模板編寫教程_第3頁
海云數(shù)據(jù)恢復內(nèi)部資料Winhex模板編寫教程_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、winhex模板編寫教程附錄a:模板定義1 模板頭模板頭的格式:template title description description applies_to (file/disk/ram) fixed_start offset sector-aligned requires offset hex values big-endian hexadecimal/octal read-only multiple fixed overall size / put any general comments to the template here. begin variable declaratio

2、ns end 在方括號里的標簽表示為可選項。標簽的順序沒有硬性的規(guī)定,用戶可以隨意的更改他們的順序。表達式中如果有空格則必須用雙引號括起來。模板文件中的注釋以為雙斜杠開頭。關鍵字“applies_to”后必須跟著“file,disk,或ram”中的一個。模板應用于不同的介質(zhì)的時候,winhex將發(fā)出錯誤警告。默認的情況下,模板將從窗口中光標的位置處執(zhí)行,使用“fixed_start”選項將讓模板從磁盤或文件的偏移量的絕對開頭處運行。應用于磁盤的模板,關鍵字“sector-aligned”將讓模板從當前扇區(qū)的開頭處運行,而忽略光標的當前位置。關鍵字“requires”同“applies_to”的

3、功能類似,都是為了避免模板定義的數(shù)據(jù)和應用程序的數(shù)據(jù)不匹配而引發(fā)的錯誤??梢岳谩皉equires”事先指定好特征碼。比如,一個有效的主引導扇區(qū)偏移量0x1fe位置必須為“55 aa”(也就是扇區(qū)的最后兩個字節(jié)),而一個有效的可執(zhí)行文件在偏移量0x0位置必須為“4d 5a”(“mz”)。模板頭中可以定義多行“ applies_to”。關鍵字“big-endian”使模板中讀到的字節(jié)以big-endian順序排列(高位字節(jié)開頭,intel平臺中一般都是little-endian,蘋果機中通常為big-endian,在windows下分析mac文件可能會用到此關鍵字)關鍵字“hexadecimal

4、”使模板中獨到的數(shù)據(jù)都以16進制方式顯示。關鍵字“read-only”使模板執(zhí)行后顯示的模板面板為只讀模式,不可通過模板面修改數(shù)據(jù)。關鍵字“multiple”可以讓模板直接讀取臨近的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)(只適用于數(shù)據(jù)大小固定的情況下)。(可以參考winhex下的“fat directory entry”模板)2 主干:變量申明模板文件的主干部分同其他編程語言一樣,主要由變量申明組成。申明的基礎形式如下:type title 類型可以是以下類型的任意一種:int8,uint8= byte, int16, uint16, int24, uint24, int32, uint32, int64, uint

5、_flexbinary,float = single, real, double, longdouble = extended,char, char16, string, string16, zstring, zstring16,boole8 = boolean, boole16, boole32hex,dosdatetime, filetime, oledatetime, sqldatetime, unixdatetime = time_t, javadatetime 如果“title”包括空格就必須使用雙引號括起來(“title”不能全都是數(shù)字,并且“title”部分大小寫不敏感)。最多可

6、以包含41個字符。“type”部分至少可以使用下列的一個關鍵字來修飾:big-endianlittle-endian hexadecimal decimaloctal read-only read-write這些關鍵字會直接作用于其后的變量。如果他們在頭部已經(jīng)定義過了,那么在主干部分再重復定義就顯的多余了。(在頭部定義后作用于全局)在“type”之后的數(shù)字表示變量的長度(數(shù)值則為字節(jié),字符串則為字符,在模板中可編輯的長度最多為8192個字節(jié))。在winhex中使用“char16”,“string16”以及“hex”可以支持使用unicode字符和字符串,但不支持unicode字符開頭的256個

7、ansi字符?!皊tring”,“string16”以及“hex”類型the types string,string16, andhex require an additional parameter that specifies the number of elements. this parameter may be a constant or a previously declared variable. if it is a constant, it may be specified in hexadecimal format, which is recognized if the n

8、umber is preceded by 0x. 用戶可以申明一個將數(shù)組變量,并且將數(shù)組變量的大小放在后面的方括號里(如果指定為“unlimited”,則模板會執(zhí)行直到文件結(jié)尾處)。以下兩行代碼申明了一個動態(tài)的ascii字符串,其長度取決于之前的變量大?。簎int8len charlena string以下兩句功能相同byte len string len a string字符“”表示數(shù)組編號的占位符(請看下面)。這個字符對“char”數(shù)據(jù)類型的變量無效,因此會自動的解析成字符串類型。string,string16和hex類型的變量大小,可以通過數(shù)學表達式來表示,數(shù)學表達式需要用括號括起來,并

9、且表達式中不能包含空格。同樣也可以將變量帶入數(shù)學表達式中(同樣變量名不能有空格)。支持的操作有,加法(+),減法(-),乘法(*),整除(/),模除(%),邏輯運算符and(&),or(|),以及xor()。比如:(5*2+1),(len1/(len2+4)。注意:結(jié)果必須為正整數(shù)。3 主干:高級命令當我們用大括號將一個代碼塊設置循環(huán)運行時,我們可以用占位符“”來確定循環(huán)的次數(shù),下列代碼中“numbering”定義了初始值為1(默認為0)。numbering1 byte len string len string no. 10上面代碼在模板中的運行結(jié)果將顯示:“string no. 1”, “

10、string no. 2”.“string no. 10”。用戶可以使用“unlimited”代替方括號中的10,這樣winhex就會循環(huán)執(zhí)行直到文件結(jié)尾部分。或者使用“exitloop”強迫循環(huán)終止。在比較兩個值是否相等方面,winhex模板給出了一個非常有用的命令“ifequal”。“ifequal”操作的兩個表達式可以是10進制常量,整數(shù)變量或數(shù)學表達式,或者字符串(文本或16進制值(winhex將逐字節(jié)的進行比較)。ascii字符串必須用雙引號括起來。而16進制數(shù)必須用“0x”開頭。公式需要用括號括起來。 byte value ifequalvalue 1 exitloop endif

11、 10 “ifequal”命令以“endif”語句作為結(jié)尾。如果表達式的值是相同的則繼續(xù)運行。還可以在語句中插入“else”語句,這樣當“ifequal”的兩個表達式不相同時,跳轉(zhuǎn)到“else”下繼續(xù)執(zhí)行?!癷fequal”語句不可以鑲套使用。“ifgeater”語句和“ifequal”的用法相似。只是“ifgeater”是用來比較第一個表達式的值是否大于第二個表達式的值。字符串和16進制值將按照字典順序排列。為了方便閱讀和查看模板文件,你可以將某些變量捆綁為一組,單獨的顯示在模板面板上:section.section title. . endsection“move”和“goto”命令不用來申明變量,但是可以精確的改變當前位置,跳過無關的數(shù)據(jù)。使用move n語句可以從當前位置條國n個字節(jié)到下一個位置,n可以為負值(正即向前跳,負即向后跳)。而goto n語句中的n則表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論