已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业学位硕士学位论文 基于A n d r o i d 手机S Q L t e 的取证系统设计实现 D e s i g na n dI m p l e m e n t a t i o no fF o r e n s i c sS y s t e mB a s e do n A n d r o i dP h o n eS Q L i t e 学号:3 1 3 1 7 0 5 1 完成日期:2 0 1 5 年3 月2 0 日 大连理工大学 D a l i a nU 1 1 i V e r s i t yo fT e c l l l l o l o g y 万方数据 大连理工大学学位论文独创性声明 作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究 工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外, 本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请 学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献 均已在论文中做了明确的说明并表示了谢意。 若有不实之处,本人愿意承担相关法律责任。 作者签名: 零溶华一一日期:监年月上日 万方数据 大连理工大学专业学位硕士学位论文 摘要 数字取证作为一种运用计算机技术来提取和分析数字信息并将其作为证据的手段, 在个人计算机得到普及的时候就已经被重视起来。当下,智能手机己然成为人们日常生 活中必不可少的工具,而且性能越来越强大的智能手机也被赋予了更多的功能。从智能 手机使用的状况不难看出,跟手机持有者密切相关的各种信息都会存储其中,所以针对 手机的取证就非常有可能获得大量的证据。现实生活中,很多违法犯罪案件、交通事故 责任判定、利用手机进行的电信诈骗案件以及很多商业纠纷都可以借助手机取证来寻求 事件的分析依据。 通过对手机中的通讯录联系人、通话记录、短信、浏览器历史记录、日历事件、晰f i 连接记录、以及百度地图的定位历史等很多关键的数据分析后,可发现这类数据都是以 S Q L i t e 数据库的形式进行存储的。在对S Q L i t e 数据库的结构进行详细的分析之后,我 们不仅可以对数据库中未删除的记录进行提取,还可以依靠自行设计的恢复算法对已删 除的记录进行恢复。考虑到A n d r o i d 手机中应用软件繁多的因素( 很多浏览器类型的应 用) ,设计了用来管理被取证数据库元信息的服务器来实现灵活性。整合了含义是时间 戳、U I 也的记录,实现了有针对性的的查询和分析功能。 本文通过分析相关技术以及系统可行性,设计出基于S Q L i t e 数据库的A n d r o i d 手机 取证系统,并最终实现了证据文件拉取功能、证据文件原始性保护功能、S Q L i t e 数据库 记录提取和恢复功能、记录分析检索功能以及最终取证报告的生成。经过多次实验分析, 实现的取证系统能够准确的对手机中的关键数据进行提取,最终得出的取证结果能较好 的反映出手机持有者的历史行为。 关键词:取证系统;s Q L it e 数据库;A n d r o i d 手机;S Q L i t e 记录恢复 万方数据 基于A n d r o i d 手机S Q L i t e 的取证系统设计实现 D e s i g na n dI m p l e m e n t a t i o no fF o r e n s i c sS y s t e mB a s e do n A n d r o i dP h o n eS Q L i t e A b s t l a c t D i g i t a lf o r e n s i c s ,a Sam e a l l so fa p p l y i n gc o m p u t e rt e c l l 芏1 0 l o g yt oe x 托& c ta 1 1 da n a l y z e d i g i t a li 幽胁a t i o na se v i d e n c e ,h a db e e nt a k e ns e r i o u s l ys i n c em ep o p u l 撕田o fp e r s o n a l c o m p u t e r N o w a d a y s ,s m a np h o n e sh a V eb e c o m ea ne s s e n t i a lt o o li np e o p l e sd a i l yl i f e ,a n di t i se n d o w e d 诵mm o r ea J l dm o r ef u n c t i o n s 哳t ht h ei m p r o v e m e mo f i t sp e r f o n n a I l c e 。I t se a s Vt o n g u r e o u tt h a tV a r i o u S t ) ,p e so fi o r m a t i o nc l o s e l yr e l a t e dt ot h ec e Up h o n eh o l d e r si ss t o r e di n m ep h o n e ,s oi ti sV e r yl i k e l yt 0g e tal o to fe V i d e n c ea c c o r d i n gt 0m o b i l ep h o n ef o r e n s i c s I n r e a l1 i f e ,m o b i l ep h o n ef o r e I l s i c sc a nb eu S e da sa w a yo fs e e k i n ga J l a l y s i so fe v e n t s ,s u c ha s m a n yc r i m i I l a lc a s e s ,l i a b i l 时j u d g m e n to ft r a f j i ca c c i d e m ,t e l e c o m m u I l i c a t i o n 触u dc a S e s u s i I 培m o b i l ep h o n e ,a I l dm a n yo m e rb u s i n e s sd i s p u t e s A R e rm ea J l a L l y s i so fm a n yc r i t i c 猷d a 饥s u c ha sc o I l t a c t s ,c a l lr e c o r d s ,S M S ,b r o w s e r s h j s t o r y ,c a l e n d a re V e m s ,丽r e l e s sc o 皿e c t i o nt l i s t o r y ,a I l dB a i d uM 印sl o c a t i o nm s t o 巧,i ti s f o u n dt l l a ts u c hd a t ai ss t o r e di 1 1t l l ef o 衄a to fS Q L i t ed a 砒a s e A c c o r d i l l gt ot h ed e t a i l e d a n a l y s i so fm es 仃u c t u r eo fS Q L i t e ,i ti sf 0 u n d 廿l a tw ec a nn o to I l l ye x t r a c t 廿l o s er e c o r d sn o t d e l e t e d ,b u ta l s or e c o v e r 也o s ed e l e t e dr e c o r d sb yu s i n go u rs e l fd e s i g n e da l g o r i t l l I n s C o n s i d e 血gt h ed i V e r s i t yo fA n d r o i d 印p l i c a t i o n s ( m o r et h a I lo n eb r o w s e r ) ,i t sn e c e s s a 巧f o r t l l es y s t e mt oa c K e V en e x i b i l i t ) ,b yd e s i g l l i n gas e n ,e rw l l i c hc a nd os o m ef o r e n s i c si n f o m l a t i o n c o i 耻a t i o n B yd e f i l l i n g 也o s e6 e l d s 谢也m em e a l l i n go f t i m es t a m po rU f 也,s o m et a r g e t e d p r o c e s s i I l ga n da n a l y s i sc a nb ea c c o m p l i s h e d B y 锄a 1 ) ,z i I l gr e l e V a n tt e c l l I l o l o g i e sa I l df e a L s i b i l i t ) ,o ft l l es y s t e m ,af o r e n s i c ss y s t e mb a S e d o nS Q L i t ei sd e s i g n e d T h j ss y s t e mi m p l e m e n t se x 缸a c t i o no f 也eo r i g i n a l6 l e ,p r o t e c t i o no f m e o r i g i l l a le v i d e n c e ,S Q L i t ed 啦b a s er e c o r de x 仃a c t i o na n dr e c o v e r ye n g i n e ,a n a l y s i sa I l dr e t r i e v e o fr e c o r d s ,f - o r e n s i c sr e p o r tg e n e r a t i o n A f t e rs e v e r a le x p e r i m e n t s ,t h e d e s i g I l e df o r e n s i c s s y s t e mc 觚a c c u r a t e l ye x 仃a c ta n da n a l y Z e 也ep h o n e sc r i t i c a ld a t a ,a n d 也er e s u l t sc a nr e n e c t s o m e1 1 i s t o r i c a lb e h a v i o r so ft 1 1 ep h o n eh 0 1 d e rt os o m ee X t e n t K e yW o r d s : F o r e n s i c sS y s t e m ;S Q L i t eD a t a b a s e ;A n d r o i dM o b i I eP h o n e ;S Q L i t eR e c o r d R e c 0 V e r y 1 1 万方数据 大连理工大学专业学位硕士学位论文 目录 摘 要I A b s 仃a c t I I 1 绪论1 1 1 系统设计研究的背景1 1 2 取证工具的研究状况1 1 3 论文设计的意义和目标2 1 4 论文的主要工作及构成2 2 系统开发涉及到的理论与技术分析一4 2 1 A n d r o i d 系统基础4 2 1 1 A n d r o i d 系统数据存储管理一4 2 1 2R 0 0 t 手机权限获得4 2 1 3 A D B 工具一5 2 2 S Q L i t e 数据库的逻辑结构一5 2 2 1 S Q L i t e 数据库的数据类型一6 2 2 2S Q L i t e 数据库的文件头结构6 2 2 3 S Q L “e 数据库中普通表的数据结构8 2 2 4 S Q L i t e 数据库记录删除方式1 1 2 3 安全哈希算法1 1 2 4A n m i d 系统中媒体文件的组织管理1 2 3 A n d r o i d 手机取证系统的需求分析1 3 3 1 取证系统客户端功能需求分析1 3 3 2 取证系统服务器端功能需求分析1 5 3 2 1服务器端证据文件原始性保护和验证功能需求15 3 2 2 被取证数据库描述信息配置功能需求一1 5 3 3 系统非功能性需求1 7 4A n d r o i d 手机取证系统可行性分析与设计1 8 4 1 系统可行性分析18 4 2 系统总体设计1 8 4 3 系统详细设计2 0 4 3 1 原始证据文件拉取功能模块设计一2 0 4 3 2 证据文件保护和验证功能模块设计一2 1 万方数据 基于A n d r o i d 手机S Q L i t e 的取证系统设计实现 4 3 3S Q L i t e 数据库未删除记录提取模块算法设计2 3 4 3 4S Q L i t e 数据库记录恢复模块算法分析与设计2 4 4 3 5 记录检索和分析功能模块设计2 9 4 3 6 客户端S Q L i t e 数据库引擎主要类图设计2 9 4 3 7 服务器端功能模块数据库设计一31 4 3 8 数据库记录提取和恢复的时序设计一3 2 5 A n d r o i d 手机取证系统的实现一3 3 5 1 系统开发基础以及开发环境介绍3 3 5 2 服务器端模块实现3 3 5 2 1 应用列表分析功能实现一3 3 5 2 2 服务器端证据指纹的保护和验证模块实现3 4 5 2 3 需要被取证的数据库信息配置功能实现3 5 5 3 客户端模块功能实现3 6 5 3 1原始证据文件拉取功能的实现一3 6 5 3 2 原始证据文件的保护和验证模块功能的实现一3 8 5 3 3 S Q L i t e 数据库记录提取和恢复模块实现3 9 5 3 4 记录检索和分析模块功能实现4 2 5 3 5 客户端软件操作界面4 6 5 3 6 取证报告生成4 6 6触i d 手机取证系统的测试4 8 6 1 测试所处的软硬件环境4 8 6 2 黑盒测试用例设计4 8 6 3 测试总结5 0 结论51 参考文献5 2 致 射5 4 大连理工大学学位论文版权使用授权书5 5 万方数据 大连理工大学专业学位硕士学位论文 1绪论 1 1 系统设计研究的背景 类似于生物学中会利用专业的D N A 鉴定仪器来获得一些重要的现场证据,数字取 证则是通过从存储媒介或数据传输通道中获取数字数据作为证据。 数字化、信息化时代的高速发展,使得个人计算机、智能终端、以及各种数字媒介 的使用越来越广泛,这也使得越来越多的刑事案件和纠纷涉及到很多数字信息,而这些 数字信息往往就可以作为司法机关进行客观事实判别的重要依据 1 】。当前,数字取证相 关技术已发展成为信息安全领域中的一个很重要的新方向,它一个综合了计算机技术、 法律学等相关学科的技术领域。采用数字取证相关技术的目的是调查与数字信息相关的 各种电子交易诈骗行为、网络恶意入侵证据的获得、犯罪痕迹的取证等等,从而协助企 业或司法机关完成数字证据的搜集。而取证工具或取证系统就是以计算机科学的手段进 行数字数据的采集、存储、分析、关键数据的提取等一系列工作【l 】。 过去的十几年时间是计算机取证技术发展的黄金时期,针对于计算机的数字取证工 具也逐渐应用并发展成为许多事件调查中一个非常重要的组成部分【2 J 。随着近几年来移 动智能终端设备的广泛使用,对智能手机的数字取证需求也越来越大【3 J 。如今智能手机 不仅仅被用来打电话,人们更经常的使用智能手机中的数字相机功能,更频繁的使用手 机来进行网络访问操作。所以,手机取证的研究是非常有必要的。 1 2 取证工具的研究状况 国外的计算机取证技术已经逐渐成从人工取证走向自动化和智能化,国家科研机构 与商业上的专业机构都投入了很多人力和物力去开发计算机取证工具H 。取证工具的数 据来源,往往就是通过检查计算机硬盘中可获得的证据数据以及网络访问的日志记录。 国外开发的计算机取证的软件很多,E n C a s e 【5 J 是一个强大取证软件产品包,支持F A T 、 N T F S 、E x t 3 等各种格式的文件系统,并且它提供的E n S c r i p t 脚本接口可以帮助取证人 员更好的对证据进行操作。数字取证分析工具中,很有名的是N T I 公司的软件系统N e t n l r e a tA n a l y z e r 【6 l ,这是一个采用了人工智能技术的取证软件,能够进行模式识别,可 以针对网络中的数据包进行抓取分析,对于网络中的特定的敏感关键字进行定位,比如 生化、核武器等涉恐事件、武器制造及其他与犯罪内容有关的信息,这款取证系统对美 国恐怖袭击后的一系列调查有很大的作用。计算机取证技术发展的比较成熟,各种针对 计算机的取证工具也很多【7 J 。 万方数据 基于A n d r o i d 手机S Q L i t e 的取证系统设计实现 针对移动设备取证工具也有一些,比如O X y g e nF o r e n s i cS u “e 例是一套智能手机取证 软件工具包,囊括了几个不同取证阶段的功能软件。P a r a b e nD e v i c eS e i z u r e 则是一个同 时具有硬件取证和软件取证的包,但是其主要的功能都集中在数据的提取上。A n d r o i d 系统由于定制导致碎片化严重,针对A n d r o i d 手机的取证软件还不成熟,国内对手机的 取证工作大都还处于理论研究阶段,并没有一个完善的取证系统,所做的工作也大都集 中在数据的获取的研究上,对于如何分析手机证据做的还不够完善。 1 3 论文设计的意义和目标 A n d r o i d 系统的智能手机,是目前全球用户数量最多的智能手机操作系统,尤其是 国内用户非常之多。传统的针对计算机系统的数字取证工具很难直接运用到移动设备的 证据提取上。而且手机特有的数据结构也决定了必须采用新的取证技术。不难发现,一 个人对于智能手机的使用频率和使用时间都会大大高于对于非移动设备的使用。手机的 便携性,也使得手机更能反映一个人的各类信息。当前的智能手机功能越来越强大,堪 比一台微型计算机,用户使用的智能手机功能越多,留下数字证据的可能性就越大。随 着智能手机技术的成熟,硬件成本的降低,价格注定越来越低,更多的人会转而购买使 用智能手机。 并且现在国内,电子商务飞速发展,随之而来的各种纠纷不断,数字取证不应该仅 仅局限于国家安全层面,应该面向社会提供服务,对各种违法事件进行数字取证,作为 起诉的重要依据。很多地市级的法院都可以通过数字证据来进行犯罪违法依据,而一款 服务于这些机构的智能手机取证工具就非常有必要。地市级的法院等部门可以不配备专 业取证人员,只需要懂得如何操作取证工具就可以完成取证工作,自动化的取证任务都 交由软件进行处理,可以大大减少取证时间和人员付出。 论文所要完成的目标是: 设计并实现一款针对A n d r o i d 手机系统的取证分析软件 系统,取证软件能够方便快捷的对A n d r o i d 系统手机中的存在的数字信息进行提取并完 成一定的分析。只需要将手机通过U S B 数据线与电脑U S B 口连接,开启A n d r o i d 取证 软件客户端的取证功能,软件就可以自动提取手机中可能与证据相关的记录信息,比如 通话记录、短信、日历安排记录、浏览器浏览记录,媒体文件创建记录等等。 1 4 论文的主要工作及构成 论文的工作主要就是针对手机中被广泛使用的S Q L i t e 数据库结构,自行设计了一 个客户端服务器架构的取证系统,能够实现对手机中任意应用的S O L i t e 数据记录进行 取证分析。论文主要完成以下工作内容: 万方数据 大连理工大学专业学位硕士学位论文 ( 1 )设计并实现取证软件中的证据保护和验证功能模块。主要是进行的是细粒度 的保护策略【9 J ,在本系统中就是对每个手机应用的某个数据库文件进行保护。 ( 2 ) 分析开发者工具A D B 的功能,以及手机中应用软件的数据库,在程序中实 现对原始数据库证据文件的获取。 ( 3 ) 分析S Q L i t e 数据库的数据结构,解析并提取待取证数据表的所有记录。分 析数据表中记录删除后的数据状态,设计恢复算法,恢复其中已经被删除但尚可以恢复 的记录。 ( 4 ) 基于数据库字段的实际含义,进行针对性的处理分析。比如是网址类型或者 时间类型的字段,设计有相应的分析策略。 论文之中各章的内容构成如下: 第一张主要就是取证软件的背景介绍,当前取证软件的状况,以及我们的系统设计 的意义和主要工作的总体描述。 第二章主要是对论文设计实现中所要用的基础理论知识进行介绍。包括用到的完整 性保护算法,以及A n d r o i d 手机应用数据的存储形式,还有就是S Q L i t e 数据库的结构分 析。 第三章主要是进行系统各个功能模块进行具体的需求分析,绘制了相应的用例图。 第四章主要是是在需求分析的基础上,进行系统的总体设计和详细设计,为每个模 块画出相应的功能流程图。S Q L i t e 数据库的记录提取方法的设计,再就是通过分析数据 表记录删除后的数据状态,设计并给出记录的恢复算法。 第五章是进行各个功能的编码实现,主要就是对第四章的详细设计进行实现,包括 关键的代码以及实现效果图。 第六章这里是对已经完成的系统进行功能性测试,测试系统是否达到预期的证据提 取效果,并对系统效果进行评价,分析系统中的哪些设计在付诸实际应用的时候是需要 被改进和完善的。 万方数据 基于A n d r o i d 手机S Q L i t e 的取证系统设计实现 2系统开发涉及到的理论与技术分析 2 1A n d r oid 系统基石出 A n d r o i d 系统自身是一个基于L i l l u ) 【内核的开源手机操作系统,秉承的思想就是开 放。它所属的公司为全球的技术开发人员提供了丰富的编程接口以及功能稳定的开发工 具包,也正因为如此,A n d r o i d 系统得到极大的推广和发展。源于它自身的开放性因素, 不同于传统的功能型手机系统,A n d r o i d 手机平台上的应用软件非常之多,即便是手机 出厂时预装的通讯录管理软件也可以被其他个人或者公司开发的通讯录软件所替代。从 其系统的构成角度来说,它是一种分层的系统架构模式,整个A n d r o i d 系统由L 证u ) 【系 统内核层、系统库层、A n d r o i d 运行时层、应用程序框架层和以及各种各样的手机应用 程序构成l l 。 2 1 1 A n d r o i d 系统数据存储管理 在龇i d 系统的程序库层,S Q L i t e 数据库引擎模块已经被集成其中,俨然已经成 为系统的标准数据库。应用程序层中的手机应用软件在存储大量结构化数据的时候,基 本都会采用S Q L i t e 数据库进行记录的存储。比如手机中常用到的通讯录管理软件、通 话记录、短信应用、浏览器历史记录、以及其他即时通讯软件的聊天记录等等,采用的 存储方式都是S Q L i t e 数据库格式。作为系统架构中的数据库,开发的应用软件只需调 用几个框架层提供的数据库操作A P I 函数,就可以完成数据库的各种操作,无需关心数 据库连接细节,有利于开发。 除了S Q L i t e 存储架构,对于那些常见的应用的偏好设置和状态标识等少量的数据, 一般采用的是舭结构进行存储。再有就是标准的文件系统下的,各种类型文件的存 储形式,与计算机中的文件系统存储没有任何区别,毕竟A n d r o i d 系统本就是在依托在 L i n u ) 【系统之上的。 2 1 2 R o o t 手机权限获得 A n d r o i d 系统的内核层就是L i n l l ) 【,所以A n d r o i d 系统r o o t 权限的获取其实和L i I l u x 获取r o o t 权限的原理是一样的。若要在L i l l u x 系统下获取r o o t 权限,方法就是执行s u d o 或者s u 命令,在s h e l l 命令窗口中就会提示输入r o o t 用户的密码,如果密码正确就可以 获得r o o t 权限了。A n d r o i d 本身却并不会去提供r o o t 权限的获取,大部分手机在出厂的 时候根本就没有s u 这个程序,也就是说这一块被删除掉了。所以要想获得A n d r o i d 系统 的r o o t 权限,第一步就是要把编译好的s u 文件拷贝到A n d r o i d 手机的s v s t e m 厂b i l l 目录或 万方数据 大连理工大学专业学位硕士学位论文 者s y s t e I n x b “目录下。只要把s u 目标程序文件放到那两个目录之下,那么接下来就可 以在A n d r o i d 手机的a d bs h e l l 窗口或者串口下输入s u 命令运行了,执行成功代表着当 前进程可以执行r o o t 权限下的任何命令。要完成将编译好的s u 二进制文件拷贝到写操 作保护的s y s t e m 目录下这个目的,本身就需要当前进程获得r o o t 权限,当前的办法就 是利用m 心o i d 系统的r o o t 漏洞来实现,可以通过使A D B 进程获得临时r o o t 权限的办 法。12 1 ,就可以通过A D B 命令访问到系统其它应用的文件。 获得r o o t 权限之后可以做很多事情,比如删除系统预装的应用软件,毫无障碍的读 取、修改、删除操作系统目录下的任何文件。因为很多手机生产厂商为了保证自己的利 益默认不允许用户删除系统自带应用,所以大多人会选择m o t 之后进行系统的清理。应 用市场上功能强大的r o o t 的工具很多,各个互联网巨头旗下也都有自己的r o o t 工具,市 场上比较厉害的有K i I l g R o o t ,Z 4 R o o t 等等,有了这些强大r o o t 工具的辅助之后,论文 的后续取证得以顺利进行。 2 1 3A D B 工具 A n d r o i dD e b u gB r i d g e ( A D B ) 是一个开发调试工具【1 3 J ,能够帮助实现A n d r o i d 系统 设备和个人计算机之间进行通信。这种通信可以通过U S B 数据线进行,但是也支持通 过W i F i 无线局域网进行连接通信。A D B 本质上是一个客户端服务器架构的程序,其 中客户端是被连接手机的计算机的一个后台程序,服务器端是舢心o i d 手机设备上的一 个守护进程,通讯的过程就是客户端与服务器端的数据传输。 A D B 提供了非常丰富的功能命令给开发者使用。其主要的功能有:运行设备的s h e U 命令行、管理设备的端口映射、计算机和A n d r o i d 设备之间进行文件的上传和下载、将 计算机本地的A P K 软件包安装到A n d r o i d 系统上等等。A D B 在A n d r o i d 系统取证中是 非常重要的一个基础程序,开发过程需要借助它来进行证据文件的获取。 在手机中开启U S B 调试,就会在设备中启动一个A D B 守护进程。计算机的后台也 会有一个守护进程,我们的A D B 客户端软件是通过与计算机后台的守护进程来执行各 种操作的。在手机设备没有r o o t 的情况下,守护进程是以一个普通用户的身份执行的, 否则就是以管理员的身份执行。 2 2S Q L i t e 数据库的逻辑结构 S O L i t e 数据库是一个轻量级的关系型数据库,在嵌入式设备中的应用也是非常广泛 的【1 4 】,数据库引擎不仅被集成到了A n d r o i d 的程序库层,同样也被集成到了I O S 系统的 C o r eS e r v i c e 层,这样的好处就是开发的手机应用程序就不需要单独开辟一个远程服务 器进程。S Q L i t e 数据库的各种操作函数都是用C 语言编写的,并且是开源的,最终创 万方数据 基于A n d r o i d 手机S Q L it e 的取证系统设计实现 建生成的数据库文件通常都比较小,对于数据库上的各种操作的速度都很快。S Q L i t e 虽然小,但是它具有了其他主流数据库的大部分模块,绝对是一个标准的S Q L 系统, 它涵盖了几乎所有的S Q L 语句。在A n d r o i d 系统中,S Q L i t e 数据库的应用可以说是非 常普遍,所以有必要对于手机中所有的这样的数据进行提取取证。 2 2 1S Q Li t e 数据库的数据类型 S Q L i t e 使用了一个更加一般的动态类型系统1 1 5 J 。在S Q L i t e 中,一个值的数据类型 是与这个值本身相关的,而不是与它的容器相关。这样就允许S Q L i t e 数据库本身做一 些传统严格类型数据库不可能做到的事情。S O L i t e 的数据类别如下: ( 1 ) N U L L 类型字段值是空,不占用字节空间。 ( 2 ) I N T E G E R 类型字段值是一个有符号整数,存储空间字节数根据整数实际值 的大小不同占1 ,2 ,3 ,4 ,6 或者8 个字节空间。 ( 3 ) I 汪A L 类型字段值是一个浮点数,存储格式是8 个字节的m E E 浮点数。 ( 4 ) T E X T 类型字段值是一个文本字符串,根据数据库头中描述的的编码格式 T F 8 ,U T F 1 6 B E 或者U T F 1 6 L E ) 进行存储。 ( 5 ) B L O B 类型字段值是一个二进制数据块,跟原始数据一致。 S Q L i t e 没有一个单独的B 0 0 1 e a n 存储类型,B o o l e a n 类型值是被存储成0 ( 僦s e ) , 1 ( 眦) 。时间类型可以用T E X T 存储,也可以使用整数存储从1 9 7 0 0 1 0 1o o :o o :o oU T C ( 世界标准时间) 开始的秒数。 2 2 2S Q L i t e 数据库的文件头结构 数据库文件起始位置的前1 0 0 个字节包含了当前数据库的头信息【l 引。数据库文件头 部的主要内容如表2 1 所示: 表2 1 数据库头格式 T a b 2 1D a t a b a s eh e a d e rf b m a t 万方数据 大连理工大学专业学位硕士学位论文 数据库头中的内容给出了解析数据库所必要的重要信息,总共有2 3 个头描述信息, 其中的整数含义的部分都是采用大端存储的,表2 1 只列出了一般功能需要的值。不同 的S Q L i t e 数据库版本,对应的值都可能是不一样的,需要首先正确解析这些相应的值, 才可以正确读取之下的数据库各种表的结构。比如当前S Q L “e 最新版本的数据库单个 页面大小是4 0 9 6 个字节,之前旧版本的数据库单个页面大小是1 0 2 4 个字节,可见随着 数据库版本的升级,单页面字节数是增加的趋势。 在数据库文件中,数据的存储是以页为单位进行的,如图2 1 所示,图左侧的值代 表在文件中的偏移地址。在表2 1 中已经说明了数据库头格式,对应到图2 1 中数据库 头部1 6 个字节偏移处的2 个字节指明了每个页的字节数目。整个数据库文件中只有第 一页比较特殊,前边部分含有数据库头信息,页面剩余部分存储的是s q l i t em a s t e r 模式 表( 第一页为模式表的根页) ,其中存储的是其他普通表的相关信息,表2 2 所示是一 个短信数据库拥有的s q l i t em a s t e r 表的部分内容。s q l i t em a s t e r 表本身的存储结构跟普 通表结构没有任何区别。若要解析某一个普通表,必须首先解析s q l i t em a S t e r 表,查询 到相应表名对应的r o o t p a g e 字段值和表的s q l 定义语句。 页面大 页面大 图2 1数据库文件的页面结构 表2 2s q l i t e m a s t e r 表 T a b 2 2T a b l es q l i t e - n l a L s t e r 万方数据 基于A n d r o i d 手机S Q L i t e 的取证系统设计实现 2 2 。3S Q Li t e 数据库中普通表的数据结构 ( 1 ) 数据库表的逻辑结构 在知道某一个表的根页号之后,就可以对此表进行记录提取。表的数据存储结构是 B + 树,由叶子节点来存储最终的记录。而每个B + 树的中间节点和叶子节点都是一个数 据库页面,页面与页面之间通过索引建立联系。逻辑结构示意如图2 2 所示。 根页 磊钟 i 叶罕而0 + 叶子页 图2 2 表结构的B + 树 F i g 2 2 B + 仃e es t n l c t u r eo f t a b l e 中间页的数据 区域存储 孩子页的索引 叶子页的数据 区域存储 最终数据记录 存储实际数据的是B + 树的叶子节点页,中间的页面都是B + 树的索引页面,存储的 是孩子节点的索引。表的根页可以是中间页面,也可以是叶子页面,根据数据库表中存 储的记录数目的不同而不同。要定位到存储最终记录的地址,就需要遍历并解析每一个 页面的数据结构,接下来就详细介绍S Q L i t e 数据表的中间页面和叶子页面的具体结构。 ( 2 ) 单个页面内部的数据结构 2 个字节大小的地 址,指向实际数据单 元的起始位置 尚未被分配利用或 者内容被删除后的 空闲区域 若中间页则存储子 孩子页号;若叶子 页则存储记录内容 图2 3S Q L i t e 页面结构 F i g 2 3S Q L i t ep a g es t m c t u r e 器1 ,一 万方数据 大连理工大学专业学位硕士学位论文 内部页和叶子页的结构形式是一致的,都与图2 3 所示的结构形式一致,都是由开 始位置的页面头结构部分,数据单元地址数组部分,中间的未分配区域部分,还有最终 的数据单元数组部分所构成。当然,内部页和叶子节点页面的C e l l 的组成结构肯定是不 同的,用作索引的内部页的C e U 具有相同结构,存储实际数据的C e l l 的具体结构是由 所在数据表的S Q L 定义语句所决定。 页面头结构后边跟随的是以大端存储的2 个字节大小的地址数组,每个值都指明了 那些用来存储实际数据的单元的起始地址。数据单元的分配是从高地址往低地址方向分 配的,这与内存中程序的堆、栈的增长模式非常相似。页面中地址数组和数据单元之间 的区域为空闲区域,最初始分配的时候都是零值。 B + 树的中间节点页和叶子节点页的不同之处就在于页面头的区域。中间页的页头结 构由1 2 个字节组成,其具体格式如表2 3 所示。叶子节点页头结构由8 个字节构成,其 具体内容如表2 4 所示。 表2 3 中间页头部结构 T a b 2 3 I n t e r i o rp a g eh e a d e rs 仃u c t u r e 表2 4 叶子页的页头部结构 T a b 2 4L e a fp a g eh e a d e rs 仃u c t u l e 从表2 3 和2 4 可以看出,通过页面前两个字节就可以判断出当前节点页是否是叶 子节点页,叶子页面没有孩子页面,所以就省掉了代表最右孩子页面的4 个字节。只有 万方数据 基于A n d r o i d 手机S Q L i t e 的取证系统设计实现 最终扫描到叶子页面,才算找到最终的表中的记录数据的位置。中间页面记录孩子页面 的索引数据,不存储实际的记录。 页面最重要的部分就是具体到每个数据单元的结构了。中间页面中用来存储索引的 数据单元和叶子页面中存储最终表的数据记录的数据单元结构肯定是不一样的,毕竟每 个应用定义的表的结构很难相同。 中间页面的数据单元构成:中间页面中的数据单元是用来维护B + 树的索引结构, 维护了指向孩子页的指针数据。每个数据单元起始位置的4 个字节是采用大端格式存储 的孩子页的页号,根据这个页号就可以定位到孩子页的在文件中的地址。剩余的部分是 一个1 到9 个字节大小的变长类型的整数,表示的是B + 树中关键字的值。 叶子页面的数据单元:叶子页面中的数据单元是最终用来存储表中实际数据记录 的区域,正确解析这个数据区域才能准确的提取各个字段的内容。这一单元的解析需要 依赖于s q l i t e m a s t e r 表中的s q l 字段中给出的当前表每个字段的类型定义。此数据单元 的具体结构组成如图2 4 所表示。 B 区均( R e c o r dH e a d e rS i z e ) A 区域字节数! R o wI d B 区域字节数;类型1 ;类型N ! 字段1l l 字段N A 区域c e s i z e ) 图2 4 叶子页面的数据单元结构 F i g 2 4L e a f p a g e sd a t ac e Us 仃u c t u r e 通过图可以看出,一个叶子页面的数据单元的组成部分是:代表A 区域大小的整数 值、行i d 区域值I 沁wI D 、记录头B 区域的大小值、记录中每个字段的类型区域、存储 最终每个字段值的数据区域。 数据单元中的整数都采用的是变长整数类型,变长整数的格式非常简单:一个字节 中的末尾7 个比特位用来存储数值,字节的第一个比特位用来存储标记,其中首位0 表 示是当前字节是组成该整数的最后一个字节,首位1 表示当前字节尚未完整构成一个整 数。通过这特性就可以确定出当前整数所占的字节数目。 B + 树的叶子页中除了字段值区域的数据,其他部分的整数都是变长整数类型。在确 定了类型区域的数值以后,就可以计算得出对应的每个字段值的字节长度。类型区域的 数值与对应的数据区域长度的转换关系如表2 5 。 万方数据 大连理工大学专业学位硕士学位论文 表2 5 类型值与数据区长度的关系 T a b 2 5 R e l a t i o 璐h i pb e M e e nt y p eV a l u ea 1 1 dd a :t as i z e 表中的整形字段都是采用大端存储的,还有就是T E X T 类型字段不会存储字符串的 结束符。T y p e 本身的值超过两个字节的情况,只可能是B L O B 类型的或者是T E X T 类 型的字段。如果数据字段只是个整数类型,那么T ) ,p e 本身一个字节就足够了。 2 2 4S Q Li t e 数据库记录删除方式 S O L i t e 数据库记录在被删除的时候,会有两种方式。一种是在删除记录的时候,对 被删除数据区域用零值进行覆盖,这种情况下删除的数据是无法恢复的,因为这样做相 当于改变了物理介质的O 和1 状态。另外一种策略是记录被删除的时候,删除操作实际 上只是将被删除记录的区域标记为空闲状态,被删的记录数据状态本身还是保留在磁盘 上,只是对于数据库引擎的正常查询操作变得不可见而已【1 7 】。不难看出,S Q L i t e 数据库 在第二种模式下的删除策略与文件系统中的删除策略非常相似,这样的删除方式也是比 较高效的。 通过仔细观察多部手机的通讯录、短信记录、以及手机浏览器中部分记录被删除后 的数据库记录在磁盘中的状态,得知普通A n d r o i d 手机的删除操作采用的都是后一种删 除模式。可见在A n d r o i d 手机平台上,被删除的记录是具有恢复的可能性的,所以取证 过程必须把恢复作为数据获取的一个重要方面l l 引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购物退款我们的承诺您的权益
- 购销合同中的供应链协同与优化
- 购销合同的便捷版式
- 购销合同违约金责任分配与合同履行
- 赞助商与被赞助方合作协议
- 路灯采购项目招标文件
- 软件产品开发与销售合同
- 还款协议保证书格式
- 返租合同协议
- 遵纪守法证明书
- 2023年电力工程监理工程师年终总结及年后展望
- 作用于泌尿系统药物汇总
- 迟到表演完整
- 骨科试题练习测试题附答案(一)
- 自身免疫性溶血性贫血最全课件
- 植树问题(二)(一等奖创新教学设计)人教版五年级上册数学
- 蛋白琥珀酸铁口服溶液的执行标准
- 中国美术鉴赏与实践智慧树知到课后章节答案2023年下山东省日照师范学校
- 4.5 多边形和圆的初步认识 课件-北师大版数学七年级上册
- 《燃气输配》课程标准
- 7.4.1 机器人喷涂工作站仿真(例7-4)
评论
0/150
提交评论