WinHex模板入门教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WinHex模板入门教程
WINHEX模板, 模板教程
Winhex强大的模板功能,我们无需死记硬背每个字节的含义是什么,占用几个字节。

不足的是,winhex提供给我的模板是在是太少了,比如遇到一个陌生的文件系统,或者是文件结构,我们还得去记忆某个字节代表什么,zzzZZZZZ,很费时,效率又很低。

我们今天就为大家讲述一下如何制作自己的模板,打开winhex,然后选择“view”,---“template manger” 先看一下别人是怎么创建的。

点edit
按钮
上图显示的就是模板的代码。

template "Boot Sector NTFS" 就是模板的名字,“NTFS的引导扇区模板”,可以不写。

description "Boot sector of an NTFS partition" 描述,就是这个模板是做什么用;可以不写
applies_to disk 适用于硬盘;
sector-aligned 扇区对其;
requires 0x00 “EB”调用这个模板以后,软件就会自动检查,在偏移00的位置是否有0xEB这两个字节,如果没有,winhex就会弹出来一个消息框,提示再0x00的位置没有找到0xEB;可以设置多个标志,如本例中的55AA的结束标记
在开始之前,简单普及一下数据类型
Hex 十六进制
Char 字符类型;
Int 整型;(有负数)
Uint = unsigned int 无符号整型;
写模板,从begin开始,到end结束。

也就是说。

我们的结构体,是在这个中间的。

以下模板为NTFS的DBR的模板,由于考虑篇幅问题,我删减
了一部分,详细资料,请参考winhex提供的模板。

begin
read-only hex 3 "JMP instruction" //00
char[8] "File system ID" //03
uint16 "Bytes per sector"
uint32 "Hidden sectors" //1C
read-only hex 4 "(unused)" //20
read-only hex 4 "(always 80 00 80 00)" //24
int64 "Total sectors" //28 uint32 "Checksum" //50
goto 0x1FE //boot load code follows
read-only hex 2 "Signature (55 AA)" //1FE
end
其中双斜杠(//)代表注释
Goto 表示,从你选择的偏移的开始,向后跳0X1FE个字节;
read-only hex 2 表示读取两个字节,并以十六进制显示。

Char[8]表示 8个字符(字符数组),比如“NTFS”,就应该写成char[4]
Uint16 表示16位,即2个字节。

同理uint32表示32位,即四个字节。

有兴趣的朋友自己尝试写一个,写的过程中用右下角的check syntax检查语法,并提示错误的行。

修改即可。

相关文档
最新文档