您现在的位置: Tracy‘Blog > 博客 > Forensic > 正文
xls文件取证

还不写下来,就真怕自己给忘了,也忘了当时是怎么做的了。情况是这样的:“如果要你在硬盘里搜索同时出现A和B的文件”,你会怎么做?
估计答案会很多,比如用win自带的win+F、用第三方搜索软件、用……当然,用win+F的确可以搜索,不过印象中只能搜txt中的文本。那,第三方软件呢?或许也可以吧,那,如果我要找的是可能被删除的数据呢?
问题就来了,其实,算是要去磁盘中找出一些证据来证明磁盘中以前出现过这个A和B,也或者说,以前存在过一个文件,其中或许包含有A和B。嗯,这是引子,用来引出这篇文章。我要做是从硬盘中找出证据用来判断某个xls文件是否被改动过,手里有的信息:该xls文件名字、存放位置、文件中改动前数据、改动后数据、C盘img镜像文件。
我的思路以及解决办法是:
1、分析出xls文件格式,数据保存形式。
2、分析出xls文件数据改动特征。
3、确定已知文件中两改动前的数据的位置与数据的内容。并记录两者之间相对于文件的偏移地址。两地址之差为数据间间隔的偏移地址。
4、用winhex对整个img文件搜索,找出符合条件的硬盘偏移地址n,并记录下来。
5、能否通过winhex直接定位到文件?
若能,则直接恢复此文件进行判别。
若不能,则跳转到第六步。
6、利用已知文件,算出改动数据在文件中的偏移地址n1。记录其到文件尾的位置n2。
7、将第四步得到的偏移地址,dump(n-n1——n+n2)这段区间的数据。
8、利用对比工具,对比第六部得到的dump数据与改动后的文件,判断其相似度。


若全靠手动去查找,在winhex好像没有找到条件查询,这就必须得自己先搜一个关键字,而后,手动定位到这个位置后偏移xx处,然后人眼识别出是不是自己要找的数据。然后再F3,查找下一个。额,这还不算恶心,最恶心的是什么呢?大家都知道,一个盘的img动辄几十上百GB,你若是这么一个个去找,估计……
那,怎么办呢?你肯定会想,让他自己去找,自己去判别,然后记录文件位置。的确,要实现自动化。记得,有句话这么说的:“软件,就是为了减少这些机械动作而存在的。”,偷懒才会有创造性嘛。那我们是自己去写个软件呢?还是?
还好,winhex给我们提供了脚本语言。
折腾了好久,总算写下了一个可以凑合着运行的脚本:


open "I:\C_pan.img"
assign n1 1
{
	find 0x600FE440 down        //查找条件A
	iffound
		assign m1 currentpos
		move 28
		assign m3 currentpos
		read m2 4
		ifequal m2 0x008EE240     //查找条件B
			create "D:\result\C\right_addr+n1+.txt" 32   //若同时满足A和B则将偏移位置写入rightxx.txt
			write m1
			write m3
			write m2
			save
			close
		else
			create "D:\result\C\juge_addr+n1+.txt" 32  //若只满足A则将偏移位置写入juge_add以供人工分析
			write m1
			save
			close
		endif
		inc n1
	endif
}[unlimited]



跑了一整个下午后,得到的结果是:成功取证。找到两个偏移地址,dump出一个地址,找到成功恢复一个已删除文件。


在网上找了很久关于xls文件保存形式的内容,可惜都没。唯一找到了两个文件“compdocfileformat”、“excelfileformat”,全英文的,大概浏览了下,没找到我想要找的东西,也为了以后大家不要自己去测试分析,写下一些我的总结与发现吧。

1、xls的Temp文件在一个目录下只可鞥存在一个,即最后一次编辑时留下的Tem文件。
2、xls一个单元格中全是字母的情况下,字母以ASCII码保存在文件中。
3、xls一个单元格中字母与数字共存的情况下,字母与数字以ASCII码保存。
4、xls一个单元格中字母与汉字共存的情况下,字母与汉字均以unicode码保存。
5、xls数据存储位置并不是按照表格中单元格的顺序进行存放,而是按照用户写入顺序进行存放。
6、xls中,若顺序输入的一组单词中的某个单词后来修改过,则修改过程为:先清空原来保存位置的内容,并将修改后的单词保存在改组单词的最后。
如下图:由TRACY改为TTTTT的过程。


7、上述条件中,增加单词的过程则直接在后面添加内容。
8、xls中所有反斜杠表示的日期如:2013/12/18皆以数字形式保存在文件中,其中1代表1900/1/1.
9、当字母与汉字或数字组合形式出现在同一个单元格的时候,上述更改会发生保存位置转移的情况将不再出现。
10、数字单独在单元格中存储时,用4个字节存放一个数字,其中1位3F FF FE 00(具体记不起了,大概是这个样子的)。

11、还有一点,就是,offic系列软件在编辑过程中会有自动保存功能,位置也是在c盘,所以,其中或许会留下一些残余数据。



——Tracy_梓朋

2013/12/18

发表评论(0)
姓名 *
电子邮件
QQ
评论内容 *
验证码 *图片看不清?点击重新得到验证码请输入图片后链接字符‘a’