Wonderful activities
【行业资讯】电子取证新技能:找回消失的数据之手机数据的恢复
发布时间:2021-04-18 21:56:00
来源:公众号:科技强检
电子取证新技能
手机里面的存储数据,可以说是时刻在变化的。手机运行中,时刻会有新的数据在产生,同样也会有旧的数据被抹除,只要CPU在工作,这种新陈代谢就不会停止。
手机在使用的过程中,由于存储容量受到限制,早期产生的用户数据,慢慢地会被新的数据所代替。比如,大部分手机的通话记录,只能显示最近的500条,可以想象,每当继续拨打一次电话,就会产生一条新的通话记录,而最遥远的那次通话记录,相应地就会被顶出去,翻看手机,就会再也看不见它。
有时,使用者也会主动删除一些数据或文件,以达到不为人知的、或者腾出更多存储空间的目的。这些删除动作大体上包括:
1、删除众多条数据记录中一条(如删除一条通话记录、短信、电话本、聊天内容等);
2、删除一个文件(如删除一个图片、音频、视频,或卸载某个应用等);
3、将手机恢复出厂设置(这一操作相当于对硬盘进行格式化)。
有一些意外因素,也会使数据发生变化。比如充电时的电流冲击,进水受潮时的内部短路,存储器的某一部分发生了故障,或者系统本身的先天设计不足等,都会使数据发生改变、错乱、丢失。
这些消失了的数据究竟能不能找回来呢?
溯本求源,让我们通过回顾手机的数据存储机理,一步步来了解怎么样实现文件恢复吧。
1、闪存
早期的手机,由于受到技术与成本的限制,存储器集成度不高,容量也十分有限,难以与今天的手机同日而语。现在的手机存储器,动辄16G、32G、64G,甚至更大。现在手机内部所采用的存储器,是一种叫做闪存(Flash memory)的存储器,它属于内存器件的一种,是一种不挥发性内存。闪存的物理特性与常见的内存有根本性的差异:目前各类 DDR 、 SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应,内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存;而闪存在没有电流供应的条件下,也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。闪存具有容量大、速度快,接口简单等优点,用在手机上十分合适。
2、文件系统
现在的手机,不但品种繁多,而且功能强大,人们对它的依赖,已经超越了个人计算机。计算机对数据和文件的管理,有一套成熟的算法,称为文件系统,包括了FAT、NTFS、EXT等诸多规范。手机也不例外,既有从计算机处借鉴而来的FAT(早期功能机)、NTFS(windows系统的手机),又有根据所选存储器而量身定做的YAFFS(早期安卓系统的智能机)。发展到现在,得益于CPU的运算速度成倍增加以及存储空间的突飞猛进,手机毫不费力地采用了在计算机上应用的十分成熟、可以管理超大型文件的EXT文件系统。
所谓文件系统,是操作系统用于明确存储设备(常见的是磁盘,也有基于各类闪存的存储介质)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
当我们增加或删除一条通话记录、拍摄或删除一张照片、安装或卸载一个应用时,都需要用文件系统的相应操作方法,对闪存进行读写操作。
3、数据的存储
刚出厂的手机,或者做过恢复出厂设置的手机,闪存里除了一些系统运行所必须的数据文件之外,其他部分都被标记为可用。假设这时候我们拍摄了一段视频,那么视频文件就被放置在闪存内可用空间的前面,如果再拍一段视频,那么会将之存储在在上一个视频文件的后面,以此类推,像排队一样,按时间顺序在物理空间上依次被存储。根据文件系统的规则,这两个视频的文件名,是存放在另一个物理位置的,与文件名一起存放的,还有文件创建时间、文件长度、文件的存放位置等等信息。其他文件如图片、音频、地图离线包等,存储的顺序,也和视频一样。
但是这样的顺序,是有条件限制的。当可用的空间越来越小,甚至无法再存储文件时,这种顺序存储的格局,将被打破。一些文件必须被删除,以便腾挪出更多的可用空间,使手机能继续工作下去。而此后产生的文件,再存储时,就进入了一种“见缝插针”的模式,不像一开始那么有顺序了,有的文件如果太大,还会被分割成数块,存储在腾挪出来的不同位置上。
4、文件的删除
文件在存储的时候,除了存储文件内容外,还会将包括文件名、创建时间、长度在内的各类文件信息加以保存,同时还会在特殊位置创建一个链表,把保存文件所占用的空间标记出来,一方面便于操作系统了解这个文件,另一方面,也是在声明“此处已经被我占领”。当某个文件被删除时,为了减少系统的运行开销,闪存中文件的内容并不做改变,仅把文件信息标记为已删除的状态,并将链表释放,用来表示文件内容所处的位置“可以被回收利用了”。这种删除标记会一直存在着,直到系统觉得有回收的必要了,将这些可回收利用的位置上的数据,擦除成一片空白(全0或者全1),用来安放后来的数据文件。这种擦除是有代价的,那就是:消耗了该处存储区域的一点“寿命”。闪存中任一位置的擦除次数,都是有限制的,擦除次数因闪存生产商家及闪存的生产工艺不同而不同,一般在10万次以内。这个数字虽说不小,但是对于电子芯片来说,轻而易举就能达到。所以在手机系统设计之初,就要好好规划数据区的回收机制,均衡各区域的磨损率,以避免在闪存的局部反复擦写、造成不可逆转的物理性损坏。
5、文件的恢复
正是由于擦除操作的小心翼翼,给文件恢复留下了一个时间窗口。根据上面的介绍,不难看出:手机使用越不频繁,手机内可利用空间越大,删除操作离现在越近,数据被擦除的可能性也就越小,文件被恢复的可能性也就越大。一些细节之处,也决定了文件恢复的成败,例如:
(1)有固定格式或者特征码的文件,容易被恢复
如MP4类型的视频文件,有固定格式的文件头和文件尾,文件头中,又包含了文件长度、视频时间等大量信息,根据这些信息,既能判断出文件的一些基本特征,又能检验出恢复出来的文件是否完整。再如JPG类型的图片文件,总是将一张大图片划分成若干块小图片,并把这些小图片按照Z型顺序进行存储,每块小图片都有固定格式的特征码,查找到一个特征码,也就查找到了一小块图片,最终加以拼接,就还原了文件。反之则很难恢复,例如一些即时通讯的语音文件,出于节省流量、提高速度等方面考虑,将采集到的音频数据做了高比率的压缩处理,省略了特征码,也不需要文件头和尾,只剩下了简单的数据流,这样的文件删除后,由于无法验证特征,就很难查找和恢复了。
(2)按顺序存储在同一区域的文件,容易被恢复
比如在【数据的存储】中提到的那两个视频文件,由于数据在物理地址上是连贯的,没有被其他数据隔断,那么只需判断出文件头和文件尾,然后将这之间的数据提出、保存,就可以完整地将这个视频文件恢复了。如果手机使用了一段时间,可用空间变得不那么完整,有些文件就会分布在不同的存储区域,而且又失去了数据与文件之间进行关联的链表,想把若干碎片拼凑成一个完整的文件,就变得比较困难,甚至无法实现了。
(3)文件越小,越容易恢复
因为小文件存储在同一区域的概率更大。一个JPG文件,总是比一个MP4文件容易被恢复。
6、单条数据的删除与恢复
这一点以安卓手机的通讯录为例来说明。通讯录存放在一个数据库文件 contacts2.db 中,随着我们将更多的通讯录存入手机,这个文件也就不断的增大,当然这个增长速度是有限的,因为每个联系人的信息都不会太多。正是因为每个联系人所占用的存储空间十分小,当我们从通讯录删除掉一个联系人的时候,操作系统并没有为腾挪这一点空间而大动干戈,只是在存储这个联系人的数据前面做一个删除标记。当我们再翻看通讯录时,手机就会对做了删除标记的联系人视而不见,不予显示,我们也就看不到了,从而体会到了“那人已被删除”的感觉。此时,通过仔细核查这些删除标志,就可以很容易地获得已删除的联系人列表。如果这种删除操作十分频繁,被做了标记的数据就会越来越多,到了影响电话本显示的速度的时候,或者手机操作系统认为到了该清理的时候,手机内另外一个地方就会重新生成一个 contacts2.db 文件,里面是整理后的、不包括已删除联系人的通讯录文件,而原来的那个文件,将被标记为已删除文件。这时候,查找已删除联系人的工作的难度将大大增加。
短信、通话记录、QQ聊天记录等,单条已删除记录的恢复,和上面所说的,都是一个道理。删除的不很久的记录,总是能找到一些。
有一些应用的数据库,是经过加密运算之后,再保存到闪存上的。每一次改变数据之后,都需要对数据库中需要改动的部分进行重新加密再存盘,一旦发生单条数据的删除操作,那么在重新加密的过程中,就把那些删除数据剔除掉了。可以想象,这时候再去数据库文件中查询那些删除的条目,已经踪迹全无了。某些聊天软件,就是这样。
7、总结
删除数据的恢复,是一个技术性与偶然性相结合的工作,虽然很难说哪种数据或者文件一定能恢复,但是这种恢复的可能性,确实相当实用,往往能在很多关键的时候,解决大问题。
最后小科为大家安利一款于工作中灰常好用的数据恢复软件——睿海RH-6900手机数据取证分析仪。
在工作中无论是遭遇已删除数据的恢复还是未删除数据的恢复,有了它手机数据恢复都不再是难题喽~