CN104298766B - 一种清除SQLite数据库中数据的方法 - Google Patents

一种清除SQLite数据库中数据的方法 Download PDF

Info

Publication number
CN104298766B
CN104298766B CN201410585592.8A CN201410585592A CN104298766B CN 104298766 B CN104298766 B CN 104298766B CN 201410585592 A CN201410585592 A CN 201410585592A CN 104298766 B CN104298766 B CN 104298766B
Authority
CN
China
Prior art keywords
page
sqlite
data
file
parsed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410585592.8A
Other languages
English (en)
Other versions
CN104298766A (zh
Inventor
梁效宁
黄旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xly Salvationdata Technology Inc
Original Assignee
SICHUAN MWH INFORMATION SAFETY TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SICHUAN MWH INFORMATION SAFETY TECHNOLOGY Co Ltd filed Critical SICHUAN MWH INFORMATION SAFETY TECHNOLOGY Co Ltd
Priority to CN201410585592.8A priority Critical patent/CN104298766B/zh
Publication of CN104298766A publication Critical patent/CN104298766A/zh
Application granted granted Critical
Publication of CN104298766B publication Critical patent/CN104298766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种清除SQLite数据库中数据的方法,包括以下步骤:S1:连接装有SQLite数据库的设备,建立与设备的连接通道;S2:扫描设备内存空间中所有SQLite文件,得到存储路径;S3:将扫描到的SQLite文件逐个进行分析,并进行非正常数据清除。本发明优点在于扫描全面,能够找到存储空间内的所有SQLite文件并针对SQLite内的所有区域进行扫描和标记;清除彻底,针对SQLite文件内master表、数据表、索引表、空闲页面的非正常数据进行扫描和清除;防止针对隐私数据的恶意盗取行为,保护隐私数据的安全。

Description

一种清除SQLite数据库中数据的方法
技术领域
本发明涉及信息安全技术领域,特别涉及一种清除SQLite数据库中数据的方法。
背景技术
SQLite是一种轻型数据库,占用资源少,具有支持主流操作系统,能跟多种语言结合,处理速度快的特点而被广泛使用。SQLite数据库中的数据涉国家机关、军队、企业、事业单位、个人的保密数据及隐私。
使用含SQLite数据库的应用程序时,对数据进行的删除操作并没有做到真正意义上的删除,数据仍然存在只是被标记为删除状态;而通过目前市面上的一些数据恢复软件可以轻松的找出这些被删除的数据,从而被一些不法分子利用窃取隐私数据,对个人、企业、国家机关照成严重的损失和危害;所以目前急需一种能够彻底清除SQLite数据库中隐私数据的方法。
发明内容
本发明针对现有技术的缺陷,提出一种清除SQLite数据库中数据的方法,能有效的解决上述现有技术存在的问题。
为了实现上述目的,本发明采用的技术方案是:一种清除SQLite数据库中数据的方法,包括以下步骤:
S1:连接装有SQLite数据库的设备,建立与设备的连接通道;
S2:扫描设备内存空间中所有SQLite文件,得到存储路径;
S3:将扫描到的SQLite文件逐个进行分析,并进行非正常数据清除。
所述S3包括一下步骤:
S301:根据存储的SQLite文件路径中提取一个SQLite文件;
S302:解析并清除master表中的非正常数据;
S303:解析并清除数据表和索引表中的非正常数据;
S304:解析并清除空闲页面的非正常数据;
S305:判断所有SQLite文件是否解析完成,如是则退出;如否则返回到S301。
作为优选,所述S2包括以下步骤:
S201:逐个扫描设备存储空间,获取路径;
S202:判断获取的路径对应的是文件夹还是文件,若是文件夹则打开扫描文件夹内的文件,若是文件则执行S203;
S203:解析并判断该文件是否为SQLite数据库文件,若是执行S204,否则执行S205;
S204:记录该SQLite数据库文件的路径,执行步骤S205;
S205:判断是否扫描完成,如果扫描完成,执行S206,否则继续扫描直至完成所有SQLite数据库文件路径记录;
S206:扫描完成后返回并存储所有的SQLite数据库文件的路径。
作为优选,所述S302包括以下步骤:
S3021:从master表的根页开始,找到master表所有的页面,并使页号在逻辑上形成B树;
S3022:根据master表的B树,解析每个页面,对页面的未分配区、自由块、碎片在位图上进行标记;
S3023:对表叶子页的单元内容区进行解析,查看单元是否有溢出页,如果有则对溢出页中的碎片进行标记;如果没有则跳过;
S3024:将解析出来的所有表信息存储,提供给S303使用;
S3025:根据位图上的标记,清除标记区域的所有数据。
作为优选,所述S303包括以下步骤:
S3031:从S3024得到的表信息中取出一条表信息;
S3032:判断该表的类型;
S3033:根据表类型,创建表的对象,从表的根页开始,找到所有表的页面,并使页号在逻辑上形成B树;
S3034:根据表的B树,解析每个页面,对页面的未分配区、自由块、碎片在位图上进行标记;
S3035:解析叶子页及索引页的单元内容区,查看单元是否有溢出页,如果有则对溢出页中的碎片进行标记;如果没有则跳过;
S3036:根据位图上的标记,清除该表所有标记区域数据;
S3037:判断所有表是否解析完成,如果是,则退出;如果否,则返回到S3031;
作为优选,所述S304包括以下步骤:
S3041:读取SQLite空闲页链表首页指针;
S3042:判断是否有空闲页,若没有则结束,若有则执行S3043;
S3043:读取空闲树干页内容,并清除其中的碎片数据;
S3044:判断空闲树干页下是否有空闲叶子页,如果有,则执行S3045;如果没有,则S执行3046;
S3045:读取空闲树干页下的所有空闲叶子页,并清除每个空闲叶子页中的碎片数据;
S3046:读取下一个空闲树干页的指针;
S3047:判断下一个空闲树干页的指针是否为零,若为零则表示空闲链表已到尾部,结束;若不为零则执行S3043。
与现有技术相比本发明的优点在于:
扫描全面,能够找到存储空间内的所有SQLite文件并针对SQLite内的所有区域进行扫描和标记。
清除彻底,针对SQLite文件内master表、数据表、索引表、空闲页面的非正常数据进行扫描和清除。
预防针对隐私数据的恶意盗取行为,保护数据的安全。
附图说明
图1为本发明实施例的主流程图;
图2为本发明实施例步骤S2的流程图;
图3为本发明实施例步骤S3的流程图;
图4为本发明实施例步骤S302的流程图;
图5为本发明实施例步骤S303的流程图;
图6为本发明实施例步骤S304的流程图。
具体实施方式
为了详细说明本发明的具体实施方式,下面结合附图加以说明:
如图1所示,一种清除SQLite数据库中数据的方法,包括以下步骤:
S1:连接装有SQLite数据库的设备,建立与设备的连接通道;
S2:扫描设备内存空间中所有SQLite文件,得到存储路径;
S3:将扫描到的SQLite文件逐个进行分析,并进行非正常数据清除。
如图2所示,所述S2包括以下步骤:
S201:逐个扫描设备存储空间,获取路径;
S202:判断获取的路径对应的是文件夹还是文件,若是文件夹则打开扫描文件夹内的文件,若是文件则执行S203;
S203:解析并判断该文件是否为SQLite数据库文件。在该步骤中要判断是否为SQLite数据库文件我们先判断该文件大小是否为512字节的整倍数,若是则提取该文件前16字节的内容,判断是否为“SQLite Format 3”,若是则取出该文件从开始的偏移量为16的2个字节,判断是否为512字节的整倍数,若是则执行S204;上述判断若有一项为否则执行S205。
S204:记录该SQLite数据库文件的路径,执行步骤S205;
S205:判断是否扫描完成,如果扫描完成,执行S206,否则继续扫描直至完成所有SQLite数据库文件路径记录;
S206:扫描完成后返回并存储所有的SQLite数据库文件的路径。
如图3所示,所述S3包括一下步骤:
S301:根据存储的SQLite文件路径中提取一个SQLite文件;
S302:解析并清除master表中的非正常数据;
S303:解析并清除数据表和索引表中的非正常数据;
S304:解析并清除空闲页面的非正常数据;
S305:判断所有SQLite文件是否解析完成,如是则退出;如否则返回到S301。
如图4所示,所述S302包括以下步骤:
S3021:从master表的根页开始,依次遍历所有master表的页,判断页类型,若为表叶子页,则记录下该页页号;若为表内部页,则查找该内部页的所有叶子页,记录该内部页的页号及所有叶子页的页号。所有属于master表的页都遍历完成后,返回所有的页号,并使页号在逻辑上形成B树;
S3022:根据master表的B树,依次取出页号,读取页内容。对于每个页,判断页类型,在位图上标记该页的未分配区、自由块、碎片。如果该页为表内部页,由于不存放数据,所以只做标记;如果是表叶子页执行S3023;
S3023:对表叶子页的单元进行解析,若单元含有溢出页则对溢出页中的碎片数据进行标记,得到SQlite数据库的所有表信息;
S3024:将解析出来的所有表信息存储,提供给S303使用;
S3025:根据位图上的标记,通过构造16进制数据(0x00、0xFF)写入到所有位图标记的物理存储位置覆盖原有数据,达到清除master表的所有标记区域数据的目的。
如图5所示,所述S303包括以下步骤:
S3031:从S3024得到的表信息中取出一条表信息;
S3032:判断该表的类型;
S3033:根据表类型,创建不同表的对象,从表的根页开始,依次遍历表所有的页,判断页类型,若为叶子页,则记录下该页页号;若为内部页,则查找该内部页的所有叶子页,记录该内部页的页号及所有叶子页的页号找到所有表的页面,所有属于该表的页都遍历完成后,返回所有的页号并使页号在逻辑上形成B树;
S3034:根据表的B树,依次取出页号,读取页内容,对于每个页,判断页类型,在位图上标记该页的未分配区、自由块、碎片的方法,如果该页为表内部页,由于不存放数据,所以只做标记;如果是表叶子页以及索引页,标记完成后对该页面的单元内容区进行分析;
S3035:解析页面的单元,查看单元是否有溢出页,如果有溢出页,则对溢出页中的碎片进行标记;如果没有溢出页,则跳过;
S3036:根据位图上的标记,清除B树的每个页面中未分配区、自由块、碎片的数据;
S3037:判断所有表是否解析完成,如果是,则退出;如果否,则返回到S3031;
如图6所示,所述S304包括以下步骤:
S3041:读取SQLite数据库空闲页链表首页指针,该指针为从开始的偏移量为32的4个字节;
S3042:判断S3041读取的值是否为零,若为零,表示该SQLite数据库中无空闲页则结束;若不为零则执行S3043;
S3043:读取空闲树干页内容,并清除其中的碎片数据;
S3044:判断空闲树干页下是否有空闲叶子页,如果有,则执行S3045;如果没有,则S执行3046;
S3045:读取空闲树干页下的所有空闲叶子页,并清除每个空闲叶子页中的碎片数据;
S3046:读取下一个空闲树干页的指针,该指针存放在当前的空闲树干页中;
S3047:判断下一个空闲树干页的指针是否为零,若为零则表示空闲链表已到尾部,结束;若不为零则执行S3043。
以上描述阐述了具体细节以便充分理解本发明,但本发明还可以采用其他不同于此描述方式来实施,因此本发明并不限于以上公开的具体实施例。

Claims (1)

1.一种清除SQLite数据库中数据的方法,其特征在于包括以下步骤:
S1:连接装有SQLite数据库的设备,建立与设备的连接通道;
S2:扫描设备内存空间中所有SQLite文件,得到存储路径;
S3:将扫描到的SQLite文件逐个进行分析,并进行非正常数据清除;
所述S3包括以下步骤:
S301:根据存储的SQLite文件路径中提取一个SQLite文件;
S302:解析并清除master表中的非正常数据;
S303:解析并清除数据表和索引表中的非正常数据;
S304:解析并清除空闲页面的非正常数据;
S305:判断所有SQLite文件是否解析完成,如是则退出;如否则返回到S301;
所述S2包括以下步骤:
S201:逐个扫描设备存储空间,获取路径;
S202:判断获取的路径对应的是文件夹还是文件,若是文件夹则打开扫描文件夹内的文件,若是文件则执行S203;
S203:解析并判断该文件是否为SQLite数据库文件,若是执行S204,否则执行S205;
S204:记录该SQLite数据库文件的路径,执行步骤S205;
S205:判断是否扫描完成,如果扫描完成,执行S206,否则继续扫描直至完成所有SQLite数据库文件路径记录;
S206:扫描完成后返回并存储所有的SQLite数据库文件的路径;
所述S302包括以下步骤:
S3021:从master表的根页开始,找到master表所有的页面,并使页号 在逻辑上形成B树;
S3022:根据master表的B树,解析每个页面,对页面的未分配区、自由块、碎片在位图上进行标记;
S3023:对表叶子页的单元内容区进行解析,查看单元是否有溢出页,如果有则对溢出页中的碎片进行标记;如果没有则跳过;
S3024:将解析出来的所有表信息存储,提供给S303使用;
S3025:根据位图上的标记,清除标记区域的所有数据;
所述S303包括以下步骤:
S3031:从S3024得到的表信息中取出一条表信息;
S3032:判断该表的类型;
S3033:根据表类型,创建表的对象,从表的根页开始,找到所有表的页面,并使页号在逻辑上形成B树;
S3034:根据表的B树,解析每个页面,对页面的未分配区、自由块、碎片在位图上进行标记;
S3035:解析叶子页及索引页的单元内容区,查看单元是否有溢出页,如果有则对溢出页中的碎片进行标记;如果没有则跳过;
S3036:根据位图上的标记,清除该表所有标记区域数据;
S3037:判断所有表是否解析完成,如果是,则退出;如果否,则返回到S3031;
所述S304包括以下步骤:
S3041:读取SQLite空闲页链表首页指针;
S3042:判断是否有空闲页,若没有则结束,若有则执行S3043;
S3043:读取空闲树干页内容,并清除其中的碎片数据;
S3044:判断空闲树干页下是否有空闲叶子页,如果有,则执行S3045;如果没有,则执行S3046;
S3045:读取空闲树干页下的所有空闲叶子页,并清除每个空闲叶子页中的碎片数据;
S3046:读取下一个空闲树干页的指针;
S3047:判断下一个空闲树干页的指针是否为零,若为零则表示空闲链表已到尾部,结束;若不为零则执行S3043。
CN201410585592.8A 2014-10-28 2014-10-28 一种清除SQLite数据库中数据的方法 Active CN104298766B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410585592.8A CN104298766B (zh) 2014-10-28 2014-10-28 一种清除SQLite数据库中数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410585592.8A CN104298766B (zh) 2014-10-28 2014-10-28 一种清除SQLite数据库中数据的方法

Publications (2)

Publication Number Publication Date
CN104298766A CN104298766A (zh) 2015-01-21
CN104298766B true CN104298766B (zh) 2018-03-20

Family

ID=52318491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410585592.8A Active CN104298766B (zh) 2014-10-28 2014-10-28 一种清除SQLite数据库中数据的方法

Country Status (1)

Country Link
CN (1) CN104298766B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557387A (zh) * 2015-09-30 2017-04-05 四川效率源信息安全技术股份有限公司 基于安卓系统的新闻客户端阅读记录恢复的方法
CN105488173A (zh) * 2015-12-01 2016-04-13 四川效率源信息安全技术股份有限公司 一种360浏览器历史记录的恢复提取方法
CN107704507B (zh) * 2017-08-31 2021-05-25 三星电子(中国)研发中心 数据库处理方法和设备
CN108563714B (zh) * 2018-03-29 2021-08-03 苏州开心盒子软件有限公司 一种SQLite3数据库已删除数据块的提取方法
CN109446022B (zh) * 2018-10-12 2022-08-12 厦门市美亚柏科信息股份有限公司 一种数据库溢出页异常的检测方法、装置及存储介质
CN112486960B (zh) * 2020-11-14 2022-05-24 北卡科技有限公司 一种SQLite数据库冗余数据清除方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024034A (zh) * 2010-11-26 2011-04-20 中国科学院声学研究所 一种面向高清媒体的嵌入式文件系统的碎片处理方法
CN104090793A (zh) * 2014-07-07 2014-10-08 四川效率源信息安全技术有限责任公司 一种销毁安卓手机机身数据的装置和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7515500B2 (en) * 2006-12-20 2009-04-07 Nokia Corporation Memory device performance enhancement through pre-erase mechanism
CN102937926B (zh) * 2012-10-30 2015-05-20 厦门市美亚柏科信息股份有限公司 一种恢复移动终端已删除sqlite文件的方法及装置
CN103986898B (zh) * 2014-06-03 2017-02-01 四川效率源信息安全技术股份有限公司 一种提取dvr硬盘中残余视频和被删除视频的方法
CN104021217B (zh) * 2014-06-23 2017-02-15 四川效率源信息安全技术股份有限公司 一种提取手机碎片文件和被删除文件的系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024034A (zh) * 2010-11-26 2011-04-20 中国科学院声学研究所 一种面向高清媒体的嵌入式文件系统的碎片处理方法
CN104090793A (zh) * 2014-07-07 2014-10-08 四川效率源信息安全技术有限责任公司 一种销毁安卓手机机身数据的装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"基于SQLite3的Android手机数据恢复技术的研究";王随刚 等;《警察技术》;20121201(第5期);第4-7页第二至四节 *
"基于SQLite的iPhone数据恢复方法研究";刘琼 等;《信息网络安全》;20131120(第11期);第91页-93页第2-3节 *

Also Published As

Publication number Publication date
CN104298766A (zh) 2015-01-21

Similar Documents

Publication Publication Date Title
CN104298766B (zh) 一种清除SQLite数据库中数据的方法
CN107766328B (zh) 结构化文本的文本信息提取方法、存储介质和服务器
CN103455471B (zh) 一种将文本解析成键值对的方法和装置
CN107729526B (zh) 一种文本结构化的方法
CN104866734B (zh) 一种dex文件的保护方法及装置
CN106445476B (zh) 一种代码变更信息确定方法、装置及电子设备
CN105046159B (zh) 基于修改标识符的oox文本文档隐私信息检测方法
CN103645974A (zh) 一种pdf文件恢复方法及装置
US8572062B2 (en) Indexing documents using internal index sets
CN109101491B (zh) 一种作者信息抽取方法、装置、计算机装置及计算机可读存储介质
CN106547782A (zh) 日志信息的获取方法及装置
KR100961179B1 (ko) 디지털 포렌식 방법 및 장치
CN104021217A (zh) 一种提取手机碎片文件和被删除文件的系统和方法
CN101021851A (zh) 文本检索装置、检索方法、记录文本检索程序的记录介质
CN106095808B (zh) 一种mdb文件碎片恢复的方法和装置
CN107590233B (zh) 一种文件管理方法及装置
CN104885060B (zh) 数据漏更新检查装置、数据漏更新检查方法
CN111291535B (zh) 剧本处理方法、装置、电子设备及计算机可读存储介质
CN111027059B (zh) 一种基于llvm的抵御内存泄露的系统及方法
CN107729748A (zh) 一种描述文件在沙箱中运行轨迹图的方法
Al-Sharif et al. Carving and clustering files in ram for memory forensics
CN109213971A (zh) 庭审笔录的生成方法及装置
CN110852045B (zh) 一种删除文档内容的方法、装置、电子设备及存储介质
CN106874147A (zh) 一种恢复并解析Windows操作系统预读文件的方法
CN107943849A (zh) 视频文件的检索方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 641000 South side of Songshan South Road, Zhongqu District, Neijiang City, Sichuan Province

Patentee after: Sichuan Miwu Traceless Science and Technology Co.,Ltd.

Country or region after: China

Address before: 610000 2-1-715, 7 / F, E3, new century global center, 1700 Tianfu Avenue, high tech Zone, Chengdu, Sichuan

Patentee before: SICHUAN MWH INFORMATION SECURITY TECHNOLOGY CO.,LTD.

Country or region before: China

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20240529

Address after: 641100 No.1 Hanyu Avenue, Shizhong District, Neijiang City, Sichuan Province

Patentee after: XLY SALVATIONDATA TECHNOLOGY Inc.

Country or region after: China

Address before: 641000 Songshan South Road 253, Neijiang City, Sichuan Province

Patentee before: Sichuan Miwu Traceless Science and Technology Co.,Ltd.

Country or region before: China