数据采集工具包定制方法、装置、终端和存储介质与流程

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

本发明涉及计算机技术领域,特别是涉及数据采集工具包定制方法、装置、终端和存储介质。



背景技术:

为了更好的推广运营app(application,应用程序),app开发商需要采集app中的用户行为数据,并对采集到的数据进行分析。目前,用户行为数据采集方式主要是针对app开发对应的数据采集sdk工具包(softwaredevelopmentkit,软件开发工具包),向用户发布安装有该数据采集sdk工具包的app。传统方式中,如果要实现多款app用户行为数据的采集,app开发商需要手动针对每款app分别开发对应的数据采集sdk工具包,开发成本和维护成本高,且开发效率低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够降低数据采集工具包开发成本,提高数据采集工具包开发效率的数据采集工具包定制方法、装置、终端和存储介质。

一种数据采集工具包定制方法,包括:

获取多个数据采集脚本;所述数据采集脚本具有对应的多个数据采集项;

通过数据采集配置页面显示所述数据采集项;

获取对数据采集项的选定操作,根据选定操作获取被选定的数据采集项以及与被选定的数据采集项对应的配置参数;

根据被选定的数据采集项提取对应的数据采集脚本,利用配置参数对提取到的数据采集脚本进行更新,对更新后的数据采集脚本进行编译;

对编译后的数据采集脚本进行混淆加密,对加密后的数据采集脚本进行封装以得到定制的数据采集工具包。

在其中一个实施例中,所述配置参数包括自定义功能函数或定制数组,所述定制数组包括多个预设标识;所述利用配置参数对提取到的数据采集脚本进行更新的步骤,包括:

利用自定义功能函数对提取到的数据采集脚本进行填充;或

对定制数组中的预设标识进行循环遍历,将定制数组中的预设标识插入数据采集脚本中的类名,得到多个更新后的数据采集脚本。

在其中一个实施例中,对编译后的数据采集脚本进行混淆加密步骤,包括:

获取数据采集脚本中的敏感字段,计算所述敏感字段对应的二进制数值;

按照预设规则将数据采集脚本中的类名或函数名进行拼接,得到敏感字段对应的盐值,计算所述盐值对应的二进制数值;

对所述敏感字段对应的二进制数值和所述盐值对应的二进制数值进行预设逻辑运算,得到混淆字符串;

通过将所述混淆字符串对相应所述敏感字段进行替换,对所述数据采集脚本进行混淆加密。

在其中一个实施例中,对编译后的数据采集脚本进行混淆加密步骤,包括:

通过函数指针将数据采集脚本中的代码封装至预设主函数,所述预设主函数包括多条输入输出类型转换语句;

利用所述输入输出类型转换语句将数据采集脚本的输入类型转换为第一固定类型,输出类型转换为第二固定类型,以对所述数据采集脚本进行混淆加密。

在其中一个实施例中,对编译后的数据采集脚本进行混淆加密步骤,包括:

获取数据采集脚本中的多个具有功能含义的函数名;

获取函数名对应的自定义字符串;通过将自定义字符串对相应的函数名进行替换,对所述函数名的功能含义进行隐藏,以对所述数据采集脚本进行混淆加密。

在其中一个实施例中,对编译后的数据采集脚本进行混淆加密步骤,包括:

查询数据采集脚本中函数调用语句;所述函数调用语句包括调用函数的函数名及被调用函数的函数名;

根据被调用函数的函数名查询被调用函数的函数体,通过在所述被调用函数的函数体添加预设关键字,对调用函数和被调用函数之间的调用关系进行隐藏,以对所述数据采集脚本进行混淆加密。

一种数据采集工具包定制装置,所述装置包括:

页面展示模块,用于获取多个数据采集脚本;所述数据采集脚本具有对应的多个数据采集项;通过数据采集配置页面显示所述数据采集项;

参数配置模块,用于获取对数据采集项的选定操作,根据选定操作获取被选定的数据采集项以及与被选定的数据采集项对应的配置参数;

脚本更新模块,用于根据被选定的数据采集项提取对应的数据采集脚本,利用配置参数对提取到的数据采集脚本进行更新,对更新后的数据采集脚本进行编译;

混淆加密模块,用于对编译后的数据采集脚本进行混淆加密,对加密后的数据采集脚本进行封装以得到定制的数据采集工具包。

在其中一个实施例中,所述混淆加密模块还用于获取数据采集脚本中的敏感字段,计算所述敏感字段对应的二进制数值;按照预设规则将数据采集脚本中的类名或函数名进行拼接,得到敏感字段对应的盐值,计算所述盐值对应的二进制数值;对所述敏感字段对应的二进制数值和所述盐值对应的二进制数值进行预设逻辑运算,得到混淆字符串;通过将所述混淆字符串对相应所述敏感字段进行替换,对所述数据采集脚本进行混淆加密。

一种终端,包括存储装置及其处理器,所述存储装置中储存有计算机程序,所述处理器执行所述计算机程序时实现本发明任意一个实施例中提供的数据采集工具包定制方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,该指令被处理器执行时实现本发明任意一个实施例中提供的数据采集工具包定制方法的步骤。

上述数据采集工具包定制方法、装置、终端和存储介质,通过数据采集配置页面对多个数据采集项进行展示,使得应用程序开发商可以在数据采集配置页面对数据采集项进行选择并录入与选定的数据采集项对应的配置参数;根据被选定的数据采集项,可以提取对应的数据采集脚本;利用配置参数对提取到的数据采集脚本进行更新,可以满足个性化的数据采集需求;在对更新后的数据采集脚本进行编译,混淆加密和封装后,可以得到安全性高的数据采集工具包。采用页面配置的方式选定数据采集项,使得无需重新编写代码,只需添加或删除易读的数据采集项即可实现数据采集工具包定制,降低了数据采集工具包的开发门槛和开发成本。当需要针对其他某款应用程序开发数据采集工具包时,只需变更对数据采集项的选择即可,可以提高数据采集工具包开发效率。

附图说明

图1为一个实施例中数据采集工具包定制方法的应用环境图;

图2为一个实施例中数据采集工具包定制方法的流程图;

图3为一个实施例中数据采集工具包定制装置的结构图;

图4为一个实施例中终端的框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。

本申请提供一种数据采集工具包定制方法,可以应用于如图1所示的应用环境中。其中,定制终端102通过网络与用户终端104连接。用户终端104可以是智能手机、平板电脑、笔记本电脑、pos机、车载电脑中的至少一种,但并不局限于此。用户终端104上安装有应用程序。定制终端102用于生成不同应用程序对应的数据采集工具包,并向对应的用户终端104发布安装有该数据采集工具包的应用程序。定制终端102预存储了多个数据采集脚本,每个数据采集脚本具有对应的一个或多个数据采集项。定制终端102将多个数据采集项以数据采集配置页面的形式显示。基于显示的数据采集配置页面,应用程序开发商可以根据开发需求在定制终端102对数据采集项进行选择,并输入与选定的数据采集项对应的配置参数,如自定义功能函数,或者包括多个预设标识的定制数组等。定制终端102根据被选定的数据采集项提取对应的数据采集脚本,利用配置参数对提取到的数据采集脚本进行更新。例如,定制终端102利用自定义功能函数对提取到的数据采集脚本进行填充;或对定制数组中的预设标识进行循环遍历,将定制数组中的预设标识插入数据采集脚本中的类名,得到多个更新后的数据采集脚本。定制终端102对更新后的数据采集脚本进行编译,并对编译后的数据采集脚本进行混淆加密和封装,得到定制的数据采集工具包。当需要针对不同应用程序开发数据采集工具包时,只需变更对数据采集项选择即可,可以提高数据采集工具包开发效率。

在一个实施例中,如图2所示,提供了一种数据采集工具包定制方法,以该方法应用于定制终端为例进行说明,具体包括以下步骤:

步骤202,获取多个数据采集脚本;数据采集脚本具有对应的多个数据采集项。

当需要针对某款应用程序定制对应的数据采集工具包时,应用程序开发商可以通过在定制终端的命令行窗口输入预设的定制命令,向定制终端发起数据采集工具包定制请求。定制终端可以是多款应用程序的控制终端。这里的应用程序可以是金融应用、理财应用、电商应用等需要进行网络交易的敏感应用。根据定制终端上运行的操作系统不同,预先编写的定制命令可以不同。例如,在andriod(安卓)平台,定制命令可以是gradle命令(一种项目自动化构建工具)。gradle命令是应用程序开发商利用groovy语言(一种编程语言)编写的能够在构建工具gradle中运行的脚本。可以理解,还可以采用其他方式触发定制终端对数据采集工具包进行定制,对此不作限制。

定制终端根据数据采集工具包定制请求获取预先封装的基础的数据采集工具包。基础的数据采集工具包可以是应用程序开发商自行开发的。基础的数据采集工具包也可以由第三方开发,并将开发的数据采集工具包以接口的形式对外开放,以供定制终端调用。

数据采集工具包用于对应用程序中的目标数据进行采集。目标数据可以是应用程序页面对应的视图信息或用户行为数据等,如视图名称,视图属性,用户对应用程序页面的触摸操作和访问频率等。根据数据采集脚本能够实现的功能,每个数据采集脚本具有对应的脚本标识。脚本标识包括数据采集项以及对数据采集项的处理操作。也就是说,每个数据采集脚本与一个或多个数据采集项相关联。例如,数据采集脚本sdk.x用于对应用程序页面中的视图属性进行采集,则可以用“视图属性采集”标识该数据采集脚本;数据采集脚本sdk.y用于采集应用程序页面中视图对应的触摸事件,并对触摸事件进行拦截,则可以用“触摸事件拦截”标识该数据采集脚本。

步骤204,通过数据采集配置页面显示所述数据采集项。

步骤206,获取对数据采集项的选定操作,根据选定操作获取被选定的数据采集项以及与被选定的数据采集项对应的配置参数。

定制终端获取多个数据采集脚本对应的脚本标识,并通过数据采集配置页面对多个脚本标识进行展示。应用程序开发商可以根据数据采集配置页面展示的脚本标识对每个数据采集脚本的功能进行了解后,在数据采集配置页面对一个或多个脚本标识进行选择。

预先封装的基础的数据采集工具包中的数据采集脚本功能较为单一,为了满足应用程序开发商对每个数据采集项的个性化采集需求,定制终端在数据采集配置页面对每个脚本标识添加对应的脚本变更输入框。当对某个数据采集项具有特定的数据采集需求时,应用程序开发商可以在该数据采集项对应的脚本变更输入框录入相应的配置参数。容易理解,应用程序开发商也可以在数据采集配置页面以文件上传的方式对配置参数进行录入,对此不作限定。配置参数可以是应用程序开发商补充的功能函数或者自定义的字符串等。

步骤208,根据被选定的数据采集项提取对应的数据采集脚本,利用配置参数对提取到的数据采集脚本进行更新,对更新后的数据采集脚本进行编译。

定制终端根据应用程序开发商在数据采集配置页面选定的一个或多个脚本标识,在预先封装的基础的数据采集工具包中提取对应的数据采集脚本。若选定的一个或多个脚本标识具有对应的配置参数,则定制终端利用配置参数对相应的数据采集脚本进行更新。

在一个实施例中,配置参数包括自定义功能函数,利用配置参数对提取到的数据采集脚本进行更新的步骤,包括:利用自定义功能函数对提取到的数据采集脚本进行填充。

当预先封装的数据采集工具包中的某个数据采集脚本无法达到应用程序开发商的采集需求时,应用程序开发商可以在数据采集配置页面将自定义功能函数作为配置参数录入对应的脚本变更输入框。自定义功能函数可以是应用程序开发商根据期望数据采集脚本能够实现的其他功能预先编写的。配置参数还包括自定义功能函数对应的添加方式,添加方式包括插入和替换。当添加方式为插入时,配置参数还包括自定义功能函数的插入位置;当添加方式为替换时,配置参数还包括自定义功能函数的替换对象。

当自定义功能函数的添加方式为插入时,定制终端根据自定义功能函数的插入位置,将自定义功能函数插入对应的数据采集脚本。例如,在上述举例中,应用程序开发商期望数据采集脚本sdk.y可以对触摸事件进行上报,则可以将触摸事件上报功能函数插入至数据采集脚本sdk.y。当自定义功能函数的添加方式为替换时,定制终端根据自定义功能函数的替换对象,在相应的数据采集脚本中将替换对象删除,在该替换对象所在位置插入自定义功能函数。应用程序开发商只需根据开发需求编写新增功能的自定义功能函数,将该自定义功能函数填充至基础的数据采集脚本,即可实现对数据采集脚本的更新,而无需对整个数据采集脚本进行修改,减少应用程序开发商开发量,进而可以提高数据采集工具包开发效率。

在一个实施例中,配置参数包括定制数组,定制数组包括多个预设标识;利用配置参数对提取到的数据采集脚本进行更新的步骤,包括:对定制数组中的预设标识进行循环遍历,将定制数组中的预设标识插入数据采集脚本中的类名,得到多个更新后的数据采集脚本。

传统方式中,在利用数据采集工具包对用户行为数据进行采集之前,应用程序开发商需要预先针对不同的应用程序分别开发对应的数据采集工具包。但事实上,同一应用程序开发商开发的多款应用程序的实现逻辑相同或相似,使得多款应用程序分别对应的数据采集工具包相似。例如,数据采集工具包包括多个数据采集脚本。每个数据采集脚本包括一个或多个对象类,每个对象类具有对应的类名;每个对象类包括一个或多个函数,每个函数具有对应的函数名。部分应用程序对应的数据采集工具包的区别仅在于类名或函数名。若需要进行目标数据采集的应用程序较多,则应用程序开发商需要进行大量的重复动作,浪费人力,也降低了数据采集效率。

为了减少重复操作,定制终端允许应用程序开发商在数据采集页面将定制数组作为配置参数进行录入,利用定制数组批量定制数据采集工具包。数据采集工具包与实现逻辑相同或相似的多款应用程序相对应。具体的,定制数组为一维数组,将一个或多个预设标识作为数组元素进行记录。预设标识可以是字符或字符串等。

定制终端将定制数组中第一个数组元素作为前缀或后缀添加至相应数据采集脚本中全部类名中,以对数据采集脚本进行更新。定制终端对定制数组进行遍历,按照上述方式将下一个数组元素作为前缀或后缀添加至相应数据采集脚本中全部类名中,以此类推,批量获得多个更新后的数据采集脚本。定制终端对更新后的数据采集脚本可以获取多个定制的数据采集工具包。容易理解,获得数据采集工具包的数量与定制数组中数组元素的数量相同。应用程序开发商可以通过变更定制数组的数组元素,对需要生成的定制的数据采集工具包的数量自由调整,提高数据采集工具包的定制效率。例如,假设定制数组为[abc,def,ghi],在相应数据采集脚本中所有类名前添加前缀abc,编译后获得定制的数据采集工具包x;在相应数据采集脚本中所有类名前添加前缀def,编译后获得定制的数据采集工具包y;在相应数据采集脚本中所有类名前添加前缀ghi,编译后获得定制的数据采集工具包z。

步骤210,对编译后的数据采集脚本进行混淆加密,对加密后的数据采集脚本进行封装以得到定制的数据采集工具包。

定制终端对更新后的数据采集脚本进行编译,执行封装命令,得到定制的数据采集工具包。定制终端将定制的数据采集工具包安装至对应的应用程序,将安装有定制的数据采集工具包的应用程序发布至用户终端,以使用户终端在相应的应用程序中安装该定制的数据采集工具包。在一个实施例中,由于需要进行目标数据采集的应用程序可能是涉及网络交易的敏感应用,为了减少敏感数据的泄漏风险,在对编译后的数据采集脚本进行封装之前,定制终端对编译后的数据采集脚本混淆加密,以提高数据采集工具包的安全性。

本实施例中,通过数据采集配置页面对多个数据采集项进行展示,使得应用程序开发商可以在数据采集配置页面对数据采集项进行选择并输入与选定的数据采集项对应的配置参数;根据被选定的数据采集项,可以提取对应的数据采集脚本;利用配置参数对提取到的数据采集脚本进行更新,可以满足个性化的数据采集需求;在对更新后的数据采集脚本进行编译,混淆加密和封装后,可以得到安全性高的数据采集工具包。采用页面配置的方式选定数据采集项,使得无需重新编写代码,只需添加或删除易读的数据采集项即可实现数据采集工具包定制,降低了数据采集工具包的开发门槛和开发成本。当需要针对其他某款应用程序开发数据采集工具包时,只需变更对数据采集项的选择即可,可以提高数据采集工具包开发效率。

在一个实施例中,对编译后的数据采集脚本进行混淆加密的步骤,包括:获取数据采集脚本中的敏感字段,计算敏感字段对应的二进制数值;按照预设规则将数据采集脚本中的类名或函数名进行拼接,得到敏感字段对应的盐值,计算盐值对应的二进制数值;对敏感字段对应的二进制数值和盐值对应的二进制数值进行预设逻辑运算,得到混淆字符串;通过将混淆字符串对相应敏感字段进行替换,对数据采集脚本进行混淆加密。

为了提高数据采集工具包中的敏感字段的安全性,应用程序开发商通常采用盐值加密的方式对敏感字段进行加密。敏感字段包括用户名、密码、密钥、域名、ip地址(internetprotocol,网络协议)、ca(certificationauthority,认证)数字证书和数字签名等。盐值加密是指给待加密的敏感字段关联一个n位随机序列,该n位随机序列即为“盐值”。传统的盐值加密方式中,利用系统方法将敏感字段转化为可读的字符串。但采用系统方法难以保证字符串转换成功率,一旦转换失败,则需要更换盐值,降低加密效率。更重要的是,当字符串转换失败时,敏感字段关联的盐值面临着存储的问题,如果将盐值以明文的方式内置在数据采集脚本中则不利于加密效果,敏感字段的安全性仍不高。

为了解决上述问题,定制终端获取更新后的采集脚本中的敏感字段,动态生成敏感字段对应的盐值,根据敏感字段及对应盐值生成混淆字符串,利用混淆字符串对敏感字段进行加密。具体的,定制终端将敏感字段转化为二进制数值。定制终端获取数据采集脚本中的多个类名和函数名,按照预设规则将获取到的类名和函数名进行拼接,得到随机字符串,对随机字符串进行哈希变换,生成敏感字段对应的盐值。定制终端将敏感字段对应的盐值转化为二进制数值,对敏感字段对应的二进制数值和盐值对应的二进制数值分别进行加密,对加密后的敏感字段对应的二进制数值和盐值对应的二进制数值进行预设逻辑运算,得到目标二进制数值。预设逻辑运算包括异或运算。定制终端将目标二进制数值转化为十六进制数值,将该十六进制数值作为混淆字符串对敏感字段进行替换。将包含敏感字段和盐值的数据信息的混淆字符串内置在数据采集脚本中,可以解决敏感字段对应盐值的存储问题,且混淆字符串的获取只需简单的进制转换,可以解决字符串转换失败的问题,从而可以提高对敏感字段的加密效率。

定制终端将混淆加密后的数据采集工具包发布至用户终端。当合法用户在用户终端使用安装有该数据采集工具包的应用程序时,用户终端获取数据采集脚本中的混淆字符串,对混淆字符串进行解密,将混淆字符串还原为敏感字段。具体的,用户终端将数据采集脚本中的混淆字符串转换为二进制数值。用户终端按照上述方式生成混淆字符串对应的盐值,即获取数据采集脚本中的多个类名和函数名,按照预设规则将获取到的类名和函数名进行拼接,得到随机字符串,对随机字符串进行哈希变换,生成混淆字符串对应的盐值。由于均是按照预设规则利用数据采集脚本中的类名和函数名生成,对混淆字符串解密时生成的盐值与对敏感字段加密时生成的盐值相同。用户终端将混淆字符串对应的盐值转化为二进制数值,对混淆字符串对应的二进制数值和盐值对应的二进制数值进行预设逻辑运算,得到目标二进制数值。预设逻辑运算包括异或运算。用户终端将目标二进制数值转化为十六进制数值。可以理解,该十六进制数值即为敏感字段。敏感字段的获取只需简单的进制转换,可以提高对混淆字符串的解密效率。

本实施例中,混淆加密过程利用数据采集脚本中的类名或函数名动态产生盐值,可以减少盐值被泄漏的风险。将包含敏感字段和盐值的数据信息的混淆字符串内置在数据采集脚本中,可以解决敏感字段对应盐值的存储问题。混淆字符串的获取只需简单的进制转换,可以解决字符串转换失败的问题,进而可以提高对敏感字段的加密效率。

在一个实施例中,对编译后的数据采集脚本进行混淆加密的步骤,包括:通过函数指针将数据采集脚本中的代码封装至预设主函数,预设主函数包括多条输入输出类型转换语句;利用输入输出类型转换语句将数据采集脚本的输入类型转换为第一固定类型,输出类型转换为第二固定类型,以对数据采集脚本进行混淆加密。

传统方式中,利用混淆加密工具对数据采集脚本进行混淆加密。但现有混淆加密工具对数据采集脚本的混淆加密强度不够,很容易被攻击者破解,造成客户信息等敏感数据的泄漏。例如,使用escape混淆加密后的数据采集脚本,只需要使用unescape函数即可还原出源数据采集脚本,现有的混淆加密工具难以保证数据采集脚本的安全。

为了解决上述问题,定制终端对更新后的数据采集脚本的输入类型和输出类型进行混淆。具体的,定制终端对更新后的数据采集脚本进行编译后,将数据采集脚本中的代码封装至预设主函数中。预设主函数可以是基于预设编程语言实现的主函数。容易理解,根据操作系统的不同,数据采集脚本中的代码采用的编程语言可以不同。例如,在andriod平台,可以采用java语言(一种编程语言)编写数据采集脚本;在ios(iphoneoperatingsystem,苹果操作系统)平台,可以采用objective-c语言(一种编程语言)编写数据采集脚本;在混合应用平台,可以采用js语言(javascript,直译式脚本语言)编写数据采集脚本。预设编程语言可以是区别于开发数据采集脚本时采用的编程语言,如c语言或者c++语言(一种编程语言)等。

预设主函数包括多条输入输出类型转换语句。输入输出类型转换语句用于将数据采集脚本中多样化的数据输入类型和输出类型分别转换为第一固定类型和第二固定类型。输入输出类型转换语句可以通过在预设主函数定义结构体来实现。具体的,预设主函数包括多个结构体,每个结构体中声明了多个函数指针,将函数指针指向数据采集脚本中的一个或多个对象类。每个结构体具有对应的结构体变量,结构体变量数据类型为第一固定类型或第二固定类型。第一固定类型和第二固定类型分别可以是int型(整数型),long型(长整数型)或者string(字符串类型)等。当定制终端对更新后的数据采集脚本进行编译时,预设主函数利用函数指针调用对应数据采集脚本中的代码,从而将数据采集脚本中的代码封装至预设主函数中。定制终端通过执行预设主函数将数据采集脚本的输入类型和输出类型转换为固定的类型,从而对数据采集脚本的输入类型和输出类型进行混淆,且该混淆为不可逆混淆。可以理解,输入输出类型转换语句也可以通过其他方式实现,对此不作限制。

本实施例中,对数据采集脚本中每个对象类的输入类型和输出类型进行混淆,且该混淆为不可逆混淆,攻击者通过反编译得到的输入类型和输出类型均为数字或字母,攻击者无从知晓数据采集脚本的实际输入类型和输出类型,从而也就无法获知数据采集脚本中各个函数的实际功能,增加了数据采集脚本的破解成本。

在一个实施例中,对编译后的数据采集脚本进行混淆加密的步骤,包括:获取数据采集脚本中的多个具有功能含义的函数名;获取函数名对应的自定义字符串;通过将自定义字符串对相应的函数名进行替换,对函数名的功能含义进行隐藏,以对数据采集脚本进行混淆加密。

为了提高数据采集工具包的安全性,定制终端将数据采集脚本中具有明确的功能含义的函数名替换为无实际意义的自定义字符串。自定义字符串可以是应用程序开发商在数据采集配置页面录入的配置参数,也可以是定制终端按照预设规则随机生成的。自定义字符串可以是由安全系统较高的预设字符和/或汉字组合而成,如“#”,“@”,“*”等。替换方式可以是在数据采集脚本中添加宏定义语句等,宏定义语句包括被替换函数名和对应的自定义字符串,如#definesafehideinvoke(x)a#,从而将safehideinvoke(x)函数名替换为自定义字符串a#。对函数名进行替换后,攻击者通过反编译得到的函数名均为无实际意义的字符或汉字,难以根据函数名猜测函数功能,进而可以增加数据采集脚本的破解成本。

需要说明的是,数据采集脚本中具有明确的功能含义的函数名对应的字符长度普遍较长。本方案中,自定义字符串的长度小于对应函数名的长度,从而采用自定义字符串替换数据采集脚本中的函数名还可以对数据采集脚本起到代码压缩的作用,减少对定制终端资源的占用。

在一个实施例中,对编译后的数据采集脚本进行混淆加密的步骤,包括:查询数据采集脚本中函数调用语句;函数调用语句包括调用函数的函数名及被调用函数的函数名;根据被调用函数的函数名查询被调用函数的函数体,通过在被调用函数的函数体添加预设关键字,对调用函数和被调用函数之间的调用关系进行隐藏,以对数据采集脚本进行混淆加密。

为了提高数据采集工具包的安全性,定制终端对数据采集脚本中多个函数之间的调用关系进行隐藏。具体的,定制终端在更新后的数据采集脚本中查询是否存在函数调用语句。函数调用语句包括调用函数的函数名和被调用函数的函数名,如函数staticsum(){c=fun(a,b);}中,sum()为调用函数的函数名;fun(a,b)为被调用函数的函数名。定制终端通过在被调用函数对应函数体的返回类型项前添加预设关键字,对该调用函数和被调用函数之间的调用关系进行隐藏。

预设关键字可以是inline关键字(一种关键字)。通过在被调用函数对应函数体的返回类型项前添加inline关键字,可以将被调用函数指定为对应调用函数的内联函数。当执行调用函数时,内联函数可以直接插入调用函数,从而对被调用函数进行执行,区别于传统的采用直接调用的方式对被调用函数进行执行,从而可以对调用函数和被调用函数之间的调用关系进行隐藏。

本实施例中,对函数之间的调用关系进行隐藏后,攻击者通过反编译得到的多个孤立的函数,无从知晓多个函数之间的逻辑关系,从而难以确定每个函数对数据采集脚本的功能作用,进而可以增加数据采集脚本的破解成本。

在一个实施例中,如图3所示,提供了一种数据采集工具包定制装置,包括:页面展示模块302,参数配置模块304,脚本更新模块306和混淆加密模块308,其中:

页面展示模块302,用于获取多个数据采集脚本;数据采集脚本具有对应的多个数据采集项;通过数据采集配置页面显示数据采集项。

参数配置模块304,用于获取对数据采集项的选定操作,根据选定操作获取被选定的数据采集项以及与被选定的数据采集项对应的配置参数。

脚本更新模块306,用于根据被选定的数据采集项,从数据采集工具包中提取对应的数据采集脚本,利用配置参数对提取到的数据采集脚本进行更新,对更新后的数据采集脚本进行编译。

混淆加密模块308,用于对编译后的数据采集脚本进行混淆加密,对加密后的数据采集脚本进行封装以得到定制的数据采集工具包。

在一个实施例中,混淆加密模块308还用于获取数据采集脚本中的敏感字段,计算敏感字段对应的二进制数值;按照预设规则将数据采集脚本中的类名或函数名进行拼接,得到敏感字段对应的盐值,计算盐值对应的二进制数值;对敏感字段对应的二进制数值和盐值对应的二进制数值进行预设逻辑运算,得到混淆字符串;通过将混淆字符串对相应敏感字段进行替换,对数据采集脚本进行混淆加密。

上述的数据采集工具包定制装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的终端上运行。

在一个实施例中,提供了一种终端的内部框图,如图4所示,该终端包括通过系统总线连接的处理器、内存储器、非易失性存储介质、网络接口、显示屏和输入装置。其中,该处理器用于提供计算和控制能力,支撑整个终端的运行。该定制终端的非易失性存储介质存储有操作系统和计算机程序,该计算机程序可被处理器所执行以实现以下各实施例所提供的一种数据采集工具包定制方法。终端中的内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。网络接口用于连接到网络进行通信。显示屏用于显示各种界面,比如,可显示数据采集配置页面。输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等,用于供输入配置参数和各种指令。处理器执行计算机程序时可以执行以下步骤:获取多个数据采集脚本;数据采集脚本具有对应的多个数据采集项;通过数据采集配置页面显示数据采集项;获取对数据采集项的选定操作,根据选定操作获取被选定的数据采集项以及与被选定的数据采集项对应的配置参数;根据被选定的数据采集项提取对应的数据采集脚本,利用配置参数对提取到的数据采集脚本进行更新,对更新后的数据采集脚本进行编译;对编译后的数据采集脚本进行混淆加密,对加密后的数据采集脚本进行封装以得到定制的数据采集工具包。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,配置参数包括自定义功能函数或定制数组,定制数组包括多个预设标识;处理器执行计算机程序时还执行以下步骤:利用自定义功能函数对提取到的数据采集脚本进行填充;或定制数组中的预设标识进行循环遍历,将定制数组中的预设标识插入数据采集脚本中的类名,得到多个更新后的数据采集脚本。

在一个实施例中,处理器执行计算机程序时还执行以下步骤:获取数据采集脚本中的敏感字段,计算敏感字段对应的二进制数值;按照预设规则将数据采集脚本中的类名或函数名进行拼接,得到敏感字段对应的盐值,计算盐值对应的二进制数值;对敏感字段对应的二进制数值和盐值对应的二进制数值进行预设逻辑运算,得到混淆字符串;通过将混淆字符串对相应敏感字段进行替换,对数据采集脚本进行混淆加密。

在一个实施例中,处理器执行计算机程序时还执行以下步骤:通过函数指针将数据采集脚本中的代码封装至预设主函数,预设主函数包括多条输入输出类型转换语句;利用输入输出类型转换语句将数据采集脚本的输入类型转换为第一固定类型,输出类型转换为第二固定类型,以对数据采集脚本进行混淆加密。

在一个实施例中,处理器执行计算机程序时还执行以下步骤:获取数据采集脚本中的多个具有功能含义的函数名;获取函数名对应的自定义字符串;通过将自定义字符串对相应的函数名进行替换,对函数名的功能含义进行隐藏,以对数据采集脚本进行混淆加密。

在一个实施例中,处理器执行计算机程序时还执行以下步骤:查询数据采集脚本中函数调用语句;函数调用语句包括调用函数的函数名及被调用函数的函数名;根据被调用函数的函数名查询被调用函数的函数体,通过在被调用函数的函数体添加预设关键字,对调用函数和被调用函数之间的调用关系进行隐藏,以对数据采集脚本进行混淆加密。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现计算机程序以下步骤:获取多个数据采集脚本;数据采集脚本具有对应的多个数据采集项;通过数据采集配置页面显示数据采集项;获取对数据采集项的选定操作,根据选定操作获取被选定的数据采集项以及与被选定的数据采集项对应的配置参数;根据被选定的数据采集项提取对应的数据采集脚本,利用配置参数对提取到的数据采集脚本进行更新,对更新后的数据采集脚本进行编译;对编译后的数据采集脚本进行混淆加密,对加密后的数据采集脚本进行封装以得到定制的数据采集工具包。

在一个实施例中,配置参数包括自定义功能函数或定制数组,定制数组包括多个预设标识;计算机程序被处理器执行时还执行以下步骤:利用自定义功能函数对提取到的数据采集脚本进行填充;或对定制数组中的预设标识进行循环遍历,将定制数组中的预设标识插入数据采集脚本中的类名,得到多个更新后的数据采集脚本。

在一个实施例中,计算机程序被处理器执行时还执行以下步骤:获取数据采集脚本中的敏感字段,计算敏感字段对应的二进制数值;按照预设规则将数据采集脚本中的类名或函数名进行拼接,得到敏感字段对应的盐值,计算盐值对应的二进制数值;对敏感字段对应的二进制数值和盐值对应的二进制数值进行预设逻辑运算,得到混淆字符串;通过将混淆字符串对相应敏感字段进行替换,对数据采集脚本进行混淆加密。

在一个实施例中,计算机程序被处理器执行时还执行以下步骤:通过函数指针将数据采集脚本中的代码封装至预设主函数,预设主函数包括多条输入输出类型转换语句;利用输入输出类型转换语句将数据采集脚本的输入类型转换为第一固定类型,输出类型转换为第二固定类型,以对数据采集脚本进行混淆加密。

在一个实施例中,计算机程序被处理器执行时还执行以下步骤:获取数据采集脚本中的多个具有功能含义的函数名;获取函数名对应的自定义字符串;通过将自定义字符串对相应的函数名进行替换,对函数名的功能含义进行隐藏,以对数据采集脚本进行混淆加密。

在一个实施例中,计算机程序被处理器执行时还执行以下步骤:查询数据采集脚本中函数调用语句;函数调用语句包括调用函数的函数名及被调用函数的函数名;根据被调用函数的函数名查询被调用函数的函数体,通过在被调用函数的函数体添加预设关键字,对调用函数和被调用函数之间的调用关系进行隐藏,以对数据采集脚本进行混淆加密。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,前述计算机可读取存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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