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

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

技术特征:

1.一种提取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账户数据。

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