欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]xls文件取证

[原创]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盘,所以,其中或许会留下一些残余数据。
原文http://www.purpleroc.com/html/982735.html
——Tracy_梓朋
2013/12/18

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功