一种提取Android系统QQ账号的方法与流程

文档序号:12121505阅读:584来源:国知局

本发明涉及信息安全技术领域,特别涉及一种提取Android系统QQ账号的方法。



背景技术:

随着信息化技术的不断发展与进步,众所周知,Android设备已经成为人们生活中不可替代:不可或缺的一个工具。Android设备也因此得到飞速发展,现已不仅仅是通话工具那么简单,他依然成为生活的一部分,Android设备的各种各样的功能也层出不穷,覆盖了生活中的方方面面。但Android设备在获取丰富资源:处理大量数据的同时面临着被破坏的风险也越来越大,例如恢复出厂设置,误刷机:中病毒等情况均会造成手机数据丢失,因此还原Android设备的数据显得尤为重要。

QQ通讯类数据提取是电子物证的重要组成部分,由于QQ账号实现第三方登录是一种非常流行和便捷的方式,QQ账号在很多应用之中都可以找到,因此基于QQ账户的提取是具有重要意义的。目前市面上的取证系统都是依靠root之后通过读取数据库的方式进行数据提取,这种提取方式在Android系统升级安全等级升高之后将会变得越发困难,同时修改权限也需要耗费一定的时间。



技术实现要素:

本发明针对现有技术的缺陷,提供了一种提取Android系统QQ账号的方法,能有效的解决上述现有技术存在的问题。

一种提取Android系统QQ账号的方法,包括以下步骤:

S1:提取QQ账户数据准备;以下为详细步骤:

S1.1:使用系统API判断sd卡是否挂载,当sd卡已经挂载代表sd卡存在,执行S1.2,否则表示该智能移动终端设备不存在sd卡,否则执行结束解析执行S5;

S1.2:使用系统API判断sd卡的具体路径,并记录为sd_path;

S1.3:创建集合s_pkg,将腾讯QQ以及它的衍生产品的包名以字符串的形式存入s_pkg中;

S1.4:创建集合pkg_all,使用系统API获取Android设备已经加载的所有应用的包名信息,并将其以字符串的形式保存到pkg_all中;

S1.5:构建集合pkg_exits,用于存储Android智能设备中已经安装的QQ包名字符串信息;

S1.6:遍历pkg_all,当遍历存在结果时,记录为temp_pkg执行S1.7;否则表示遍历结束,执行S1.10;

S1.7:循环遍历s_pkg,当遍历结果存在时,记录结果为pkg_equal,并执行S1.8,否则继续遍历执行S1.6;

S1.8:当temp_pkg与pkg_equal字符串完全匹配的时候,表示该类型QQ聊天产品存在,同时将temp_pkg加入pkg_exits中;当不匹配的时候执行步骤S1.7;

S1.9:移除s_pkg中的pkg_equal选项,判定s_pkg中是否还存在数据,当存在时执行步骤S1.6;当不存在时直接执行步骤S1.10;

S1.10:判定pkg_exits中是否存在数据,当存在时执行S2,否则表示该智能Android设备中不包含QQ通讯应用,执行S5结束解析;

S2:提取包含QQ账户信息的文件,构建字典Map用于存储sd卡中包含QQ账号的文件信息;以下为详细步骤:

S2.1:根据路径sd_path构建关于sd卡的文件流,同时获取该文件流下面的所有文件记录sd_files;

S2.2:遍历sd_files,当遍历结果存在时,记录结果为file_sigle,并执行S2.3,当不存在表示sd卡中不存在腾讯应用sd缓存数据目录,结束解析,执行S5;

S2.3:获取file_sigle的文件名,记录为file_sigle_name,使用字符串tencent与file_sigle_name匹配,当匹配时,执行S2.4,否则执行S2.2;

S2.4:判断file_sigle是否是一个文件夹,当是文件夹时,结束遍历,执行步骤S2.5,否则执行S2.2继续遍历;

S2.5:获取file_sigle目录下的所有文件,记录为file_figle_files;

S2.6:判断file_figle_files是否存在数据,执行S2.7,否则表示不存在数据,执行S5;

S2.7:对file_figle_files执行遍历,当结果存在时,记录遍历文件file_figle_files_file,并执行S2.8,否则执行S5结束解析;

S2.8:判定file_figle_files_file文件的文件名,并记录为f_f_fs_fn,将f_f_fs_fn与字符串msflogs做等值比较,当相等时,执行S2.9,否则执行S2.7;

S2.9:判定f_f_fs_fn是否为目录,当是时,跳出循环执行S2.10,否则执行S2.7;

S2.10:获取file_figle_files_file目录下面所有的文件,并记录f_f_fs_f_fs;

S2.11:对f_f_fs_f_fs执行遍历,当遍历结果存在时,记录结果f_f_fs_f_fs_f, 执行步骤2.12,否则执行S5;

S2.12:获取文件f_f_fs_f_fs_f的文件名,并记录为f_f_fs_f_fs_f_name同时与字符串com做等值比较,当相等时,执行步骤S2.13,否则执行S2.11;

S2.13:判定f_f_fs_f_fs_f是否为目录,当是目录时执行S2.14,否则执行S2.11;

S2.14:获取f_f_fs_f_fs_f目录下面所有的文件,并记录f_f_fs_f_fs_f_fs;

S2.15:对f_f_fs_f_fs_f_fs执行遍历,当遍历结果存在时,记录结果f_f_fs_f_fs_f_fs_f,执行步骤S2.16,否则执行S5;

S2.16:获取文件f_f_fs_f_fs_f_fs_f的文件名,并记录为f_f_fs_f_fs_f_fs_f_name同时与字符串tencent做等值比较,当相等时,执行步骤S2.17,否则执行S2.15;

S2.17:判定f_f_fs_f_fs_f是否为目录,当是目录时执行S2.18,否则执行S2.15;

S2.18:f_f_fs_f_fs_f目录下面的文件是腾讯QQ及其衍生通讯产品存放日志数据的地方,获取该目录下的文件,记录为father_files;

S2.19:对father_files执行遍历,当遍历结果存在时,记录文件为father_file,执行S2.20,否则结束解析执行S3;

S2.20:判断father_file是否为目录,当是时执行S2.21,否则执行S2.19;

S2.21:获取father_file的文件名记录为father_file_name;

S2.21:构建字典L_son,用于存储有可能包含账户信息的文件名;

S2.22:获取目录father_file下面所有的文件,记录为son_files;

S2.23:遍历son_files,当遍历结果存在时,记录为son_file,否则,将 father_file_name作为键,将L_son作为值加入Map,并执行S2.19;

S2.24:获取son_file的文件名,记录为son_file_name;

S2.25:判断son_file_name根据正则式\\d{2}\\.\\d{2}\\.\\d{2}\\.\\d{2}\\.log进行文件筛选,当符合该正则式时,将son_file加入L_son,执行S2.23;

S3:解析账号数据文件;经过S2的筛选,将所有可能包含QQ账号的文件过滤,创建字典Map_account用于保存提取出来的数据;

以下为S3的详细步骤:

S3.1:遍历Map,当数据存在时,获取Map的值记录为L_temp,获取Map的键,记录为pkg_name,然后执行步骤S3.2,当结果不存在时执行S4;

S3.2:创建集合L_account用来存储每一种QQ聊天应用类型的账户;

S3.3:遍历L_temp,当结果存在时记录结果为L_temp_file,并执行S3.4;当不存在数据时,将pkg_name作为key,L_account作为值,保存到Map_account,然后执行S3.1;

S3.4:加载文件L_temp_file,按行读取文件L_temp_file;当读取内容存在时,记录为data,执行S3.5:否则执行S3.3;

S3.5:判断data是否包含特定的字符,记录特定字符charer,当不包含时执行S3.3,否则执行S3.6;特殊字符满足以下需求,特殊字符检测顺序为qzone:MSF,当以上两个字符都不满足时记录为other。

S3.6:根据正则式[1-9][0-9]{4,9},进行数据匹配,当匹配成功时,记录为account,将account加入集合L_account,然后执行S3.3;当没有匹配到数据时直接执行S3.3;

S4:账户信息展示;以下为详细步骤:

S4.1:根据包名构建字典M_p_a,该字典表示的是包名对应的实际应用名,比如移动QQ对应com.tencent.mobielqq,轻聊QQ对应com.tencent.qqlite;

S4.2:加载excel插件,构建execl文件的头信息,头部信息包含应用名app_name,应用包名pkg_name,账户信息accout_name;

S4.3:遍历Map_account,当数据存在时,记录key为result_pkg,值为L_account。将result_pkg赋值给pkg_name。根据result_pkg从字典M_p_a获取出该应用的实际应用名记录为p_name,将p_name赋值给app_name,执行S4.4,否则结束解析,执行S5;

S4.4:遍历L_account,当遍历数据存在的时候记录结果为account,并将account赋值给accout_name,当遍历结果不存在时执行S4.3;

S4.5:创建excel的一行单元格,将app_name,pkg_name,accout_name依次写入,写入完毕之后执行S4.4;

S5:生成了excel表格,那么该表格就是该智能移动设备中的QQ账号信息,否则代表没有提取到QQ账户数据。

与现有技术相比本发明的优点在于:不需要Root直接提取数据,具有通用的可行性;不需要修改权限,直接针对sd卡进行解析,提取速度将大大提升,解析方法找数据效率高,数据展示针对数据取证,更加严格专业。

具体实施方式

为使本发明的目的:技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。

S1:提取QQ账户数据准备;

QQ账户提取是解析腾讯应用在sd卡中特定的缓存文件进行分析,从而得出固定的提取算法,以解析文件的方式进行数据提取,在提取之前需要进行一些先觉条件判断,只有满足条件才能够实现QQ账号的提取。

以下为S1的详细步骤:

S1.1:使用系统API判断sd卡是否挂载,当sd卡已经挂载代表sd卡存在,执行S1.2,否则表示该智能移动终端设备不存在sd卡,否则执行结束解析执行S5;

S1.2:使用系统API判断sd卡的具体路径,并记录为sd_path;

S1.3:创建集合s_pkg,将腾讯QQ以及它的衍生产品的包名以字符串的形式存入s_pkg中;

S1.4:创建集合pkg_all,使用系统API获取Android设备已经加载的所有应用的包名信息,并将其以字符串的形式保存到pkg_all中;

S1.5:构建集合pkg_exits,用于存储Android智能设备中已经安装的QQ包名字符串信息;

S1.6:遍历pkg_all,当遍历存在结果时,记录为temp_pkg执行S1.7;否则表示遍历结束,执行S1.10;

S1.7:循环遍历s_pkg,当遍历结果存在时,记录结果为pkg_equal,并执行S1.8,否则继续遍历执行S1.6;

S1.8:当temp_pkg与pkg_equal字符串完全匹配的时候,表示该类型QQ聊天产品存在,同时将temp_pkg加入pkg_exits中;当不匹配的时候执行步骤S1.7;

S1.9:移除s_pkg中的pkg_equal选项,判定s_pkg中是否还存在数据,当 存在时执行步骤S1.6;当不存在时直接执行步骤S1.10;

S1.10:判定pkg_exits中是否存在数据,当存在时执行S2,否则表示该智能Android设备中不包含QQ通讯应用,执行S5结束解析。

S2:提取包含QQ账户信息的文件;

提取包含QQ账户文件是对sd卡中存在的大量文件进行一种过滤,是为了进一步缩减数据提取速度。构建字典Map用于存储sd卡中包含QQ账号的文件信息。

以下为S2的详细步骤:

S2.1:根据路径sd_path构建关于sd卡的文件流,同时获取该文件流下面的所有文件记录sd_files;

S2.2:遍历sd_files,当遍历结果存在时,记录结果为file_sigle,并执行S2.3,当不存在表示sd卡中不存在腾讯应用sd缓存数据目录,结束解析,执行S5;

S2.3:获取file_sigle的文件名,记录为file_sigle_name,使用字符串tencent与file_sigle_name匹配,当匹配时,执行S2.4,否则执行S2.2;

S2.4:判断file_sigle是否是一个文件夹,当是文件夹时,结束遍历,执行步骤S2.5,否则执行S2.2继续遍历;

S2.5:获取file_sigle目录下的所有文件,记录为file_figle_files;

S2.6:判断file_figle_files是否存在数据,执行S2.7,否则表示不存在数据,执行S5;

S2.7:对file_figle_files执行遍历,当结果存在时,记录遍历文件file_figle_files_file,并执行S2.8,否则执行S5结束解析;

S2.8:判定file_figle_files_file文件的文件名,并记录为f_f_fs_fn,将f_f_fs_fn与字符串msflogs做等值比较,当相等时,执行S2.9,否则执行S2.7;

S2.9:判定f_f_fs_fn是否为目录,当是时,跳出循环执行S2.10,否则执行S2.7;

S2.10:获取file_figle_files_file目录下面所有的文件,并记录f_f_fs_f_fs;

S2.11:对f_f_fs_f_fs执行遍历,当遍历结果存在时,记录结果f_f_fs_f_fs_f,执行步骤2.12,否则执行S5;

S2.12:获取文件f_f_fs_f_fs_f的文件名,并记录为f_f_fs_f_fs_f_name同时与字符串com做等值比较,当相等时,执行步骤S2.13,否则执行S2.11;

S2.13:判定f_f_fs_f_fs_f是否为目录,当是目录时执行S2.14,否则执行S2.11;

S2.14:获取f_f_fs_f_fs_f目录下面所有的文件,并记录f_f_fs_f_fs_f_fs;

S2.15:对f_f_fs_f_fs_f_fs执行遍历,当遍历结果存在时,记录结果f_f_fs_f_fs_f_fs_f,执行步骤S2.16,否则执行S5;

S2.16:获取文件f_f_fs_f_fs_f_fs_f的文件名,并记录为f_f_fs_f_fs_f_fs_f_name同时与字符串tencent做等值比较,当相等时,执行步骤S2.17,否则执行S2.15;

S2.17:判定f_f_fs_f_fs_f是否为目录,当是目录时执行S2.18,否则执行S2.15;

S2.18:f_f_fs_f_fs_f目录下面的文件是腾讯QQ及其衍生通讯产品存放日志数据的地方,获取该目录下的文件,记录为father_files;

S2.19:对father_files执行遍历,当遍历结果存在时,记录文件为father_file, 执行S2.20,否则结束解析执行S3;

S2.20:判断father_file是否为目录,当是时执行S2.21,否则执行S2.19;

S2.21:获取father_file的文件名记录为father_file_name;

S2.21:构建字典L_son,用于存储有可能包含账户信息的文件名;

S2.22:获取目录father_file下面所有的文件,记录为son_files;

S2.23:遍历son_files,当遍历结果存在时,记录为son_file,否则,将father_file_name作为键,将L_son作为值加入Map,并执行S2.19;

S2.24:获取son_file的文件名,记录为son_file_name;

S2.25:判断son_file_name根据正则式\\d{2}\\.\\d{2}\\.\\d{2}\\.\\d{2}\\.log进行文件筛选,当符合该正则式时,将son_file加入L_son,执行S2.23。

S3:解析账号数据文件;

经过S2的筛选,将所有可能包含QQ账号的文件过滤出现,本步骤开始执行具体账号的提取,创建字典Map_account用于保存提取出来的数据;

以下为S3的详细步骤:

S3.1:遍历Map,当数据存在时,获取Map的值记录为L_temp,获取Map的键,记录为pkg_name,然后执行步骤S3.2,当结果不存在时执行S4;

S3.2:创建集合L_account用来存储每一种QQ聊天应用类型的账户;

S3.3:遍历L_temp,当结果存在时记录结果为L_temp_file,并执行S3.4;当不存在数据时,将pkg_name作为key,L_account作为值,保存到Map_account,然后执行S3.1;

S3.4:加载文件L_temp_file,按行读取文件L_temp_file;当读取内容存在时,记录为data,执行S3.5:否则执行S3.3;

S3.5:判断data是否包含特定的字符,记录特定字符charer,当不包含时执行S3.3,否则执行S3.6;特殊字符满足以下需求,特殊字符检测顺序为qzone:MSF,当以上两个字符都不满足时记录为other。

S3.6:根据正则式[1-9][0-9]{4,9},进行数据匹配,当匹配成功时,记录为account,将account加入集合L_account,然后执行S3.3;当没有匹配到数据时直接执行S3.3;

S4:账户信息展示;

经过S3获取到了sd卡中保存的QQ账户信息,Map_account的键是智能手机中包含的所有QQ聊天应用包名,Map_account的值是登录这些聊天应用的账号,介于本专利用于取证,因此对数据来源有严格的需求,因此采用以下方式进行展示。

以下为S4的详细步骤:

S4.1:根据包名构建字典M_p_a,该字典表示的是包名对应的实际应用名,比如移动QQ对应com.tencent.mobielqq,轻聊QQ对应com.tencent.qqlite;

S4.2:加载excel插件,构建execl文件的头信息,头部信息包含应用名app_name,应用包名pkg_name,账户信息accout_name;

S4.3:遍历Map_account,当数据存在时,记录key为result_pkg,值为L_account。将result_pkg赋值给pkg_name。根据result_pkg从字典M_p_a获取出该应用的实际应用名记录为p_name,将p_name赋值给app_name,执行S4.4,否则结束解析,执行S5;

S4.4:遍历L_account,当遍历数据存在的时候记录结果为account,并将account赋值给accout_name,当遍历结果不存在时执行S4.3;

S4.5:创建excel的一行单元格,将app_name,pkg_name,accout_name依次写入,写入完毕之后执行S4.4;

S5:生成了excel表格,那么该表格就是该智能移动设备中的QQ账号信息,否则代表没有提取到QQ账户数据。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1