|
现在我们使用的QQ作为应用程序是部署在操作系统之中的,而操作系统提供的多种服务也是可以让程序开发变得更加的简单。比如说文件系统,这种系统是为应用程序使用长久数据来服务的,其本质是对于磁盘的软件抽象。在磁盘之上抽象出树形的动态目录。
而QQ在运行的时候需要需要存储或者是读取数据的时候就是需要文件系统提供的“文件”数据接口。早期的应用程序数据存储仅仅是依赖OS的文件系统就可以了。但是随着应用程序的数据规模越来越多,越来越繁琐我们必须使用数据库来进行管理。所谓数据库其实对于程序来说是一种对于文件的再次抽象,其把文件虚拟化成为数据表的集合。程序通过数据库管理API完成对于数据的自由高效操作。
腾讯QQ在实现对于用户保存的技术就是基于数据库的,我们在其保存数据库的文件的后缀名(*.db)就可以看出来。
而其实所谓的QQ聊天记录恢复也就是对于文件系统之中的文件恢复,在之前我们说了文件系统其实是对于磁盘的抽象。那么磁盘的基本存储结构是什么样的呢?这里需要引入扇区这样的一个概念。
现在运行QQ的机器大多数都是桌面计算机,而桌面计算机之中使用的磁盘大多数是机械磁盘,这种磁盘的原理是构造一个表面有微型磁道存在并且可以被磁化的介质,配合电机以及磁头实现对于数据的高速存取。扇区一般被规定为512字节(当然也是可以拓展),其对应磁盘之上磁道的数据。
一般的QQ应用程序或者是用户操作删除消息数据库文件都是建立在文件系统抽象之上的,实际之上这类操作作的不是消除磁盘之上的数据,而是把文件系统之中关于这类文件存储的扇区地址或者是其他的信息数据消除掉。而文件系统其实也是存放在磁盘之上的,所以说根本之上仅仅是一个简单索引的改变。
利用低级的扇区搜索工具我们可以实现对于这些数据信息的获取,但是这是无规则的,并且现在的大容量存储器不可能实现人工的数据搜索。在实际应用之中我们使用软件配合人工实现QQ聊天记录恢复。软件主要是定位文件存储于扇区之上的位置和其他各类信息。而人工则实现对于文件的精确恢复,如果文件存在一定破坏的话,这也是需要专业人员根据文件结构来实现最大程度的挽救。
最后恢复的结果是一个数据库文件,当然这个数据库是经过加密的文件,用户无法打开,通过腾讯QQ之中的消息导入功能用户就是可以看到恢复数据的真正效果。
|
|