复合文档头 WinHex模板
使用winhex手动合并与分离文件
机计算网络安全技术计算机使用winhex手动合并与分离文件面对一个合并文件的二进制流,如何找出哪里是前一个文件结尾,哪里是后一个文件的开头。
可以联想到文件头标志,这方面的知识,利用不同类型的文件头标志,做为分离的依据。
以word文档为例,word文档稍微复杂一点,这是因为word文档的文件头和压缩文件的文件头用Winhex打开合并后的文件,查找docx的文件头标志:壹MS Word/Excel(xlsx.or.docx),文件头:504B0304贰ZIP Archive(zip),文件头:504B0304zip格式的文件头和word的docx一样,这是为什么呢,因为DOCX和XLSX本质上就是一个压缩文件呀。
修改docx后缀为zip等压缩格式,然后用压缩工具解压查看,可以看到清晰的多个文件和目录结构。
过程提示:Array①将合并后的文件,根据文件头标志,手动搜索,找到另一个文件头,手动分离。
查看分离后的2个文件是否能正常查看。
查找菜单,“搜索”-“查找十六进制数值”保存为2.docx,打开后看到之前写入的flag。
1.1实验案例使用winhex手动分离,找到flagdfg-05D1.jpgdfg-05D2.jpg2.1实验案例①新建一个word文档,写下flag。
②找一张图片,用winhex打开,③新建一个word文档,写下flag,并保存,④用winhex打开此word文档,将word文档的二进制流复制到图片文件的尾部⑤使用图片查看器观察是否能正常浏览。
⑥使用binwalk工具扫描,然后分离,看是否能成功分离。
也可以使用copy命令,linux cat命令进行合并。
使用binwalk扫描,得知文档类型根据类型,使用dd从指定字节处分离出文件。
谢谢观看计算机。
WinHEX初级使用手册
标题栏:与一般的应用软件一样,标题栏中显示软件名称和当前打开的文件名称;菜单栏:WinHEX的菜单栏由八个菜单项组成-文件菜单、编辑菜单、搜索、定位、工具、选项菜单、文件管理、窗口和帮助菜单。
在文件菜单中,除了常规的新建、打开文件和保存以及退出命令以外,还有备份管理、创建备份和载入备份功能。
选择文件菜单中的属性项,弹出文件属性窗口,包括文件路径、名称、大小、创建时间和修改日期等内容.在编辑菜单中,除了常规的复制、粘贴和剪切功能外,还有数据格式转换和修改的功能。
在搜索菜单中,你可以查找或替换文本内容和十六进制文件,搜索整数值和浮点数值。
在定位菜单中,你可以根据偏移地址和区块的位置快速定位。
在工具菜单中,包括磁盘编辑工具、文本编辑工具、计算器、模板管理工具和Hex转换器,使用十分方便.在选项菜单中,包括常规选项设置、安全性设置和还原选项设置.在文件管理菜单中,你可以对文件进行分割、比较、复制和剖析,功能十分强大。
在WinHEX的工具栏中,包括文件新建、打开、保存、打印、属性工具;剪切、粘贴和复制编辑工具;查找文本和Hex值,替换文本和Hex值;文件定位工具、RAM编辑器、计算器、区块分析和磁盘编辑工具;选项设置工具和帮助工具按钮。
通过使用工具栏中的快捷按钮可以更方便的进行操作,这些和菜单中相应的命令是一样的.在使用WinHEX之前需要进行相应的选项设置,点击工具栏中的选项设置快捷图标按钮,弹出选项设置对话框。
它包括是否将WinHEX 作为默认关联,是否添加WinHEX到上下文菜单,是否不更新文件名,是否快速打开文件以及是否显示文件图标和工具栏。
而且你还可以设置最近打开的文件列表中文件的数目,选择是否用TAB键产生标记,设置临时文件夹、备份文件夹和文本编辑的路径。
在常规设置中,你可以选择是否选择显示双光标和页分隔符,是否逐行滚动,是否显示Windows进度条,此外你还可以设置字体类型和颜色,相信你很快就学会了。
复合文档文件格式解析-修复照片,word文件必备知识
复合文档文件格式研究复合文档(Compound Document)是一种不仅包含文本而且包括图形、电子表格数据、声音、视频图象以及其它信息的文档。
可以把复合文档想象成一个所有者,它装着文本、图形以及多媒体信息如声音和图象。
目前建立复合文档的趋势是使用面向对象技术,在这里,非标准信息如图像和声音可以作为独立的、自包含式对象包含在文档中。
Microsoft Windows就是使用这种技术,叫做―OLE2 stora ge file format‖或―Microsoft Office compatible storage file format‖。
当然Excel、Word等都是用这种格式存储的。
本文主要研究复合文档的二进制结构,本文的目的就是为另一篇文章《Excel文件格式研究》(创作中)做准备的。
本文是在英文资料的基础上完成的,文中某些术语的翻译可能不够标准,但都会给出英文原名。
关于这方面的中文资料网上几乎找不到,如果您有的话,请发到我的邮箱,谢谢。
由于本人水平有限,文中错误难免,欢迎大家批评指正。
目录第一章仓库与流(Storages and Streams第二章扇区与扇区链(Sectors and Sector Chains第三章复合文档头(Compound Document Header第四章扇区配置(Sector Allocation第五章短流(Short-Streams第六章目录(Directory第七章文件实例剖析第一章仓库与流复合文档的原理就像一个文件系统(文件系统:如FAT与NTFS)。
复合文档将数据分成许多流(Streams),这些流又存储在不同的仓库(Storages)里。
将复合文档想象成你的D盘,D盘用的是NTFS(NT File System)格式,流就相当于D盘里的文件,仓库就相当于D盘里的文件夹。
流和仓库的命名规则与文件系统相似,同一个仓库下的流及仓库不能重名,不同仓库下可以有同名的流。
用WinHex修复损坏的OFFICE复合文档文件头
用WinHex修复损坏的复合文档文件头用WinHex修复损坏的复合文档文件头说明:1、本教程仅仅针对复合文档(比如Word、Excel等)的文件头损坏后的修复.2、请允许我假设你已经了解复合文档的结构,至少你能知道复合文档中的一些术语(比如:SAT、SSAT MSAT、标准流、短流等),否则,请你弥补相关知识后继续阅读本教程(以前我曾发过一个相关内容的帖子:/viewthread.php?tid=37559extra=&page=1 )3、这个教程中涉及到的文档样本大家可以到/thread-40685-1-1.html中下载.4、网上这方面的资料很少,所以本教程中有的名词是自己“命名”的,因此,相关名词请只在本教程中使用和理解!!如有不明白之处,可以相互交流(我的QQ:409133413)现象打开这个文档时出现乱码(如图):分析数据用WinHex打开这个文档,如下图:分析:这个文档的文件头损坏了,继续分析后面的内容损坏没有,现在把这个文档设置为磁盘(如图),复合文档在储存数据的最小单位是块(一个块是512个字节,相当于一个扇区的数据,所以有时我们也把它称为扇区),这样操作后看到的数据可以以一个扇区的形式呈现,便于分析和手工重建。
经过分析数据发现,这个文档好像只有第0扇区的数据完全破坏了,这个扇区的内容是复合文档的文件头内容,网上有恢复复合文档文件头的视频教程(这个论坛上就有!!),好像就是把一个正常的复合文档的前几行数据复制一下就行了,从理论上讲恢复的成功率极小,几乎是0。
因为复合文档的结构和FAT文件系统极其相似,但比它还要复杂一些(涉及到短流、SSAT和MSAT),复合文档的文件头相当于FAT文件系统中的DBR,有很多参数是要根据文件的具体数据进行相应的修改。
下图中红底黑字部分描述的就是一般要修改的内容(有7处,小的文档一般只改其中的5处),其它部分可以用一个正常的复合文档的相应数据代替。
修复文件头
最近学习了复合文档的格式,在修复复合文档头方面做了不少实践,有了一些心得,经过梳理,做了个例子,把思路和过程介绍给大家,希望能解决你的不时之需!例子中用的文件如下图:名为“实验文档”,是个空文档,里面没有内容,看属性,10,752字节,刚好21扇区,复合文档的文件大小一定是512字节的整数倍,这跟复合文档的设计有关系。
EXCEL,PPT等文件也属于复合文档,也符合这样的特点。
后来我又想,可能有网友会对修复后的文件产生怀疑,没有内容的文件可能说明不了问题,所以我在文件中输入了很短的文本内容!如下图:实验文档是一个正常的文件,另外我用Winhex把该文件的文件头(前面512字节)全部写成了0,最彻底的破坏,保存为“损坏的实验文档”,大家可以用现有的修复软件试一下,能不能修复,我用EasyRecovery Professional没有修复成功!其它的软件没有试过!下面,就请大家跟我一起看,如何把“损坏的实验文档”修复成功!先介绍用到的工具软件Winhex,功能很强大,可以用二进制的方式打开文件,并进行编辑,保存!该软件不仅可以打开文件,还可以打开硬盘,对硬盘数据进行编辑,搜索功能什分强大,用起来非常方便,同时支持脚本,提供API函数。
软件界面如下图:用该软件打开“实验文档”和“损坏的实验文档”,可以对比一下前512字节,为了便于操作,我们需要将文件解释为硬盘,让软件以扇区的方式显示文件内容,看起来直观些!两个文件的在软件里显示如下图:可见,“损坏的实验文档”前面的512字节全是0,文件头被全部破坏,文件无法用office打开!复合文档文件头的定义:Offset Size Contents0 8 复合文档文件标识:D0H CFH11HE0HA1HB1H1AHE1H8 16 此文件的唯一标识(不重要, 可全部为0)24 2 文件格式修订号 (一般为003EH)26 2 文件格式版本号(一般为0003H)28 2 字节顺序规则标识(见3.2)::FEH FFH= Little-EndianFFH FEH= Big-Endian30 2 复合文档中sector的大小(ssz),以2的幂形式存储, sector实际大小为s_size = 2ssz字节(一般为9即512字节, 最小值为7即128字节)32 2 short-sector的大小(见5.1),以2的幂形式存储, short-sector实际大小为s_s_size = 2sssz字节(一般为6即64字节,最大为sector 的大小)34 10 Not used44 4 用于存放扇区配置表(SAT)的sector总数48 4 用于存放目录流的第一个sector的SID (见6)52 4 Not used56 4 标准流的最小大小(一般为4096 bytes), 小于此值的流即为短流。
用WinHex修复损坏的复合文档文件头
用WinHex修复损坏的复合文档文件头说明:1、本教程仅仅针对复合文档(比如Word、Excel等)的文件头损坏后的修复.2、请允许我假设你已经了解复合文档的结构,至少你能知道复合文档中的一些术语(比如:SAT、SSAT MSAT、标准流、短流等)现象打开这个文档时出现乱码(如图):分析数据用WinHex打开这个文档,如下图:分析:这个文档的文件头损坏了,继续分析后面的内容损坏没有,现在把这个文档设置为磁盘(如图),复合文档在储存数据的最小单位是块(一个块是512个字节,相当于一个扇区的数据,所以有时我们也把它称为扇区),这样操作后看到的数据可以以一个扇区的形式呈现,便于分析和手工重建。
经过分析数据发现,这个文档好像只有第0扇区的数据完全破坏了,这个扇区的内容是复合文档的文件头内容,网上有恢复复合文档文件头的视频教程(这个论坛上就有!!),好像就是把一个正常的复合文档的前几行数据复制一下就行了,从理论上讲恢复的成功率极小,几乎是0。
因为复合文档的结构和FAT文件系统极其相似,但比它还要复杂一些(涉及到短流、SSAT和MSAT),复合文档的文件头相当于FAT文件系统中的DBR,有很多参数是要根据文件的具体数据进行相应的修改。
下图中红底黑字部分描述的就是一般要修改的内容(有7处,小的文档一般只改其中的5处),其它部分可以用一个正常的复合文档的相应数据代替。
说明:要修改的文件头内容:1、存放扇区配置表(SAT)的扇区总数(2CH -2FH )2、存放目录流的第一个扇区的SID (30H -33H )3、存放短扇区配置表(SSAT)的第一个扇区的SID (3CH -3FH )4、存放短扇区配置表(SSAT)的扇区总数(40H -43H )5、存放主扇区配置表的第一个扇区的SID (如果为-2表示没有附加扇区)(44H -47H )6、存放主扇区配置表的扇区总数(48H -4BH )7、存放主扇区配置表(MSAT )的第一部分(从4CH 开始,视具体情况决定结束位置)备注:如果文件比较小(存放主扇区配置表的第一部分在第0扇区没有装满),第5、6两部分不用修改!!要修复文件头,一般从扇区配置表(SAT )的数据分析开始,SAT 相当于FAT 文件系统中的FAT 表,它把这个复合文档的各类数据“链”在一起,所以我们反过来通过分析它们的链接情况和相应位置的数据,来分析整个文档的数据结构,最后根据相关信息重建文件头,达到修复文件头的目的。
WinHex使用教程
一、Winhex的使用二、用Winhex打开要修改的文件,显示如下界面:任何一个存储在计算机上的文件都可以认为是由最基本的0和1组成的,Winhex便是将这些文件以二进制形式打开。
不过显示的时候是十六进制,一位十六进制相当于四位二进制,两位十六进制相当于八位二进制即一个字节,每个字节即对应一个地址。
左边那一列是行标,上边那一行是列标,行标和列标便组成了地址。
如6BFA3003这个地址,其行标便是6BFA3000,列标为3。
想要修改数值,直接键盘输入即可。
一个基本常识:对于有多位的十六进制数值而言,存储方式是低位在前,高位在后。
如6e731f这么个值,存储方式便是1f 73 6e。
既然显示十六进制,那么自然存在一个十六进制和日常使用的十进制转化的问题。
通常可以靠Windows的计算器来完成,点击Winhex工具栏的图标即可打开。
在计算器的查看菜单里选择“科学型”,便有进制转换的功能。
其实Winhex自带的数据解释器也可以实现进制转换。
(看不到数据解释器的,单击视图——显示——数据解释器)把光标定在某一地址,数据解释器里便能显示对应的十进制数值。
在数据解释器里输入十进制值然后按回车,则那个地址的数值就会被改写成对应的十六进制。
在“选项——数据解释器”里还能对数据解释器的显示内容作设置,比如翻译无符号数、浮点数等,这个有兴趣的自己试试。
地址定位靠行标和列标来定位地址显然是愚蠢废力的。
Winhex的工具栏上有个图标,点击显示如下界面:此时直接在“新位置”里输入地址便可完成定位。
也可以定位相对地址。
比如此时位置在某ATK首地址,要往上移1000h到达MOV首地址,那么在“新位置”里输入1000,“相对于”选择“当前位置(P)(返回至)”就行了。
同理,到了MOV首地址后又要往下移960h到达一方地址,则可以在“新位置”里输入960,“相对于”选择“当前位置(C)”。
“位置”菜单里还有个很实用的功能:标记位置和转到标记,快捷键分别是Ctri+I和Ctrl+K。
winhex模板
WINHEX的数据结构模板学习阅读次数: 725一、模板概述定制数据结构模板,这当然比直接分析16进制的原始数据要方便得多,而且不容易出错。
你编辑好数据结构模板保存后,数据模板就生效了。
这样你就可以分析来自硬盘、内存等一些数据,这些数据将套用你数据结构模板来显示数据了。
例如:这样你可以定制一个模板来查阅数据库记录。
模板本身是个带扩展名TPL的文本文件。
WINHEX提供的模板编辑器可以让您写模板的定义,并提供语法检查. 模板的定义,主要包含变量声明,类似于源代码的编程语言. 支持的数据类型包括所有的共同整数,浮点和布尔类型,日期类型, hex值,二进制,文字, 串型. 数组变量和一组变量,都可以使用.能自由移动,前移和后移的数据,使得使用模板的特别灵活:1.同一个变量可以有多种用途2.你不关心的数据部分可以跳过模板管理器列出所有的模板的winhex目录,包含模板定义、标题、附加说明、文件名,点击应用按钮,显示模板选用模板定义的数据,在当前编辑窗在目前的数据解释. 你也可以创造一个新的模板定义,删除或编辑一个现有winhex提供的几个模板样例.二、模板定义模板由头部和主体两部分组成,模板头部定义的格式如下:template "title"//模板标题[description "description"]//说明[applies_to (file/disk/RAM)]//应用到文件、磁盘还是内存[fixed_start offset]//固定的起始偏移值[sector-aligned]//扇区对齐[requires offset "hex values"]//要求偏移的HEX值相等[big-endian]//高字节优先[hexadecimal/octal][read-only]//只读[multiple [fixed overall size]]// Put any general comments to the template here.beginvariable declarations ...end中括号代表是该项是可选的.表达式里面含有空格的话就要用双引号引起来. 评论会出现在模板的定义. 字继双斜线被忽略的解析器. 注释可以写在仸何地方,在注释前要“//”号。
海云数据恢复内部资料_Winhex模板编写教程
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.beginvariable declarationsend在方括号里的标签表示为可选项。
标签的顺序没有硬性的规定,用户可以随意的更改他们的顺序。
表达式中如果有空格则必须用双引号括起来。
模板文件中的注释以为双斜杠开头。
关键字“applies_to”后必须跟着“file,disk,或RAM”中的一个。
模板应用于不同的介质的时候,winhex将发出错误警告。
默认的情况下,模板将从窗口中光标的位置处执行,使用“fixed_start”选项将让模板从磁盘或文件的偏移量的绝对开头处运行。
应用于磁盘的模板,关键字“sector-aligned”将让模板从当前扇区的开头处运行,而忽略光标的当前位置。
关键字“requires”同“applies_to”的功能类似,都是为了避免模板定义的数据和应用程序的数据不匹配而引发的错误。
可以利用“requires”事先指定好特征码。
比如,一个有效的主引导扇区偏移量0x1FE位置必须为“55 AA”(也就是扇区的最后两个字节),而一个有效的可执行文件在偏移量0x0位置必须为“4D 5A”(“MZ”)。
模板头中可以定义多行“ applies_to”。
winhex教程(下)
然后在选区中单击鼠标右键,选“编辑”又出来一个菜单,然后我们选“复制选块”——“正常”然后我们切换回硬盘1窗口,在零扇区的第一个字节处单击鼠标右键,选“编辑”然后选“剪贴板数据”——“写入……”出现一个窗口提示,点“确定”这样,我们就把一个正常系统盘上的引导代码复制过来了。
下面,我们就开始恢复分区表(共64个字节,分为4个分区表项,每个分区表项占用16个字节,一般只使用前两个分区表项),我们首先来恢复第一个分区标项(也就是用来描述C盘的)。
首先,在第1个字节处(0扇区倒数第五行,倒数第二个字节)填上分区引导标志,因为C盘是活动分区,所以填上80。
接着是第2、3、4字节(本分区起始磁头号、扇区号、柱面号),填上:01 01 00。
第5字节是分区类型符,因为原先C盘是Fat32格式,所以填上:0B。
那么,如果你不知道C盘是什么格式怎么办呢?你会说问问客户呀,那么如果他也不知道呢?别着急,后面在说恢复DBR的时候我会教你怎么分辨分区的格式。
第6、7、8字节是本分区的结束磁头号、扇区号、柱面号,这怎么知道呢?别着急,现在的磁盘都是按照LBA方式寻址,并不按照C/H/S(及柱面、磁头、扇区)方式寻址,所以这个地方你填些什么一般关系不大,但是我要告诉你有一个通用的填法,那就是:FE FF FF。
第9、10、11、12字节,本分区之前已用了的扇区数,也就是MBR所占用的扇区数,那不是63吗?对,但是要将63转为十六进制数,再反过来倒着填写上。
还记得怎么用计算器吗?将63转为十六进制数是3F,不够四个字节前面加零,也就是00 00 00 3F,再将此数从右向左依次序反过来就是3F 00 00 00。
第13、14、15、16字节是本分区的总扇区数,也就是C盘的大小,这就要通过稍微一点点计算来得到了。
因为C盘是从第63个扇区开始,而C盘后面紧接着的是EBR,所以用EBR所在的第一个扇区数减去63就是C盘的大小。
那么如何才能找到EBR所在的第一个扇区呢?我们前面说过,EBR的结构和MBR是一样的,所以,EBR的结束标志也一定是55AA,那么,只要我们找到这个结束标志,再看看这个扇区是不是EBR不就行了?单击“搜索”——“查找十六进制数值……”,然后出来一个对话框在文本框中输入“55AA”,搜索框中选“全部”,然后选中“条件”,把偏移量设置为“512=510”。
(完整版)winhex-教程-+应用+数据恢复-Doc文件恢复-MBR、EBR、DBR
winhex 教程+应用+数据恢复-Doc文件恢复-MBR、EBR、DBR字节位置内容及含义第1字节引导标志。
若值为80H表示活动分区;若值为00H表示非活动分区。
第2、3、4字节本分区的起始磁头号、扇区号、柱面号第5字节分区类型符:00H——表示该分区未用06H——FAT16基本分区0BH——FAT32基本分区05H——扩展分区07H——NTFS分区0FH——(LBA模式)扩展分区83H—— Linux分区第6、7、8字节本分区的结束磁头号、扇区号、柱面号第9、10、11、12字节本分区之前已用了的扇区数第13、14、15、16字节本分区的总扇区数1、什么是逻辑驱动?2、什么是物理驱动器?3、怎么搜索MBR、EBR、DBR?MBR、EBR、DBR他们都是以55AA结尾在winhex中搜索16进制:55AA 偏移512=510(1)搜索DBR的标志:FAT16的DBR:EB 3C 90 没有备份的DBRFAT32的DBR:EB 58 90 (备份的DBR)在该分区的第6扇区NTFS的DBR: EB 52 90 (备份的DBR)在该分区的最后一个扇区判别MBR的方法:MBR就在LBA第一个扇区,打开物理硬盘,第一个扇区就是了。
MBR的分区表在1BE 偏移往后到1FD,共64个字节,每项16个字节。
1FE-1FF就是“55 AA”判别EBR的方法:EBR的结构和MBR的结构是一样的,在倒数第五行倒数第二个字节应该是00 01,并且前446个字节应该是0(2)查找DBR 可以通过搜索本分区的EBR去找DBR.可以搜索EBR,定位DBR.DBR相对于EBR后63号扇区。
(3)当某分区的DBR坏了,就提示:未格式化 这个时候用winhex打开逻辑盘,就打不开。
我们只有通过打开物理驱动器,然后跳转到该分区。
就可以查看DBR是否被破坏了。
可物理驱动器的模式是从"0"扇区开始描述系统而逻辑驱动模式是从系统的DBR开始描述系统(从第64扇区开始描述).用winhex 做U盘免疫AUTO.INF用WinHex制作无法修改的AutoRun.inf文件 在我们日常工作中,经常需要使用闪存(也称为U盘或者优盘)主要是AutoRun.inf 文件在起作用,我们可以使用WinHex解决这一问题。
WinHex模板入门教程
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提供的模板。
beginread-only hex 3 "JMP instruction" //00char[8] "File system ID" //03uint16 "Bytes per sector"uint32 "Hidden sectors" //1Cread-only hex 4 "(unused)" //20read-only hex 4 "(always 80 00 80 00)" //24int64 "Total sectors" //28 uint32 "Checksum" //50goto 0x1FE //boot load code followsread-only hex 2 "Signature (55 AA)" //1FEend其中双斜杠(//)代表注释Goto 表示,从你选择的偏移的开始,向后跳0X1FE个字节;read-only hex 2 表示读取两个字节,并以十六进制显示。
winhex模板的使用方法
winhex模板的使用方法winhex有很多的官方winhex模板,可以在网上下载(后缀tpl)并放至它的安装目录,即可使用。
不过要是自己能自己制作,这才好玩,不是么?!打开winhex模板管理器,可以选中其中一个winhex模板,下面有应用,有编辑,你点开编辑按钮,就可以看到对应的winhex模板源码。
而你点开那个新建按钮,就可以自己写winhex模板了,最后保存到安装目录即可。
海天数据恢复小提示(按住CTRL+FA12 是模板管理器的快捷键可以快速打开模板管理器)提醒一点,我是在记事本下写好粘贴到新建后那个面板上的,因为我发现有好些符号它不支持,比如下划线、引号等,maybe是我自己没设置的原因,不过,这不是重点,略过。
写好后,那个面板下有检查语法的按钮,通过它可判断你的代码是否语法正确。
闲话不多说,下面,我来讲解下winhex模板编程的语法:winhex模板头的常用关键字:1.template:声明模板的名字 eg:template “海天数据恢复的winhex模板1″2.description:描述参数,描述这个winhex模板的用途。
(保存好后,你可以在winhex模板管理器里看到你自定义的模板的名字,描述等信息。
)eg:description “这个winhex模板是用来。
”3.applies_to:参数可以是file/disk/RAM。
指定该winhex模板的适用对象时文件、磁盘还是内存。
eg:applies_to disk4.fixed_start offset:winhex模板的默认起始偏移量取决于光标停留的位置,而这个关键字是来指定偏移量起始位置。
eg:fixed_start 0x0405.sector-aligned:作用是指定winhex模板从当前扇区的偏移0位置运行。
无参数。
6.requires offset:匹配数据,若发现指定偏移量的位置的数据不匹配,就会报错。
注意:这里的偏移量是相对于winhex模板起始偏移量计算的。
winhex比较详细的图文使用教程+WinHex使用方法详解
winhex⽐较详细的图⽂使⽤教程+WinHex使⽤⽅法详解数据恢复分类:硬恢复和软恢复。
所谓硬恢复就是硬盘出现物理性损伤,⽐如有盘体坏道、电路板芯⽚烧毁、盘体异响,等故障由此所导致的普通⽤户不容易取出⾥⾯数据,那么我们将它修好,同时⼜保留⾥⾯的数据或后来恢复⾥⾯的数据,这些都叫数据恢复,只不过这些故障有容易的和困难的之分;所谓软恢复,就是硬盘本⾝没有物理损伤,⽽是由于⼈为或者病毒破坏所造成的数据丢失(⽐如误格式化,误分区),那么这样的数据恢复就叫软恢复。
这⾥呢,我们主要介绍软恢复,因为硬恢复还需要购买⼀些⼯具设备(⽐如pc3000,电烙铁,各种芯⽚、电路板),⽽且还需要懂⼀点点电路基础,我们这⾥所讲到的所有的知识,涉及⾯⼴,层次深,既有数据结构原理,为我们⼿⼯准确恢复数据提供依据,⼜有各种数据恢复软件的使⽤⽅法及技巧,为我们快速恢复数据提供便利,⽽且所有软件均为⽹上下载,不需要我们投资⼀分钱。
数据恢复的前提:数据不能被⼆次破坏、覆盖!关于数码与码制:关于⼆进制、⼗六进制、⼋进制它们之间的转换我不想多说,因为他对我们数据恢复来说帮助不⼤,⽽且很容易把我们绕晕。
如果你感兴趣想多了解⼀些,可以到百度⾥⾯去搜⼀下,这⽅⾯资料已经很多了,就不需要我再多说了。
数据恢复我们主要⽤⼗六进制编辑器:Winhex (数据恢复⾸选软件)我们先了解⼀下数据结构:下⾯是⼀个分了三个区的整个硬盘的数据结构MBR C盘EBR D盘EBR E盘MBR,即主引导纪录,位于整个硬盘的0柱⾯0磁道1扇区,共占⽤了63个扇区,但实际只使⽤了1个扇区(512字节)。
在总共512字节的主引导记录中,MBR ⼜可分为三部分:第⼀部分:引导代码,占⽤了446个字节;第⼆部分:分区表,占⽤了64字节;第三部分:55AA,结束标志,占⽤了两个字节。
后⾯我们要说的⽤winhex软件来恢复误分区,主要就是恢复第⼆部分:分区表。
引导代码的作⽤:就是让硬盘具备可以引导的功能。
数据恢复软件Winhex使用说明书
目录Winhex概述 (3)1、软件的安装 (3)2、软件使用及介绍 (4)Winhex概述WinHex是一个专门用来对付各种日常紧急情况的小工具。
它可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。
同时它还可以让你看到其他程序隐藏起来的文件和数据。
具体功能如下:*可以对硬盘、软盘、CD-ROM、DVD、ZIP及各种存储卡进行编辑*支持FAT、NTFS、Ext2/3、ReiserFS、Reiser4、UFS、CDFS、UDF等文件系统*可支持重组RAID及动态磁盘*附带数据恢复功能*可以访问物理内存及虚拟内存*内置数据解释器,可以识别解释20种数据类型*可以用数据结构模板查看、编辑结构数据*可以分割与合并文件*可以对文件进行分析与对比*具有灵活的搜索和替换功能*可以对磁盘进行克隆*可对磁盘进行压缩镜像备份,支持对备份文件进行分卷处理*具有编程接口,支持脚本操作*支持256位加密、校验和、CRC32、hash(MD5,SHA-1)计算*支持对磁盘进行数据安全销毁*包含ANSI ASCII,IBM ASCII,EBCDIC,Unicode字符集*支持文件大小超过4GB1、软件的安装Winhex的安装与普通软件安装没有区别,以在Windows XP下为例,双击Setup.exe程序即可开始安装过程。
如图1.1所示。
图1.1程序默认的安装路径是C:\Program Files\WinHex,当然也可以自行选择安装到其他位置。
可以选择语言种类,不过用以选择中文的Chinese按钮处于灰色不可选状态,应该是尚不支持中文。
用户可以选择其它语言,默认语言是英文。
确定安装位置无误后,点击OK按钮,程序会弹出一个询问框,询问是否确定将程序安装到所选位置。
如图1.2所示。
图1.2如果要对安装位置重新选择,可以按“否”按钮回到原界面进行设置。
否则按“是”按钮继续安装。
程序随即会弹出询问框询问是否要建立快捷方式。
winhex文件头的几种类型
WinHex是一款十六进制文件编辑器,可以用来查看文件的二进制编码,进而判断文件的类型。
文件头(也称为文件签名或魔术数字)是文件的开头部分,通常包含用于标识文件类型的特定字节序列。
以下是一些常见的文件类型及其对应的文件头:
1.JPEG(jpg):FFD8FFE1
2.PNG(png):89504E47(0D0A1A0A)
3.GIF(gif):47494638
4.ZIP Archive(zip):504B0304
5.RAR Archive(rar):52617221
6.XML(xml):3C3F786D6C
7.MPEG(mpg):000001BA 或000001B3
8.AVI(avi):41564920
9.TIFF(tif):49492A00
10.Windows Bitmap(bmp):424D
11.CAD(dwg):41433130
12.Adobe Photoshop(psd):38425053
13.Rich Text Format(rtf):通常没有特定的文件头,但可以通过内容分析来确定。
此外,对于可执行文件(.exe, .dll, .drv, .vxd, .sys, .ocx, .vbx),其文件头通常是“4D5A900003”。
请注意,文件头并不总是完全确定文件类型,因为有些文件可能会被修改或伪装以隐藏其真实类型。
此外,随着技术的发展,新的文件类型和相应的文件头可能会出现。
因此,对于最新的文件类型,建议查阅相关的技术文档或资源。
一种基于WinHex修复复合文档的方法
一种基于WinHex恢复复合文档案例分析摘要:office是专用于办公文档编辑的应用程序。
目前常见文件格式主要有两类:一类是二进制格式的复合文档,如doc/xls/ppt,另一类是基于office open xml标准的压缩文件格式,如docx/xlsx/pptx。
office文档在我们日常工作中广泛被应用,其本身也是属于电子数据,具备电子数据易复制性、易丢失性、易破坏性等特性。
本文主要结合复合文档的结构进行恢复案例分析。
关键词:二进制、复合文档、电子数据、易破坏性、数据恢复1.复合文档概述二进制格式的复合文档主要是包括了文本信息、电子表格信息、图像视频信息、声音信息等数据。
目前所创建的复合文档主要是采用面向对象技术,即是除了文本信息以外的其他信息如声音、图像视频等都可以作为单独对象包含在文档中。
我们常见的doc/xls/ppt等文档都是用这种格式存储的。
1.1仓库与流关系复合文档本身是属于多元化文档合集,其文档结构和FAT文件系统结构基本类似,故在分析复合文档结构是可以参考FAT文件系统进行对比分析,复合文档是将数据信息(文本信息、电子表格信息、图像信息、声音信息等)分成许多小子集,把这种小子集称为“流”(steams),在文件系统中的创建的数据仓库(storages)就是用来储存这些数据流的场所。
如图1所示:root storagestorage1stream1stream2storage2stream3stream4stream21stream1stream22stream23图1 仓库和结构流的关系1.2扇区和扇区标识结合仓库与流的关系,进而把数据流又细分成更小的数据块(数据扇区(sectors)),。
数据扇区主要包含用户数据或者控制数据。
整个文件也主要包含一个头文件(header)和数据扇区,数据扇区的大小在头文件中确定,且每个数据扇区大小一致。
具体如下图所示:headersector0sector1sector2sector3sector4sector5图2 扇区和扇区标识数据扇区主要在存储文件中的顺序列举,一个扇区的索引(从0开始)称作为“扇区标识”(SID)。
复合文件头分析
复合文件头分析1、存放扇区配置表(SAT)的扇区总数(2CH-2FH)2、存放目录流的第一个扇区的SID(30H-33H)3、存放短扇区配置表(SSA T)的第一个扇区的SID(3CH-3FH)4、存放短扇区配置表(SSA T)的扇区总数(40H-43H)5、存放主扇区配置表的第一个扇区的SID(如果为-2表示没有附加扇区)(44H-47H)6、存放主扇区配置表的扇区总数(48H-4BH)7、存放主扇区配置表(MSAT)的第一部分(从4CH开始,视具体情况决定结束位置)备注:如果文件比较小(存放主扇区配置表的第一部分在第0扇区没有装满),第5、6两部分不用修改!!(这个地方有点你分区中的FAT表位置的指向。
)从上表头文件可以分析出:第一、这是一个复合文档。
文件头是:D0 CF 11 E0 A1 B1 1A E1。
第二、存放扇区配置表(SAT)的扇区总数为1。
这个地方的数据代表SA T表占用的扇区数。
SAT表像FAT文件系统中的FAT项。
SAT表的结束标志是FDFFFFFF。
一般可以通过查找十六进制FDFFFFFF确定SAT表的位置。
再根据SAT表跟FAT项差不多的特征可以知道SA T表占用多少个扇区。
第三、这个复合文档存放ROOT的第一个扇区为第46扇区。
在SAT表中的入口是在46000000。
如果在46000000的位置不是FEFFFFFF而是其它数据。
则代表至少有两个扇区是ROOT。
其中的数据指向下一个ROOT入口。
这样就可以确定文件目录流占用多少个扇区。
如果文件头损坏,可能通过查找十六进制52006F006F007400。
条件是512=0。
可以快速找到ROOT位置从而确定文件头中存放ROOT的第一个扇区的值。
第四、这个文件有短扇区配置表,开始位置为48扇区。
短扇区配置表到目前为止还不能很理解。
自己理解的方法是通过查找十六进制01000000FEFFFFFF来确定短扇区配置表的开始位置。
第五、短扇区配置表所占用的扇区数。