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,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
随机推荐
- drawImg、x5浏览器、react
- logistic回归为什么要使用sigmoid函数
https://www.baidu.com/link?url=LnDjrhLG7Fx6YVgR9WljUILkPZrIzOR402wr2goIS-ARtDv9TwZ2VYVbY74fyVpQlE22n ...
- Css - 三大特性
css - 三大特性 1.层叠性 如果通过两个相同选择器设置了同一个元素的某个相同的css属性,按照css相同属性的出现顺序,后面的样式会覆盖前面的样式 2.继承性 祖先元素的关于文本的样式会遗传给后 ...
- Nginx系列4:用GoAccess实现可视化并实时监控access日志
1.ubuntu16.04安装GoAccess GoAccess下载地址:https://goaccess.io/download 安装步骤: $ wget https://tar.goaccess. ...
- mysql数据库可以远程连接或者说用IP地址可以访问
mysql数据库可以远程连接或者说用IP地址可以访问 一般情况不建议直接修改root的权限, 先看下,自己mysql数据库的用户级权限 mysql -u root -p----->用root登陆 ...
- 内核中dump_stack()的实现,并在用户态模拟dump_stack()【转】
转自:https://blog.csdn.net/jasonchen_gbd/article/details/44066815?utm_source=blogxgwz8 版权声明:本文为博主原创文章, ...
- UDP可靠传输那些事
有空来论坛走走,发现讨论udp可靠传输又热了起来,有人认为udp高效率,有人认为udp丢包重传机制容易控制,还有朋友搞极限测试,当然也有人推销自己的东西,这里写一点我个人的看法. udp可靠传输其实非 ...
- 【51nod1847】 奇怪的数学题
就当我是 A 了此题吧... 首先预备知识有点多(因为题目要处理的东西都挺毒瘤): 杜教筛运用(当然你可以用其他筛?) 第二类斯特林数相关定理 下降阶乘幂相关定理 min25 筛运用 好了可以关掉本题 ...
- <TCP/IP>地址解析协议ARP
从前两章中有学到,网络层地址和链路层地址是由不同的,一个是物理地址,一个是IP地址.物理地址固定存储在网卡中,不会改变,而IP地址是可以网络管理员和用户自己分配的 在传统的IPv4网络中,一台A主机要 ...
- html5 - drag 拖拽
参考资料: 张鑫旭 : http://www.zhangxinxu.com/wordpress/2011/02/html5-drag-drop-%E6%8B%96%E6%8B% ...