WinHex数据恢复笔记(二)
续写上次笔记:
1、Winhex数据恢复软件的界面上的所有功能已经介绍了一遍,最主要的还是编程恢复的能力。
今天主要看看记事本的编辑恢复及其相关的一些问题,记事本的 编辑值是ASCII值,所以没有文件的特征头格式,将winhex编辑区的十六进制数据复制到新的记事本当中,汉字的编码是每四个字节编码一个汉字。所以会看到如下图的处理结果。碎片文档的恢复一种思路就是,通过回忆自己之前在文档中的内容,记录下来之后将内容转换成十六进制的数据,再用Winhex数据恢复软件在碎片文件中进行遍历群举查找。找到破碎的文档之后再根据文档的格式的头部特征找到文档头,文档尾,恢复整个文档,恢复文档主要看文档自身的价值来衡量这次文档恢复的收费。(文档收费一般都是按字节收费的)
记事本的编码格式决定了该文档中不能隐藏数据,但是像其他的Word格式图片格式(png,img)文档中存在很多的0值,编辑之后就可以以用来隐藏数据。

2、新建文件的作用尤为重要的,当恢复文档碎片的时计算字节的偏移量是很费神的但是可以通过新建多个文件将每一个碎片复制进去,这样将字节相对偏移变成了绝对偏移。那么新建文件需要多大的文件,选择恰当的文件大小,避免了过多的0值填充。恢复提取中尽量设置要大于碎片文件的大小。找到第一个碎片文件将其编辑区的十六进制的数据复制到新建的文件中,继续找到第二个文件紧跟在第一个文件的后面复制进去。保存之后重新定义文档格式和名字并保存文件。这样就将碎片文件恢复当原来的样子。这种思想可以用在很多格式文档的恢复中,无论是Word文档还是Excel文档,都可以用这样的思路来重建。新建的文件都是拿0值填充的。

3、文件格式究竟是什么样子的,最终还是逃不了数据,也就是说所有的文件其实就是一堆数据,只是格式不一样。下看看JPEG图片的文件格式。
如下图JPEG的头文件格式编码是 FF D8 FF E1,文件句柄是FF D9,现在按照这个格式重新新建一个文件,中间的数据编辑区随意填写或者复制一点其他图片的数据填充并保存


这里要说明的是这样随便填充的图片任然图片查看器无法浏览的,因为图片中的哈夫曼编码损坏啦,不能正确解析数据。要掌握图片的压缩的原理和技术。关于JPEG图片的恢复问题并不是根据MBR引导区的修复问题,JPEG图片有自己的构造。不过你可以根据文件的头格式,和文件句柄格式大致在数据中确定一个大致范围,然后在进行准确的判断。
4、文件数据碎片的归类问题
这个问题很多国外数据专家都在研究,但是没有彻底的解决,较常提的是模式识别算法。像“费舍尔线性鉴别理论” 、“奥斯卡检测模式”。在数据篡改问题上研究数据的底层排列形式尤为重要。如果用垃圾数据直接覆盖原本的数据,这样追溯到原本的数据是很难的。对于文档可以提取能够识别的数据段,进行拼合数据,但是对一幅图片进行数据修改本身技术要求很高,图片的数据压缩算法就决定了,修改一个数据导致全部的数据都会变化。
5、下一次对硬盘镜像问题做一个说明。
WinHex数据恢复笔记(二)的更多相关文章
- WinHex数据恢复笔记(一)
WinHex数据恢复功能强大,可以从硬件簇上扇区进行数据扫描恢复.首先对winhex的各个功能介绍.之后对实例记录一个Word文档删除后进行恢复. 1.WinHex数据恢复软件的编辑区输入与其他普通文 ...
- Winhex数据恢复笔记(五)
一.上次介绍了Windows API函数,这次对Windows API函数的参数做个笔记 1.IpFileName: 文件名指针,也可指向 MS-Dos设备名,同时支持文件和设备名,函数分为两个版本 ...
- Winhex数据恢复学习笔记(三)
上次对文件系统进行简单的分析,这次就文件的镜像功能做一介绍 1.首先镜像的概念:镜像就是数据的副本,是原来数据在相同位置上以相同的排列模式生成的拷贝,所以镜像可以用来还原原始数据,代替原始数据工作,镜 ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}
笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...
- Mastering Web Application Development with AngularJS 读书笔记(二)
第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...
- Python 学习笔记二
笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
随机推荐
- jq的遍历关系元素方法集合
children .children(selector) 返回被选元素的所有直接子元素,不返回文本节点: 下面例子:给level-2的子元素设置border.比较使用children和find htm ...
- 【Linux】LD_PRELOAD用法
转载https://blog.csdn.net/iEearth/article/details/49952047 还有一篇博客也可以看看https://blog.csdn.net/xp5xp6/art ...
- 微信小程序-用户拒绝授权使用 wx.openSetting({}) 重新调起授权用户信息
场景模拟:用户进入微信小程序-程序调出授权 选择拒绝之后,需要用到用户授权才能正常使用的页面,就无法正常使用了. 解决方法:在用户选择拒绝之后,弹窗提示用户 拒绝授权之后无法使用,让用户重新授权(微信 ...
- MySql 在cmd下的学习笔记 —— 有关储存过程的操作(procedure)
我们把若干条sql封装取来,起个名字------把此过程存储在数据库中叫存储过程 调用procedure 储存过程是可以变成的,意味着可以使用变量,表达式,控制结构 来完成复杂的功能 声明变量 pro ...
- Solr版本问题分析
在之前的Solr版本中(Solr5之前),在创建core的时候,Solr会自动创建好schema.xml,但是在之后的版本中,新加入了动态更新schema功能,这个默认的schema.xml确找不到了 ...
- springboot配置server相关配置&整合模板引擎Freemarker、thymeleaf&thymeleaf基本用法&thymeleaf 获取项目路径 contextPath 与取session中信息
1.Springboot配置server相关配置(包括默认tomcat的相关配置) 下面的配置也都是模板,需要的时候在application.properties配置即可 ############## ...
- [转] 使用gc && objgraph 优化python内存
转自https://www.cnblogs.com/xybaby/p/7491656.html 使用gc.objgraph干掉python内存泄露与循环引用! 目录 一分钟版本 python内存管 ...
- 自学MVC看这里——全网最全ASP.NET MVC 教程汇总(转)
自学MVC看这里——全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要 ...
- u3d 2D开发学习
http://gad.qq.com/article/detail/45365 https://blog.csdn.net/s556699/article/details/55224830 UI层设计 ...
- hibernate框架学习之数据模型-POJO
Hibernate数据模型用于封装数据,开发时候需要遵从如下规范:1)提供公共无参的构造方法(可使用自动生成的)如果使用投影技术,一定要显式声明公共无参的构造方法2)提供一个标识属性,作为对象的主键, ...