

如许你就可以剖析来自硬盘、内存等一些数据,这些数据将套用你数据构造模板来显示数据了。例如:如许你可以定制一个模板来查阅数据库记载。模板自身是个带扩展名TPL的文本文件。
如许你就可以剖析来自硬盘、内存等一些数据,这些数据将套用你数据构造模板来显示数据了。例如:如许你可以定制一个模板来查阅数据库记载。模板自身是个带扩展名TPL的文本文件。
一、模板概述定制数据构造模板,这当然比直接剖析16进制的原始数据要便利得多,并且不轻易犯错。
你编纂好数据构造模板保管后,数据模板就生效了。
如许你就可以剖析来自硬盘、内存等一些数据,这些数据将套用你数据构造模板来显示数据了。
例如:如许你可以定制一个模板来查阅数据库记载。
模板自身是个带扩展名TPL的文本文件。欢迎访问上海数据恢复http://www.raidcn.com。
WINHEX供应的模板编纂器可以让您写模板的界说,并供应语法反省。
模板的界说,首要包括变量声明,相似于源代码的编程言语。
支撑的数据类型包罗一切的一起整数,浮点和布尔类型,日期类型,hex值,二进制,文字,串型。
数组变量和一组变量,都可以运用。
能自在挪动,前移和后移的数据,使得运用模板的特殊灵敏:1。
统一个变量可以有多种用处2。
你不关怀的数据局部可以跳过模板治理器列出一切的模板的winhex目次,包括模板界说、题目、附加阐明、文件名,点击使用按钮,显示模板选用模板界说的数据,在当时编纂窗在当前的数据分析。
你也可以发明一个新的模板界说,删除或编纂一个现有winhex供应的几个模板样例。
二、模板界说模板由头部和主体两局部构成,模板头部界说的花样如下:template\"title\"//模板题目[description\"description\"]//阐明[applies_to(file/disk/RAM)]//使用到文件、磁盘照样内存[fixed_startoffset]//固定的开始偏移值[sector-aligned]//扇区对齐[requiresoffset\"hexvalues\"]//要求偏移的HEX值相等[big-endian]//高字节优先[hexadecimal/octal][read-only]//只读[multiple[fixedoverallsize]]//Putanygeneralcommentstothetemplatehere。
beginvariabledeclarations。
end中括号代表是该项是可选的。
表达式里面含有空格的话就要用双引号惹起来。
谈论会呈现在模板的界说。
字继双斜线被疏忽的解析器。
注释可以写在任何当地,在注释前要“//”号。
1。
要害字\"applies_to\"必需跟着一个只要一个文件,磁盘或内存。
假如你是用一个模板解析的数据和用此要害字界说的数据起原不一样的话,winhex会宣布一个正告。
2。
当模板分析这些数据时默许是从当时的光标地位处开端的,一旦运用fixed_start声明地位,分析将老是以指定的偏移地位处开端分析。
3。
假如模板使用于磁盘的状况下,要害字\"sector-aligned\"确保模板从当时的扇区的开端处进行分析,而不论切实的光标在当时扇区确实切地位。
4。
\"requires\"的声明与\"applies_to\"声明有点相似,\"requires\"声明使WinHex避免模板界说对不匹配的数据做错曲解释。
指定一个偏移量和一个恣意长度HEX串(十六进制串)来进行匹配。
例如,一个有用的主指导记载,可以确认的hex串值“55AA”在偏移0x1fe处;一个可执行文件的hex串值\"mz\"在偏移0x0处。
有很多\"appliesto\"声明的模板界说头部,都是思索。
5。
要害字\"big-endian\"招致模板界说一切多字节整数和布尔变量是以big-endian挨次(高字节为优先)的读写。
6。
要害字\"hexadecimal\"使模板界说的一切整数变量的以十六进制记法显示。
7。
要害字\"read-only\"确保模板只能用来显示数据。
数据将成灰色,就不克不及修正数据假如在头部设定\"multiple\"要害字,winhex答应阅读到相邻的数据记载在同个模板。
这就要求winhex要晓得的记载的巨细。
假如\"multiple\"要害字没有指定为尺寸参数,winhex核算模板构造总尺寸(=record)来分析当时地位到模板的对应的末尾。
假如这是一个可变尺寸,即数组巨细或挪动参数来动态决议winhex不克不及阅读先前数据记载。
三、变量声明模板主体的界说首要包罗变量声明,相似于编程言语。
下面是变量声明的根本方式type\"title\"//类型题目下面是类型:int8,uint8=byte,int16,uint16,int24,uint24,int32,uint32,int64,uint_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\"毫不能仅由数字构成。
winhex不区分巨细写字符称。
最多有41字符。
在类型之前可以跟以下要害字big-endian(高字节优先little-endian(低字节优先)hexadecimal(十六进制)decimal(十进制)octal(八进制)read-only(只读)read-write(可读写)这些批改只影响紧随这以后的变量。
他们是多余的,假如他们呈现在头曾经界说数据类型后面的数据代表占用空间巨细的位数,char16和string16是一样的,winhex支撑Unicode字符和字符串。
然则,Unicode字符以外的256个第一的ANSI等价字都不支撑。
最高字符串巨细,可以修正用模板是8192字节。
各类串,string16,hex需求额定参数,明白了一些内容。
这个参数可所以一个常数或一个先前公布变数或数学表达(见下文)。
假如它是一个常数,可以指定十六进制花样,这是公认的,假如号码是先0x。
你可以声明变量数组,把数组巨细括号旁边的品种或称号。
以下两行公布可变巨细的ascii字符串,其长度取决于前变:uint8\"len\"char[len]\"Astring\"相同的功用可以经过以下两句来界说:byte\"len\"stringlen\"Astring\"字符\"~\"可以作为一个占位后改换与实践的数组元素的数量(见高级敕令)。
这并不合用于数组char变数,由于它们会主动被翻译成一个字符串。
字符串的参数,整型变量数据巨细的表达式,可在指定的数学符号。
他们将处置的综合公式解析器。
这些用语须圆括号。
他们不克不及含有空字符。
他们可应用先前公布整型变量的名字不包括空字符。
支撑的举动,别的,(+),减法(-),乘法(*),整除(/),取模(%),位与(&),位或(|),and异或(^)。
有用的数学公式所举例(5*2+1)或(len1/(len2+4))。
后果老是一个整数,必需是一个正数。
zstring和zstring16都是NULL结束的字符串,其巨细取决于动态地在运转决议。
四、高级敕令当附背带,若干变量声明包括一个块,可以重复运用作为一个全体。
然则请留意,块不克不及嵌套在当时的执行任务。
\"~\"字符可以用一个变量的名字作为占位符后改换为实践计数。
择\"numbering\"声明界定在哪里开端计数(0bydefault)numbering1{tabbyte\"len\"stringlen\"StringNo。
~\"}[10]在这个例子实践变量的名字放在模板将\"StringNo。
1\",\"StringNo。
2\",。
,\"StringNo。
10\"。
而不是一个固定的反复数量(10在这个例子中),您能够还注明是\"无限\"。
在这种状况下winhex将反复块到岁尾档案遭遇。
\"exitloop\"可以用来走出这条回路在任何工夫\"ifequal\"是有效的比拟两个表达式。
operands可分为两个数值,是恒定值十进制,整型变量或公式,或许字节序列作文字或hex值是比拟byte字节。
ascii字符串表达式必需加上引号,hex序列必需prreced了\"0x\"标识。
公式须括弧。
{rbyteValueIfEqualValue1ExitLoopEndIf}[10]\"ifequal\"以完毕\"endif\"的声明。
假如比拟表达都是相等的,模板的分析后持续\"ifequal\"。
optionally,\"ifequal\"可以遵照的不等的声明。
模板处置器支进入\"else\"区块,假如表达不克不及划等号。
\"ifequal\"敕令不克不及嵌套。
\"ifgreater\"相似于\"ifequal\"。
前提是准确的,假如第一表达的是大于二。
字符串按辞书挨次进行比拟。
为了便于阅读和导航模板你可确定一组的变量,在对话框中会在分歧组的变量用空间分隔:section\"。
SectionTitle。
\"。
variabledeclaractions。
endsection\"section\",\"endsection\",和\"numbering\"要害字都没有与当时地位的分析有关。
有两个敕令也不做变量声明,但被明白用来改动当前的地位。
可以跳过可有可无的数据(向前挪动)或能获得必然的变量不止一次因为分歧类型(反向活动)。
用\"moven\"声明中跳过n字节,由当前的地位,个中N可说是消极的。
\"goton\"到指定绝对地位,从一开端的模板分析(必需是地位)。
:int32\"Diskserialnumber(decimal)\"move-4hex4\"Diskserialnumber(hex)\"。