2024年5月28日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.8

(22)申请日 2014.08.11

(71)申请人 四川效率源信息安全技术有限责任公司

地址 610000 四川省成都市高新区天府大道1700号新世纪环球中心E37楼2-1-715

(72)发明人 梁效宁

(74)专利代理机构

代理人

(51)

G06F9/44

H04M1/24

(10)申请公布号 CN 104142830 A

(43)申请公布日 2014.11.12

权利要求说明书 说明书 幅图

(54)发明名称

通过脚本插件技术提取智能手机应

用数据的方法和装置

(57)摘要

本发明公开了通过脚本插件技术提

取智能手机应用数据的方法和装置,属于

数据恢复技术领域,包括以下步骤:S1:

使用JavaScript编写脚本文档;S2:将编

写好的脚本文档存放在取证系统运行的特

定目录Script下;S3:将取证系统与手机

连通,获取手机安装的所有应用及其版

本,并把取证系统中的插件应用和手机安

装的应用进行智能匹配;S4:将匹配成功

的脚本插件进行数据提取、解析、分析,

最后呈现到用户界面。本发明的有益效果

如下:本发明由于使用了JavaScript脚本编

写插件,无缝集成到取证系统中,使取证

系统可以无限扩展。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种通过脚本插件技术提取智能手机App数据的方法,其特征在于,包括以下步

骤:

S1:使用Java Script编写脚本文档;

S2:将编写好的脚本文档存放在取证系统运行的特定目录Script下;

S3:将取证系统与手机连通,获取手机安装的所有应用及其版本,并把取证系统

中的插件应用和手机安装的应用进行智能匹配;

S4:将匹配成功的脚本插件进行数据提取、解析、分析,最后呈现到用户界面。

2.根据权利要求1所述的方法,其特征在于,所述的脚本文档由两部分组成,分别

是配置部分和Java Script代码部分。

3.根据权利要求2所述的方法,其特征在于,所述的配置部分包括应用名称、隶属

于哪种应用类别、版本号、提取方式、使用的数据结构、使用的图标文件以及需要

使用的数据文件。

4.根据权利要求2或3所述的方法,其特征在于,所述的Java Script代码部分加入

GoogleV8脚本引擎中注入的用C#编写的XLY对象。

5.根据权利要求4所述的方法,其特征在于,采用所述的GoogleV8的.Net版动态

库,在脚本执行过程中,动态加入以XLY开头的对象。

6.根据权利要求5所述的方法,其特征在于,在XLY对象中注入Convet,Debug,

File,PList,Sqlite和File对象。

7.根据权利要求1所述的方法,其特征在于,S4所述的具体方法如下:S41使用

C#语言把脚本中的配置信息以可扩展标记语言XML的方式读入,通过对配置文件

的解析,把用户配置的插件信息转换为在C#中自定义的Data Parse Script对象,其

中包含该插件的名称、使用的数据结构、用户界面视图结构和Java Script脚本代码;

S42:通过GoogleV8引擎,高效执行Java Script脚本,这里约定Java Script的执行

结果为Array转换的Json字符串;

S43:通过开源动态库把Json字符串转换为C#中可以使用的数

组对象;

S44:把配置中获取的Data Parse Script对象和Java Script执行得到的C#语言中数

组对象组装为用户界面统一的数据契约对象进行呈现。

8.根据权利要求1所述的插件控制器,其特征在于,包括设置在取证系统运行的特

定目录Script下的脚本编辑模块;将取证系统中的插件应用和手机安装的应用进行

智能匹配的匹配模块;将匹配成功的脚本插件进行数据提取、解析、分析,最后呈

现到用户界面的解析模块。

9.根据权利要求8所述的插件控制器,其特征在于,所述的脚本编辑模块包括配置

单元和代码单元,所述的配置单元包括应用名称、隶属于哪种应用类别、版本号、

提取方式、使用的数据结构、使用的图标文件以及需要使用的数据文件。

10.根据权利要9所述的插件控制器,其特征在于,所述的代码单元包括GoogleV8

脚本引擎中注入的用C#编写的XLY对象,其中XLY对象包括Convet,Debug,

File,PList,Sqlite和File对象。

说 明 书

技术领域

本发明属于信息安全技术领域,具体涉及一种通过脚本插件技术提取智能手机应

用数据的方法和装置。

背景技术

智能手机取证系统是对手机中各种应用(Application,简称App)数据进行提取和分

析。但市场上的手机App层出不穷,每个App应用的版本也在不断的更新升级,

因此现有的取证系统所支持的App总赶不上市场的变化。

比如当下计划生成支持A、B、C三个主流应用最新V1版本的取证系统,但当半

个月后,应用集成到取证系统后,这三个应用已经升级到V2版本,或者又有新的

D应用需要集成,因此,支持V1版本的取证系统如果应用在V2版本中,会出现

重大缺陷。

在这种情况下,只有把App应用数据的提取方法开放给第三方(包括客户),使

用最流行的JavaScript语言编写脚本,以插件的机制持续不断地集成到取证系统中,

才可能解决上述问题。

发明内容

本发明针对现有技术的不足,提供了一种通过脚本插件技术提取智能手机应用数据

的方法和装置,能够有效的解决因APP更新速度过快造成取证系统滞后而产生的

严重缺陷。

为解决以上问题,本发明采用的技术方案如下:一种通过脚本插件技术提取智能手

机应用数据的方法和装置,包括以下步骤:

S1:使用JavaScript编写脚本文档;

S2:将编写好的脚本文档存放在取证系统运行的特定目录Script下;

S3:将取证系统与手机连通,获取手机安装的所有应用及其版本,并把取证系统

中的插件应用和手机安装的应用进行智能匹配;

S4:将匹配成功的脚本插件进行数据提取、解析、分析,最后呈现到用户界面。

作为优选:所述的脚本文档由两部分组成,分别是配置部分和JavaScript代码部分。

作为优选:所述的配置部分包括应用名称、隶属于哪种应用类别、版本号、提取方

式、使用的数据结构、使用的图标文件以及需要使用的数据文件。

作为优选:所述的JavaScript代码部分加入GoogleV8脚本引擎中注入的用C#编写

的XLY对象。

作为优选:采用所述的GoogleV8的.Net版动态库,在脚本执

行过程中,动态加入以XLY开头的对象。

作为优选:在XLY对象中注入Convet,Debug,File,PList,Sqlite和File对象。

作为优选:S4所述的具体方法如下:

S41使用C#语言把脚本中的配置信息以可扩展标记语言XML的方式读入,通过对

配置文件的解析,把用户配置的插件信息转换为在C#中自定义的Data Parse Script

对象,其中包含该插件的名称、使用的数据结构、用户界面视图结构和JavaScript

脚本代码;

S42:通过GoogleV8引擎,高效执行JavaScript脚本,这里约定JavaScript的执行

结果为Array转换的Json字符串;

S43:通过开源动态库把Json字符串转换为C#中可以使用的数

组对象;

S44:把配置中获取的Data Parse Script对象和JavaScript执行得到的C#语言中数组

对象组装为用户界面统一的数据契约对象进行呈现。

为解决以上问题,本发明还提供了一种插件控制器,包括设置在取证系统运行的特

定目录Script下的脚本编辑模块;将取证系统中的插件应用和手机安装的应用进行

智能匹配的匹配模块;将匹配成功的脚本插件进行数据提取、解析、分析,最后呈

现到用户界面的解析模块。

作为优选,所述的脚本编辑模块包括配置单元和代码单元,所述的配置单元包括应

用名称、隶属于哪种应用类别、版本号、提取方式、使用的数据结构、使用的图标

文件以及需要使用的数据文件。

作为优选,所述的代码单元包括GoogleV8脚本引擎中注入的用C#编写的XLY对

象,其中XLY对象包括Convet,Debug,File,PList,Sqlite和File对象。

本发明的有益效果如下:本发明只需要第三方(包括客户)人员通过简单学习和遵

守特定契约,就可以根据自己特定需求(目的)提取特定应用数据,以满足自身需

求。本发明使用最常用的脚本语言JavaScript,由于这门语言使用最广泛,基础语

法简单,降低了第三方(包括客户)人员的学习成本。本发明由于使用了

JavaScript脚本编写插件,无缝集成到取证系统中,使取证系统可以无限扩展。

附图说明

图1是JavaScript脚本插件加载到取证系统的流程示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对

本发明做进一步详细说明。

一种通过脚本插件技术提取智能手机应用数据的方法,包括以下步骤:

S1:使用JavaScript编写脚本文档;

S2:将编写好的脚本文档存放在取证系统运行的特定目录Script下;

S3:将取证系统与手机连通,获取手机安装的所有应用及其版本,并把取证系统

中的插件应用和手机安装的应用进行智能匹配;

S4:将匹配成功的脚本插件进行数据提取、解析、分析,最后呈现到用户界面。

所述的脚本文档由两部分组成,分别是配置部分和JavaScript代码部分。

所述的配置部分包括应用名称、隶属于哪种应用类别、版本号、提取方式、使用的

数据结构、使用的图标文件以及需要使用的数据文件。

作所述的JavaScript代码部分加入GoogleV8脚本引擎中注入的用C#编写的XLY

对象。

采用所述的GoogleV8的.Net版动态库,在脚本执行过程中,

动态加入以XLY开头的对象。

在XLY对象中注入Convet,Debug,File,PList,Sqlite和File对象。

S4所述的具体方法如下:

S41使用C#语言把脚本中的配置信息以可扩展标记语言XML的方式读入,通过对

配置文件的解析,把用户配置的插件信息转换为在C#中自定义的Data Parse Script

对象,其中包含该插件的名称、使用的数据结构、用户界面视图结构和JavaScript

脚本代码;

S42:通过GoogleV8引擎,高效执行JavaScript脚本,这里约定JavaScript的执行

结果为Array转换的Json字符串;

S43:通过开源动态库把Json字符串转换为C#中可以使用的数

组对象;

S44:把配置中获取的Data Parse Script对象和JavaScript执行得到的C#语言中数组

对象组装为用户界面统一的数据契约对象进行呈现。

为解决以上问题,本发明还提供了一种插件控制器,包括设置在取证系统运行的特

定目录Script下的脚本编辑模块;将取证系统中的插件应用和手机安装的应用进行

智能匹配的匹配模块;将匹配成功的脚本插件进行数据提取、解析、分析,最后呈

现到用户界面的解析模块。

所述的脚本编辑模块包括配置单元和代码单元,所述的配置单元包括应用名称、隶

属于哪种应用类别、版本号、提取方式、使用的数据结构、使用的图标文件以及需

要使用的数据文件;所述的代码单元包括GoogleV8脚本引擎中注入的用C#编写

的XLY对象,其中XLY对象包括Convet,Debug,File,PList,Sqlite和File对

象。

具体实施例:

JavaScript脚本插件加载到取证系统的方法:

如图1所示,用户使用JavaScript编写脚本后,放在取证系统运行的特定目录

Script下,取证系统运行时从该目录加载所有的插件。然后将取证系统链接手机获

取手机安装的所有应用及其版本,把取证系统中的插件应用和手机安装的应用进行

智能匹配。匹配成功的脚本插件开始进行数据提取、解析、分析,最后呈现到UI

(User Interface,用户界面)。此处的智能匹配是指对版本的匹配,属于现有技术,

不在此累述。

脚本文档设计思路:脚本文档由两部分组成,分别是配置和Javascript代码。

1. 配置部分主要起到插件自述作用,如它的应用名称,隶属于哪种应用类别,版

本号,提取方式,使用的数据结构,使用的图标文件以及它需要使用的数据文件。

为了让UI根据用户自定义展示数据结构,本发明提供data配置节点,可以对展示

子项的类型、名称、宽度,对齐方式,排序以及呈现格式等进行自定义。

代码举例如下:

/*[config]

<plugin name="Sqlite 提取测

试,1" group="Test,11"devicetype="android,ios" pump="usb,wifi,mirror,bluetooth" app=

"ony" version="1.0" icon="iconsicon_DeviceInformation.

png" description="Sqlite提取模板" data="$data" >

<source>

<value>/data/data/ovider/databases/</val

ue>

<value>#/databases/</value>

</source>

<data detailfield="" contract="Contact">

<item name="电话号码

" code="Number" type="string" width="120" format="" order="Asc,Desc" alignment="L

eft,Center,Right" groupindex="-

1" templatename="" templateparameter="" ></item>

<item name="日期

" code="StartDate" type="string" width="120" format="" ></item>

<item name="姓名" code="Name" type="string" width="130" ></item>

<item name="DurationSecond" code="DurationSecond" type="int" width="100" >

</item>

<item name="联系人名称

" code="ContactName" type="st width="180" ></item>

<item name="Type" code="Type" type="string" width="120" ></item>

</data>

</plugin>

[config]*/

2. 脚本文档的核心部分是由用户编写的JavaScript代码。

考虑到用户学习成本以及对一些用JavaScript脚本编写难以实现的场景,这里只使

用JavaScript最基本的语法,再辅以往GoogleV8脚本引擎中注入的用C#编写的

XLY对象(File、PList、Convert、Debug、Sqilte)。用户可以轻松处理IOS系统

有的PList文件和Sqlite文件,同时可以使用一些工具类和调试类方法。

举例如下://树形结构

function TreeNode() {

= ""; //节点名称

des = new Array(); //子节点数字

= new Array(); //该节点的数据项,即前面定义的Item对象数组。

= ""; //节点[Items]的数据类型

ate = "Normal";

}

var result = new Array();

//源文件

var source = $source;

//测试数据

ine("Hello World");

//账户

var len1 = Number(Int(2, 5));

for (var i = 0; i < len1; i++) {

var n1 = new TreeNode();

= "账户:" + i;

= "Group";

//分组

var len2 = Number(Int(1, 5));

}

核心逻辑实现技术:

1.引入GoogleV8开源引擎

它是由谷歌开发开源的JavaScript引擎,它在运行之前把JavaScript代码直接编译

位机器码,而非字节码,让执行效率得到显著提高。最为重要的是,它支持属性可

以在运行时动态添加到或从对象中删除,引擎会为运行中的对象创建一个属性字典,

新的属性都要通过字典查找属性在内存中的位置。因此本发明采用它的.Net版动态

库(),在脚本执行过程中,动态加入以“XLY”开头的对象,

在“XLY”对象中注入Convet,Debug,File,PList,Sqlite,File对象,以方便用户更

灵活方便的操作复杂数据结构。完成上述步骤,就可以编写下面的代码语句。

//在输出窗口打印调试信息 “Hello World”

ine("Hello World");

//调用Sqlite数据恢复数据库数据

var dbpath = covery(oldDbpath, chailb, tableList);

//转换为C#中特定的枚举值

pe = State(_DataType);

//把转换Linux系统下10位或13时间戳转换为Windows系统的时间格式。

= oDateTime(parseInt());

2.脚本解析

a) 首先使用C#语言把脚本中的配置信息以可扩展标记语言XML的方式读入,通

过对配置文件的解析,把用户配置的插件信息转换为在C#中自定义的

Data Parse Script对象,其中包含该插件的名称,使用的数据结构,比如树结构,

UI视图结构和JavaScript脚本代码。

b) 通过GoogleV8引擎,高效执行JavaScript脚本。这里约定JavaScript的执行结

果为Array转换的Json字符串。

c) 通过开源动态库把Json字符串转换为C#中可以使用的数组

对象。

d) 最后,把配置中获取的Data Parse Script对象和JavaScript执行得到的C#语言中

数组对象(元素为:自定义的简单对象,动态对象,树节点),再组装为界面UI

统一的数据契约对象(IDataSource)进行呈现。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明

的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。

本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明

实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。