《快速入门》
第十章 高级应用-1
下一章

十二章
 
 
 

第十章   高级应用-1 

理解文件签名库和文件类型库

 

本说明中所有图片均出自X-ways Forensics 及Winhex 13.8版。
 
     

本节,我们利用Winhex / X-ways Forensics分析软件,对“王者加密大师”1.0版工具软件制作的加密文件进行分析,介绍一种数据分析方法。即如何对未知文件格式进行分析,发现该类型文件的唯一特征签名信息,通过“修改文件签名库”,使Winhex / X-ways Forensics分析软件能够自动通过文件签名校验发现这种类型的加密文件。

一、“王者加密大师”简介

王者加密大师是一款简单易用的数据加密工具软件。据该软件官方描述:王者加密大师是一款专业的加密、解密软件,可以对任何想加密的文件进行加密,这就是说你可以用它对各种文件进行加密,如:文本文件(*.txt)、图像文件(*.jpg,*.gif,*.bmp,*.tif...)、音乐文件(*.mid;*.mp3;*.wav;*.wma,*.wmv...)、可执行文件(*.exe;*.dll...)、办公文件(*.wps;*.doc;*.xls)等众多的文件进行加密解密。软件充分考虑了用户的操作,通过简单几步便可完成加密,解密要求。本软件将是你重要数据和隐私的保护神。软件下载地址:www.sjwx.net

软件安装后,运行该软件,可看到如下主界面。进行加密、解密操作,只需点击相应按钮即可。

二、“王者加密大师”加密测试

1、首先制作1份需要加密保护的文件。利用MS Word,制作一份新文件,并在文件中输入了一些文字。

2、调用王者加密大师,选择刚刚制作的需要加密的Word文件。

 

3、软件显示加密成功,出现如下窗口。

 

4、我们用Word打开刚刚制作的加密文件,Word显示如下信息:

当在Word软件中出现这种信息,通常表示该Word文件格式破损,Word软件无法识别正确的文件格式,无法成功打开该文件。此时证明,王者加密大师已经对该文件数据加密成功。

 

二、利用Winhex/X-ways Forensics软件分析文件格式

我们利用Winhex/X-ways Forensics打开该文件。可以发现,原有的Word文件的标准文件头部数据被改变,被“王者加密大师”改变为其自身格式。但察看其文件格式,我们吃惊地发现,利用王者加密大师对Word文件添加的保护口令,竟然以明文形式保存在文件头部。本例中,我们设置的口令为x-ways@china-forensic.com,通过下图,可以清楚地看到这一段口令。

这仅仅是偶然,还是“王者加密大师”就是以这种无保护方式保存口令呢?为验证口令保存方式,我们需要重新制作加密样本文件,进一步查看试验结果。

我们首先建立一个0字节的TXT文本文件,不添加任何内容。即在任意目录下,通过鼠标右键建立一个文本文件,命名为“空白文档.TXT”。此时,我们还没有输入任何内容,利用Winhex/X-ways Forensics打开该文件,可看到下图显示状态。

3、利用“王者加密大师”对该文件加密。本次,我们设定口令为1234567890

由于文件中没有任何数据,因此,加密后显示出的数据均为“王者加密大师”经过一定算法自动生成的,有助于我们对该文件格式进行分析。

Winhex打开加密后的TXT文本文件,可发现,口令果然以明文形式保存在文件中。

三、文件签名的概念

通过两个实验,我们可以证明,“王者加密大师”通过一定算法对数据进行保护,但为了解密方便,该软件没有对口令进行保护,而是直接将口令以明文形式保存在加密文件头部。只要利用Winhex/X-ways 打开该文件,即可直接得到了用户添加的原始口令。

但在实际的数据分析过程中,关键问题是如何在上千、上万份文件中发现这些文件。怎么才知道某个文件是由“王者加密大师”添加了保护口令呢?如果文件无法发现,则更谈不上破解保护口令,察看文件内容了。

Winhex/X-ways Forensics中,我们可以通过自定义“文件签名”库,快速检测到“王者加密大师”的加密文件。

 

1、文件签名库

       文件签名,简单说就是某类文件的独特标识信息。这些标识,有时可以显示出ASCII码字符,如RAR压缩文件,在文件头部,可以看到Rar!这四个字符。通过这四个字符,Winhex就可以判断该文件属于RAR压缩文件。但在多数文件头信息中,文件签名无法显示出ASCII码字符,那么就需要使用十六进制数值来表示该文件签名。如MS OFFICE 文件中,文件签名就是D0CF11E0A1B11AE1Winhex/X-ways Forensics通过这些十六进制数值,也可以认定该文件属于MS OFFICE 类型文件。

       通常来说,Windows注册表关联了许多种文件扩展名类型,通过定义扩展名和应用程序的关联,来确定Windows使用什么程序打开某种类型的文件。比如,Windows定义了DOC扩展名文件使用MS Word来打开,TXT文件使用记事本来打开。

       但是,如果人为改变了某种类型文件的扩展名,例如,某人将SCAN.JPEG图片改名为CONTACTS.XLS,或将1.DOC改名为1,没有设定扩展名,那么Windows就无法准确地关联这些文件类型了。而利用文件签名,我们可以忽略文件扩展名是否正确,通过搜索文件签名特征值,识别出某个文件的真实类型。本例中,我们如果能够准确判断出“王者加密大师”加密文件的文件签名值,即可借助Winhex/X-ways Forensics将一个磁盘中所有包含此文件签名的文件查找出来。

    这就是数据分析过程中,文件签名所起到的重要作用。

 

       2Winhex/X-ways Forensics文件签名定义方法

    Winhex/X-ways Forensics中,判定文件签名状态是否匹配主要依据文件签名值和文件扩展名,这些信息包含在Winhex/X-ways Forensics 文件签名数据库中,文件名为File Type Signatures.txt

通过对比File Type Signatures.txt文件签名库中所定义的文件类型、扩展名、文件签名特征值,可以判断某个文件真实的类型,用于发现文件扩展名与文件真实类型不匹配的文件。例如,某人将SCAN.JPEG图片改名为CONTACTS.XLSWinhex/X-ways Forensics能够自动依据JPEG图片文件的签名特征,把该文件的真实类型识别出来,并在Winhex的文件类型列表中显示文件类型为“jpg”,签名状态列中显示该文件“签名不匹配”。同样,对于一些没有扩展名的文件,如互联网暂存目录下的网页文件等,Winhex都可以帮助你将无扩展名文件的真实类型识别出来。

 

3File Type Signatures.txt文件格式定义

File Type Signatures.txt 中的数据共分为六列,每一列数据定义如下:

第一列:文件类型。

对某种类型文件的定义,如JPEGMS OFFICE等,长度为19 字符。

 

第二列:文件扩展名

对所定义文件类型的典型扩展名。如jpgjpegjpe,或docxlsdot等,长度可超过255个字符。

 

第三列:文件头签名

用于识别某些文件或某文件类型的唯一签名特征,可以是ASCII码或十六进制数值。例如0xFFD8FF,即为十六进制的FFD8FF文件头签名最多支持16个字节。为了发现某种文件格式的唯一签名特征字节,可以打开多个相同类型的文件,利用Winhex /X-ways Forensics察看这些文件头部信息中相同偏移地址中包含的相同十六进制数值。

 

第四列:偏移量。

包含文件签名的相对偏移量。通常,文件签名从文件的第一个字节开始,偏移量为0

 

第五列:文件尾签名

可选项,用于标记文件的结尾位置,可以是ASCII码或十六进制数值。文件尾签名的作用是为了确定准确的文件结尾位置,从而得到准确的文件容量。文件头签名最多支持8个字节。

 

第六列:文件缺省字节数

定义某类性文件的默认大小,以KB为单位。在进行特定类型文件恢复时非常有效,如一个视频文件可以是1 GB 大小,而一个图标文件往往只有1 KB

 

四、修改文件签名库,添加“王者加密大师”文件签名信息

掌握了Winhex/X-ways Forensics的文件签名库格式后,我们既可根据文件库定义,对“王者加密大师”的加密格式进行分析,查找此类文件的文件签名。

一般来说,分析一种类型的文件签名至少要使用3-4个样例文件,对比每一个文件在同一位置的相同字节,来发现文件签名特征字节。下面,我们使用3个例子,分析“王者加密大师”加密文件的文件签名。

 

1

例2

例3

1、文件签名标志位

经对比上述3个文件,我们可发现“王者加密大师”制作的加密文件有明显的特征,即第1-8个字节固定不变,即01 00 00 00 01 00 00 00。一般来说,通过这种特征,我们可以认定这8个字节就是该类型文件的文件签名特征值。

由于文件签名从文件头开始,因此,偏移量为0

此类文件没有文件尾签名特征值。

字节数没有固定大小。

文件类型,我们可以直接用中文名称描述,本例中,我们将其定义为“王者加密大师”。

扩展名,由于王者加密大师可以对任意类型文件加密,文件扩展名没有固定名称。但是我们需要利用Winhex/X-ways Forensics通过文件签名与扩展名类型不匹配的方法查找“王者加密大师”的加密文件,因此,我们需要给其定义一个特殊扩展名。将来可以通过过滤这种特殊类型扩展名的方法找到加密文件。因此,我们将扩展名!!1定义给“王者加密大师”。

 

文件类型

扩展名

文件头签名

偏移量

文件尾签名

字节数

王者加密大师

!!1

0x0100000001000000

0    

 

 

 

2、修改Winhex/X-ways Forensics 文件签名数据库

File Type Signatures.txt 文件中预设了许多文件类型签名,用户可以自定义并添加自己判定的新的文件签名类型,最多可设置255 数据项。

当自定义并修改File Type Signatures.txt文件签名库文件时, WinHex 会调用MS Excel来进行数据编辑,因为MS Excel支持文本文件中的TAB制表符。

执行Winhex/X-ways Forensics磁盘快照命令,选择“文件签名”按钮。

 

Winhex/X-ways Forensics自动调用EXCEL打开File Type Signatures.txt文件。

输入我们前面定义好的文件类型、文件扩展名、文件签名、偏移量几个信息。编辑结束,保存修改。

选择“是”,保存File Type Signatures.txt原文件格式。此时,文件签名库修改保存成功。重新运行Winhex/X-ways Forensics,即可以使Winhex/X-ways Forensics识别新的文件签名库。

如果用文本编辑器修改File Type Signatures.txt文件,需要注意不要删除TAB制表分隔符,否则Winhex将无法识别该文件中的保存的文件类型定义。

 

四、利用文件签名库过滤“王者加密大师”加密文件

执行Winhex/X-ways Forensics磁盘快照命令,选择“依据文件签名校验文件真实类型”。此时,Winhex/X-ways Forensics 将按照我们刚刚修改的File Type Signatures.txt 文件签名库中的信息,对当前案件中所有磁盘中的数据文件进行文件签名比对,校验文件的真实类型。

依据我们的设定,Winhex/X-ways Forensics 将发现当前案例中的“王者加密大师”加密文件,将其真实文件类型显示为“!!1”,并将其归入“签名不匹配”类别。

我们实际测试一下过滤结果。

1、调用磁盘快照,选择相应选项。

2、设置过滤选项,注意选择显示扩展名、文件类型、签名状态。同时以签名状态为过滤条件,选择过滤“签名不匹配”文件。

 

3、应用过滤条件后,Winhex/X-ways Forensics可以直接发现“王者加密大师”的加密文件。

四、利用文件类型库过滤加密文件

参考上图,我们可以看到,在“分类描述”列中,Winhex/X-ways Forensics将王者加密大师文件描述为 “加密类”。这个描述是如何添加进Winhex/X-ways Forensics 中的呢?如何将更多的文件类型添加进Winhex/X-ways Forensics中呢?下面,我们进一步阐述“文件类型库”的修改方法。

1、文件类型库的主要功能

文件类型库可以定义某种文件扩展名属于哪个类型。如扩展名DOCTXT,被归类于文字编辑类,扩展名ZIPRAR,被归类于压缩类。通过文件类型过滤方式,Winhex/X-ways Forensics可以快速将磁盘中的某类数据过滤出来。

当在磁盘快照中选择了“通过文件签名判别文件真实类型”后,选择“文件类型”过滤方式时,Winhex/X-ways Forensics将依据文件签名库和文件类型库中的定义,把对应类型的文件搜索并显示出来。

Winhex/X-ways Forensics 14.0版文件类别库中包含有近380个文件描述,分为办公类、电子邮件类、互联网记录类、图像类、视频类、音频类、注册表类、压缩类、镜像类等共计14个分类。随着版本不断升级,File Type Categories.txt 文件类别库中的数据还在不断增加。

 

2、文件类型库 File Type Categories.txt的文件格式

File Type Categories.txt文件中,文件类型名称以 :xxx: 开头,其中xxx表示自定义的文件类型,如办公类、加密类、压缩类等等。文件类型库最多支持32 类别。如果个人修改了File Type Categories.txt文件中的数据,一定要注意保存好新增加的信息,并随时添加至最新版的文件类型库中。

File Type Categories.txt中,文件扩展名描述行必须“+” “-”开始。

+”号,表示该行定义的属于扩展名,每行对应一个,文件扩展名必须使用小写字母。扩展名描述与扩展名之间要保留一个空格。File Type Categories.txt中定义了重复的扩展名,那么过滤结果可能会出现错误。

-”号,表示该行定义的属于文件名,也可以是文件名+扩展名。这种对于过滤准确 “文件名”的文件非常有效。例如:-;index.dat; Internet Explorer 历史记录。通过此过滤,可以将当前磁盘中所有文件名为index.dat的文件过滤出来。

对于File Type Categories.txt文件中未包含的扩展名,都被归属于“其它”类别中。

、添加“王者加密大师”至File Type Categories.txt中

根据我们前面的定义,我们将王者加密大师的文件类型!!1添加至File Type Categories.txt文件中。

由于目前的14个分类中,没有划分出加密类,因此我们新建立一个文件类别“加密类”。将其定义为:

:15:加密类

 在此类别之下,定义王者加密大师扩展名描述。

+!!1 王者加密大师

 保存文件,重新运行Winhex/X-ways Forensics,即可以使Winhex/X-ways Forensics识别新的文件类型库。

 

小结:

本节,我们通过分析“王者加密大师”加密文件格式,重点阐述了Winhex/X-ways Forensics中,文件签名库和文件类型库的作用,以及如果通过修改这两个库文件实现对更多类型文件的检索和过滤。相信读者根据此实例,能够很好地掌握两个库文件的使用技巧。不明之处,欢迎交流。

注:此功能仅在Winhex Forensics和X-ways Forensics版本中能够使用。

 

 

 




版权所有  1995-2007 Stefan Fleischmann德国X-ways软件公司  中国计算机取证技术研究组