掌桥专利:专业的专利平台
掌桥专利
首页

应用程序处理方法、设备、存储介质及装置

文献发布时间:2024-01-17 01:15:20


应用程序处理方法、设备、存储介质及装置

技术领域

本发明涉及互联网技术领域,尤其涉及一种应用程序处理方法、设备、存储介质及装置。

背景技术

目前,某些自动化测试框架对应用程序进行自动化测试时,会对应用程序进行重新签名,并将重新签名后的签名信息作为应用程序的当前签名信息。

但是,由于某些应用程序内部存在签名检测的机制,会检测应用程序的当前签名信息与历史签名信息是否匹配,从而导致重新签名后的应用程序会出现无法使用的情况。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本发明的主要目的在于提供一种应用程序处理方法、设备、存储介质及装置,旨在解决现有技术中重新签名后的应用程序无法使用的技术问题。

为实现上述目的,本发明提供一种应用程序处理方法,所述应用程序处理方法包括以下步骤:

获取待处理应用程序,以及所述待处理应用程序对应的签名信息;

对所述待处理应用程序进行反编译,获得待修改脚本;

根据所述签名信息对所述待修改脚本进行修改,获得目标脚本;

通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

可选地,所述根据所述签名信息对所述待修改脚本进行修改,获得目标脚本的步骤,具体包括:

对所述签名信息进行信息提取,获得初始签名字符;

根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本。

可选地,所述根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本的步骤,具体包括:

获取所述待修改脚本的脚本信息,并根据所述脚本信息确定检测模板字符以及待修改签名字符;

根据所述初始签名字符对所述待修改签名字符进行修改,获得目标签名字符;

基于所述检测模板字符以及所述目标签名字符生成目标脚本。

可选地,所述基于所述检测模板字符以及所述目标签名字符生成目标脚本的步骤,具体包括:

对所述脚本信息进行信息分析,获得待修改脚本的字符排列模板;

基于所述字符排列模板对所述检测模板字符以及所述目标签名字符进行聚合,获得目标脚本。

可选地,所述对所述待处理应用程序进行反编译,获得待修改脚本的步骤,具体包括:

获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用;

通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符;

获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本。

可选地,所述获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本的步骤,具体包括:

获取所述初始字符的特征信息,并根据所述特征信息对所述初始字符进行分类,获得字符类别;

查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符;

查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本。

可选地,所述查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符的步骤,具体包括:

查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述字符类别进行排序,获得排序结果;

根据所述排序结果对所述字符类别进行筛选,获得目标字符类别;

根据所述目标字符类别对所述初始字符进行筛选,获得待处理字符。

可选地,所述查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本的步骤,具体包括:

查找所述待处理应用程序对应的签名检测字符,并将所述签名检测字符与所述待处理字符进行匹配,获得字符匹配结果;

根据所述字符匹配结果对所述待处理字符进行筛选,获得目标字符,并根据所述目标字符确定待修改脚本。

可选地,所述获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用的步骤,具体包括:

获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定应用程序种类;

在预设映射关系表中查找所述应用程序种类对应的反编译应用,所述预设映射关系表中包含应用程序种类与反编译应用之间的对应关系。

可选地,所述在预设映射关系表中查找所述应用程序种类对应的反编译应用的步骤之前,所述应用程序处理方法还包括:

获取多个反编译应用样本,所述反编译应用样本为不同种类的反编译应用;

对所述反编译应用样本进行遍历,将遍历到的反编译应用样本作为待测试反编译应用样本;

通过所述待测试反编译应用样本对应用程序样本进行反编译,获得反编译结果,所述应用程序样本为不同种类的应用程序;

在对所述反编译应用样本遍历结束后,根据所述反编译结果建立预设映射关系表。

可选地,所述通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序的步骤,具体包括:

获取所述待处理应用程序的应用程序信息,根据所述应用程序信息确定目标封装模式;

根据所述目标封装模式通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

可选地,所述通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序的步骤之后,所述应用程序处理方法还包括:

查找所述目标应用程序对应的运行脚本,并根据所述运行脚本对所述目标应用程序进行运行测试,获得运行测试结果;

根据所述运行测试结果以及所述目标应用程序的应用程序信息生成签名信息修改结果。

此外,为实现上述目的,本发明还提出一种应用程序处理设备,所述应用程序处理设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序处理程序,所述应用程序处理程序配置为实现如上文所述的应用程序处理方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有应用程序处理程序,所述应用程序处理程序被处理器执行时实现如上文所述的应用程序处理方法的步骤。

此外,为实现上述目的,本发明还提出一种应用程序处理装置,所述应用程序处理装置包括:获取模块、反编译模块、修改模块和封装模块;

所述获取模块,用于获取待处理应用程序,以及所述待处理应用程序对应的签名信息;

所述反编译模块,用于对所述待处理应用程序进行反编译,获得待修改脚本;

所述修改模块,用于根据所述签名信息对所述待修改脚本进行修改,获得目标脚本;

所述封装模块,用于通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

可选地,所述修改模块,还用于对所述签名信息进行信息提取,获得初始签名字符;

所述修改模块,还用于根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本。

可选地,所述修改模块,还用于获取所述待修改脚本的脚本信息,并根据所述脚本信息确定检测模板字符以及待修改签名字符;

所述修改模块,还用于根据所述初始签名字符对所述待修改签名字符进行修改,获得目标签名字符;

所述修改模块,还用于基于所述检测模板字符以及所述目标签名字符生成目标脚本。

可选地,所述修改模块,还用于对所述脚本信息进行信息分析,获得待修改脚本的字符排列模板;

所述修改模块,还用于基于所述字符排列模板对所述检测模板字符以及所述目标签名字符进行聚合,获得目标脚本。

可选地,所述反编译模块,还用于获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用;

所述反编译模块,还用于通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符;

所述反编译模块,还用于获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本。

可选地,所述反编译模块,还用于获取所述初始字符的特征信息,并根据所述特征信息对所述初始字符进行分类,获得字符类别;

所述反编译模块,还用于查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符;

所述反编译模块,还用于查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本。

本发明中,获取待处理应用程序,以及所述待处理应用程序对应的签名信息,对所述待处理应用程序进行反编译,获得待修改脚本。根据所述签名信息对所述待修改脚本进行修改,获得目标脚本,通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序;相较于现有的直接将自动化测试后形成的签名信息作为应用程序的签名信息的方式,本发明中,通过对待处理应用程序进行反编译,获得待修改脚本,根据待处理应用程序对应的签名信息对待修改脚本进行修改,获得目标脚本,并通过目标脚本对待处理应用程序进行封装,获得目标应用程序,克服了现有技术中重新签名后的应用程序无法使用的缺陷,从而能够使应用程序的签名信息始终保持一致,提高应用程序的可靠性。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的应用程序处理设备的结构示意图;

图2为本发明应用程序处理方法第一实施例的流程示意图;

图3为本发明应用程序处理方法第二实施例的流程示意图;

图4为本发明应用程序处理方法第三实施例的流程示意图;

图5为本发明应用程序处理装置第一实施例的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的应用程序处理设备结构示意图。

如图1所示,该应用程序处理设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对应用程序处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,认定为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及应用程序处理程序。

在图1所示的应用程序处理设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述应用程序处理设备通过处理器1001调用存储器1005中存储的应用程序处理程序,并执行本发明实施例提供的应用程序处理方法。

基于上述硬件结构,提出本发明应用程序处理方法的实施例。

参照图2,图2为本发明应用程序处理方法第一实施例的流程示意图,提出本发明应用程序处理方法第一实施例。

在第一实施例中,所述应用程序处理方法包括以下步骤:

步骤S10:获取待处理应用程序,以及所述待处理应用程序对应的签名信息。

应当理解的是,本实施例的执行主体是所述应用程序处理设备,其中,所述应用程序处理设备可为个人电脑或服务器等电子设备,还可为其他可实现相同或相似功能的设备,本实施例对此不加以限制,在本实施例中,以应用程序处理设备为例说明。

需要说明的是,待处理应用程序可以是用户通过应用处理设备的用户交互界面输入的应用程序;也可以是用户通过预先与应用处理设备建立通过连接的终端设备上传的应用程序,本实施例对此不加以限制。

可以理解的是,获取待处理应用程序对应的签名信息可以是通过预设签名查看脚本直接读取待处理应用程序对应的签名信息,其中,预设签名信息查看脚本可以是用户预先设置的签名查看脚本;也可以是在预设签名表中查找待处理应用程序对应的签名信息,其中,预设签名表中包含待处理应用程序与签名信息的对应关系,待处理应用程序与签名信息的对应关系可以由用户根据实际情况预先设置,本实施例对此不加以限制。

步骤S20:对所述待处理应用程序进行反编译,获得待修改脚本。

应当理解的是,对待处理应用程序进行反编译,获得待修改脚本可以是通过预设反编译应用对待处理应用程序进行反编译,获得待修改脚本,其中,预设反编译应用可以是用户预先设置的应用,例如,jeb,本实施例对此不加以限制。

进一步地,考虑到实际应用中,若所有待处理应用程序都以同一预设反编译应用进行反编译,势必会导致反编译结果不准确。为克服这一缺陷,所述对所述待处理应用程序进行反编译,获得待修改脚本,包括:

获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用,通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符,获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本。

步骤S30:根据所述签名信息对所述待修改脚本进行修改,获得目标脚本。

可以理解的是,根据签名信息对待修改脚本进行修改,获得目标脚本可以是直接根据签名信息对待修改脚本进行修改,获得目标脚本。

进一步地,为了提高目标脚本的可靠性,所述根据所述签名信息对所述待修改脚本进行修改,获得目标脚本,包括:

对所述签名信息进行信息提取,获得初始签名字符,根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本。

在具体实现中,例如,根据初始签名字符对待修改脚本进行修改,获得目标脚本可以是根据初始签名字符为“A”对待修改脚本为Signature[]signatureArr=“B”进行修改,获得目标脚本=Signature[]signatureArr=“A”。

步骤S40:通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

应当理解的是,通过目标脚本对待处理应用程序进行封装,获得目标应用程序可以是获取所述待处理应用程序的应用程序信息,根据所述应用程序信息确定目标封装模式,根据所述目标封装模式通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

在具体实现中,例如,APK格式应用程序的封装方式与ipa格式应用程序的封装方式完全不同,因此,需要先确定待处理应用程序对应的目标封装模式。

在第一实施例中,获取待处理应用程序,以及所述待处理应用程序对应的签名信息,对所述待处理应用程序进行反编译,获得待修改脚本。根据所述签名信息对所述待修改脚本进行修改,获得目标脚本,通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序;相较于现有的直接将自动化测试后形成的签名信息作为应用程序的签名信息的方式,本实施例中,通过对待处理应用程序进行反编译,获得待修改脚本,根据待处理应用程序对应的签名信息对待修改脚本进行修改,获得目标脚本,并通过目标脚本对待处理应用程序进行封装,获得目标应用程序,克服了现有技术中重新签名后的应用程序无法使用的缺陷,从而能够使应用程序的签名信息始终保持一致,提高应用程序的可靠性。

参照图3,图3为本发明应用程序处理方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明应用程序处理方法的第二实施例。

在第二实施例中,所述步骤S20,包括:

步骤S201:获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用。

需要说明的是,应用程序信息可以是应用程序的版本信息、运行环境信息等,本实施例对此不加以限制。

可以理解的是,根据应用程序信息确定反编译应用可以是直接查找应用程序信息对应的反编译应用。

进一步地,为了保证反编译应用具有较高的可靠性,所述获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用,包括:

获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定应用程序种类,在预设映射关系表中查找所述应用程序种类对应的反编译应用,所述预设映射关系表中包含应用程序种类与反编译应用之间的对应关系。

步骤S202:通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符。

需要说明的是,初始字符可以是待处理应用程序对应的代码字符,本实施例对此不加以限制。

步骤S203:获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本。

需要说明的是,特征信息可以是字符大小、字符形状等信息,本实施例对此不加以限制。

应当理解的是,获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本可以是获取所述初始字符的特征信息,并根据所述特征信息对所述初始字符进行分类,获得字符类别,查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符,查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本。

在第二实施例中,通过获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用,通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符,获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本,从而能够选取待处理应用程序对应的反编译应用,提高反编译准确性。

在第二实施例中,所述步骤S30,包括:

步骤S301:对所述签名信息进行信息提取,获得初始签名字符。

需要说明的是,初始签名字符可以是待处理应用程序的签名信息未发生变化前的字符。

步骤S302:根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本。

应当理解的是,根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本可以是获取所述待修改脚本的脚本信息,并根据所述脚本信息确定检测模板字符以及待修改签名字符,根据所述初始签名字符对所述待修改签名字符进行修改,获得目标签名字符,基于所述检测模板字符以及所述目标签名字符生成目标脚本。

在具体实现中,例如,根据初始签名字符对待修改脚本进行修改,获得目标脚本可以是根据初始签名字符为“A”对待修改脚本为Signature[]signatureArr=“B”进行修改,获得目标脚本=Signature[]signatureArr=“A”。

在第二实施例中,通过对所述签名信息进行信息提取,获得初始签名字符,根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本,从而能够依据初始签名字符对待修改脚本进行修改,提高目标脚本的可靠性。

在第二实施例中,所述步骤S40,包括:

步骤S401:获取所述待处理应用程序的应用程序信息,根据所述应用程序信息确定目标封装模式。

应当理解的是,根据应用程序信息确定目标封装模式可以是在预设封装表中查找应用程序信息对应的目标封装模式,其中,预设封装表中包含应用程序信息与目标封装模式之间的对应关系,应用程序信息与目标封装模式之间的对应关系可以由用户根据实际需求进行设置。

步骤S402:根据所述目标封装模式通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

在具体实现中,例如,APK格式应用程序的封装方式与ipa格式应用程序的封装方式完全不同,因此,需要先确定待处理应用程序对应的目标封装模式。

在第二实施例中,通过获取所述待处理应用程序的应用程序信息,根据所述应用程序信息确定目标封装模式,根据所述目标封装模式通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序,从而能够提高应用程序封装的可靠性。

在第二实施例中,所述步骤S40之后,还包括:

步骤S50:查找所述目标应用程序对应的运行脚本,并根据所述运行脚本对所述目标应用程序进行运行测试,获得运行测试结果。

应当理解的是,查找目标应用程序对应的运行脚本可以是在预设运行脚本表中查找目标应用程序对应的运行脚本,其中,预设运行脚本表中包含目标应用程序与运行脚本之间的对应关系,目标应用程序与运行脚本之间的对应关系可以由用户根据实际情况进行设置,本实施例对此不加以限制。

步骤S60:根据所述运行测试结果以及所述目标应用程序的应用程序信息生成签名信息修改结果。

可以理解的是,在签名信息修改结果为修改失败时,可以生成提醒信息,其中,提醒信息可以是用户预先设置的文字、语音等提醒信息,本实施例对此不加以限制。

在第二实施例中,通过查找所述目标应用程序对应的运行脚本,并根据所述运行脚本对所述目标应用程序进行运行测试,获得运行测试结果,根据所述运行测试结果以及所述目标应用程序的应用程序信息生成签名信息修改结果,从而能够自动生成签名信息修改结果,以提醒用户签名信息是否修改成功。

参照图4,图4为本发明应用程序处理方法第三实施例的流程示意图,基于上述图3所示的第二实施例,提出本发明应用程序处理方法的第三实施例。

在第三实施例中,所述步骤S201,包括:

步骤S2011:获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定应用程序种类。

需要说明的是,应用程序信息可以是应用程序的版本信息、运行环境信息等;应用程序种类可以是安卓应用程序种类、IOS应用程序种类等,本实施例对此不加以限制。

应当理解的是,根据应用程序信息确定应用程序种类可以是对应用程序信息进行信息提取,获得应用运行环境信息,并根据应用运行环境信息确定应用程序种类。例如,应用运行环境信息为安卓运行环境,那么,应用程序种类为安卓应用程序种类,也就是APK格式应用程序。

步骤S2012:在预设映射关系表中查找所述应用程序种类对应的反编译应用,所述预设映射关系表中包含应用程序种类与反编译应用之间的对应关系。

需要说明的是,应用程序种类与反编译应用之间的对应关系可以由用户根据实际使用情况预先设置。

进一步地,考虑到实际应用中,若直接由用户去设置预设映射关系表,势必会导致反编译应用可靠性差。为克服这一缺陷,所述步骤S2012之前,还包括:

获取多个反编译应用样本,所述反编译应用样本为不同种类的反编译应用;

对所述反编译应用样本进行遍历,将遍历到的反编译应用样本作为待测试反编译应用样本;

通过所述待测试反编译应用样本对应用程序样本进行反编译,获得反编译结果,所述应用程序样本为不同种类的应用程序;

在对所述反编译应用样本遍历结束后,根据所述反编译结果建立预设映射关系表。

需要说明的是,反编译应用样本可以是用户预先设置反编译应用样本,例如,jeb和ida等,本实施例对此不加以限制。

应当理解的是,在对反编译应用样本遍历结束后,根据反编译结果建立预设映射关系表可以是在对反编译应用样本遍历结束后,将反编译结果为反编译成功的应用程序样本作为待测试反编译应用样本对应的应用程序样本,并根据待测试反编译应用样本与应用程序样本之间的对应关系建立预设映射关系表。

在第三实施例中,通过获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定应用程序种类,在预设映射关系表中查找所述应用程序种类对应的反编译应用,所述预设映射关系表中包含应用程序种类与反编译应用之间的对应关系,从而能够自动选取合适的反编译应用。

在第三实施例中,所述步骤S203,包括:

步骤S2031:获取所述初始字符的特征信息,并根据所述特征信息对所述初始字符进行分类,获得字符类别。

需要说明的是,特征信息可以是字符大小、字符形状等信息;字符类别可以是字母类别、数字类别以及特殊字符类别等,本实施例对此不加以限制。

步骤S2032:查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符。

应当理解的是,查找字符类别对应的类别权重值可以是在预设权重表中查找字符类别对应的类别权重值,预设权重表中包含字符类别与类别权重值之间的对应关系,字符类别与类别权重值之间的对应关系可以由用户根据实际需求预先设置,本实施例对此不加以限制。

可以理解的是,根据类别权重值对初始字符进行筛选,获得待处理字符可以是判断类别权重值是否大于预设阈值,在类别权重值大于预设阈值时,将初始字符作为待处理字符。

进一步地,考虑到实际情况中,仅根据类别权重值与预设阈值的比较结果确定待处理字符,将会使得某些关键字符被删除。为克服这一缺陷,所述步骤S2032,包括:

查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述字符类别进行排序,获得排序结果;

根据所述排序结果对所述字符类别进行筛选,获得目标字符类别;

根据所述目标字符类别对所述初始字符进行筛选,获得待处理字符。

应当理解的是,根据类别权重值对字符类别进行排序,获得排序结果可以是根据类别权重值从大到小对字符类别进行排序,获得排序结果。

可以理解的是,根据排序结果对字符类别进行筛选,获得目标字符类别可以是排名顺序处于预设名次的字符类别作为目标字符类别,其中,预设名次可以是用户预先设置的数值,本实施例对此不加以限制。

应当理解的是,根据目标字符类别对初始字符进行筛选,获得待处理字符可以是将目标字符类别对应的初始字符作为待处理字符。

步骤S2033:查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本。

可以理解的是,查找待处理应用程序对应的签名检测字符可以是在预设字符表中查找待处理应用程序对应的签名检测字符,其中,预设字符表中包含待处理应用程序与签名检测字符之间的对应关系,待处理应用程序与签名检测字符之间的对应关系可以由用户根据实际情况预先设置,本实施例对此不加以限制。

在具体实现中,例如,签名检测字符可以是Signature[]signatureArr=,本实施例对此不加以限制。

进一步地,为保证待修改脚本具有较高的可靠性,所述步骤S2033,包括:

查找所述待处理应用程序对应的签名检测字符,并将所述签名检测字符与所述待处理字符进行匹配,获得字符匹配结果;

根据所述字符匹配结果对所述待处理字符进行筛选,获得目标字符,并根据所述目标字符确定待修改脚本。

应当理解的是,将签名检测字符与待处理字符进行匹配,获得字符匹配结果可以是将签名检测字符与待处理字符进行逐字匹配,获得字符匹配结果。

可以理解的是,根据字符匹配结果对待处理字符进行筛选,获得目标字符,并根据目标字符确定待修改脚本可以是将字符匹配结果为匹配成功的待处理字符作为目标字符,并将目标字符作为待修改脚本。

在第三实施例中,通过获取所述初始字符的特征信息,并根据所述特征信息对所述初始字符进行分类,获得字符类别,查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符,查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本,从而能够快速、准确地确定待修改脚本。

在第三实施例中,所述步骤S302,包括:

步骤S3021:获取所述待修改脚本的脚本信息,并根据所述脚本信息确定检测模板字符以及待修改签名字符。

在具体实现中,例如,待修改脚本为Signature[]signatureArr=“B”,其中,检测模板字符为Signature[]signatureArr=,待修改签名字符为“B”。

步骤S3022:根据所述初始签名字符对所述待修改签名字符进行修改,获得目标签名字符。

应当理解的是,根据初始签名字符对待修改签名字符进行修改,获得目标签名字符可以是将初始签名字符替换待修改签名字符,获得目标签名字符。

在具体实现中,例如,初始签名字符为“A”,待修改签名字符为“B”,根据初始签名字符对待修改签名字符进行修改可以是使用初始签名字符“A”替换待修改签名字符“B”,获得目标签名字符“A”。

步骤S3023:基于所述检测模板字符以及所述目标签名字符生成目标脚本。

应当理解的是,基于检测模板字符以及目标签名字符生成目标脚本可以是基于预设字符排列模板对检测模板字符以及目标签名字符进行聚合,获得目标脚本,其中,预设字符排列模板可以是用户预先设置字符排列模板。

进一步地,为了提高目标脚本的准确性以及可靠性,所述步骤S3023,包括:

对所述脚本信息进行信息分析,获得待修改脚本的字符排列模板;

基于所述字符排列模板对所述检测模板字符以及所述目标签名字符进行聚合,获得目标脚本。

应当理解的是,对脚本信息进行信息分析,获得待修改脚本的字符排列模板可以是对脚本信息进行信息提取,获得待修改脚本的字符排列模板。

在具体实现中,例如,待修改脚本的字符排列模板为先检测模板字符,再签名字符,那么,根据检测模板字符为Signature[]signatureArr=,目标签名字符“A”生成的目标脚本可以是Signature[]signatureArr=“A”。

在第三实施例中,通过获取所述待修改脚本的脚本信息,并根据所述脚本信息确定检测模板字符以及待修改签名字符,根据所述初始签名字符对所述待修改签名字符进行修改,获得目标签名字符,基于所述检测模板字符以及所述目标签名字符生成目标脚本,从而能够通过修改签名字符,实现脚本的修改。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有应用程序处理程序,所述应用程序处理程序被处理器执行时实现如上文所述的应用程序处理方法的步骤。

此外,参照图5,本发明实施例还提出一种应用程序处理装置,所述应用程序处理装置包括:获取模块10、反编译模块20、修改模块30和封装模块40;

所述获取模块10,用于获取待处理应用程序,以及所述待处理应用程序对应的签名信息。

需要说明的是,待处理应用程序可以是用户通过应用处理设备的用户交互界面输入的应用程序;也可以是用户通过预先与应用处理设备建立通过连接的终端设备上传的应用程序,本实施例对此不加以限制。

可以理解的是,获取待处理应用程序对应的签名信息可以是通过预设签名查看脚本直接读取待处理应用程序对应的签名信息,其中,预设签名信息查看脚本可以是用户预先设置的签名查看脚本;也可以是在预设签名表中查找待处理应用程序对应的签名信息,其中,预设签名表中包含待处理应用程序与签名信息的对应关系,待处理应用程序与签名信息的对应关系可以由用户根据实际情况预先设置,本实施例对此不加以限制。

所述反编译模块20,用于对所述待处理应用程序进行反编译,获得待修改脚本。

应当理解的是,对待处理应用程序进行反编译,获得待修改脚本可以是通过预设反编译应用对待处理应用程序进行反编译,获得待修改脚本,其中,预设反编译应用可以是用户预先设置的应用,例如,jeb,本实施例对此不加以限制。

进一步地,考虑到实际应用中,若所有待处理应用程序都以同一预设反编译应用进行反编译,势必会导致反编译结果不准确。为克服这一缺陷,所述对所述待处理应用程序进行反编译,获得待修改脚本,包括:

获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用,通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符,获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本。

所述修改模块30,用于根据所述签名信息对所述待修改脚本进行修改,获得目标脚本。

可以理解的是,根据签名信息对待修改脚本进行修改,获得目标脚本可以是直接根据签名信息对待修改脚本进行修改,获得目标脚本。

进一步地,为了提高目标脚本的可靠性,所述根据所述签名信息对所述待修改脚本进行修改,获得目标脚本,包括:

对所述签名信息进行信息提取,获得初始签名字符,根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本。

在具体实现中,例如,根据初始签名字符对待修改脚本进行修改,获得目标脚本可以是根据初始签名字符为“A”对待修改脚本为Signature[]signatureArr=“B”进行修改,获得目标脚本=Signature[]signatureArr=“A”。

所述封装模块40,用于通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

应当理解的是,通过目标脚本对待处理应用程序进行封装,获得目标应用程序可以是获取所述待处理应用程序的应用程序信息,根据所述应用程序信息确定目标封装模式,根据所述目标封装模式通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

在具体实现中,例如,APK格式应用程序的封装方式与ipa格式应用程序的封装方式完全不同,因此,需要先确定待处理应用程序对应的目标封装模式。

在本实施例中,获取待处理应用程序,以及所述待处理应用程序对应的签名信息,对所述待处理应用程序进行反编译,获得待修改脚本。根据所述签名信息对所述待修改脚本进行修改,获得目标脚本,通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序;相较于现有的直接将自动化测试后形成的签名信息作为应用程序的签名信息的方式,本实施例中,通过对待处理应用程序进行反编译,获得待修改脚本,根据待处理应用程序对应的签名信息对待修改脚本进行修改,获得目标脚本,并通过目标脚本对待处理应用程序进行封装,获得目标应用程序,克服了现有技术中重新签名后的应用程序无法使用的缺陷,从而能够使应用程序的签名信息始终保持一致,提高应用程序的可靠性。

本发明所述应用程序处理装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

本发明公开了A1、一种应用程序处理方法,所述应用程序处理方法包括以下步骤:

获取待处理应用程序,以及所述待处理应用程序对应的签名信息;

对所述待处理应用程序进行反编译,获得待修改脚本;

根据所述签名信息对所述待修改脚本进行修改,获得目标脚本;

通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

A2、如A1所述的应用程序处理方法,所述根据所述签名信息对所述待修改脚本进行修改,获得目标脚本的步骤,具体包括:

对所述签名信息进行信息提取,获得初始签名字符;

根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本。

A3、如A2所述的应用程序处理方法,所述根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本的步骤,具体包括:

获取所述待修改脚本的脚本信息,并根据所述脚本信息确定检测模板字符以及待修改签名字符;

根据所述初始签名字符对所述待修改签名字符进行修改,获得目标签名字符;

基于所述检测模板字符以及所述目标签名字符生成目标脚本。

A4、如A3所述的应用程序处理方法,所述基于所述检测模板字符以及所述目标签名字符生成目标脚本的步骤,具体包括:

对所述脚本信息进行信息分析,获得待修改脚本的字符排列模板;

基于所述字符排列模板对所述检测模板字符以及所述目标签名字符进行聚合,获得目标脚本。

A5、如A1所述的应用程序处理方法,所述对所述待处理应用程序进行反编译,获得待修改脚本的步骤,具体包括:

获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用;

通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符;

获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本。

A6、如A5所述的应用程序处理方法,所述获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本的步骤,具体包括:

获取所述初始字符的特征信息,并根据所述特征信息对所述初始字符进行分类,获得字符类别;

查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符;

查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本。

A7、如A6所述的应用程序处理方法,所述查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符的步骤,具体包括:

查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述字符类别进行排序,获得排序结果;

根据所述排序结果对所述字符类别进行筛选,获得目标字符类别;

根据所述目标字符类别对所述初始字符进行筛选,获得待处理字符。

A8、如A6所述的应用程序处理方法,所述查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本的步骤,具体包括:

查找所述待处理应用程序对应的签名检测字符,并将所述签名检测字符与所述待处理字符进行匹配,获得字符匹配结果;

根据所述字符匹配结果对所述待处理字符进行筛选,获得目标字符,并根据所述目标字符确定待修改脚本。

A9、如A5所述的应用程序处理方法,所述获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用的步骤,具体包括:

获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定应用程序种类;

在预设映射关系表中查找所述应用程序种类对应的反编译应用,所述预设映射关系表中包含应用程序种类与反编译应用之间的对应关系。

A10、如A9所述的应用程序处理方法,所述在预设映射关系表中查找所述应用程序种类对应的反编译应用的步骤之前,所述应用程序处理方法还包括:

获取多个反编译应用样本,所述反编译应用样本为不同种类的反编译应用;

对所述反编译应用样本进行遍历,将遍历到的反编译应用样本作为待测试反编译应用样本;

通过所述待测试反编译应用样本对应用程序样本进行反编译,获得反编译结果,所述应用程序样本为不同种类的应用程序;

在对所述反编译应用样本遍历结束后,根据所述反编译结果建立预设映射关系表。

A11、如A1-A10中任一项所述的应用程序处理方法,所述通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序的步骤,具体包括:

获取所述待处理应用程序的应用程序信息,根据所述应用程序信息确定目标封装模式;

根据所述目标封装模式通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

A12、如A1-A10中任一项所述的应用程序处理方法,所述通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序的步骤之后,所述应用程序处理方法还包括:

查找所述目标应用程序对应的运行脚本,并根据所述运行脚本对所述目标应用程序进行运行测试,获得运行测试结果;

根据所述运行测试结果以及所述目标应用程序的应用程序信息生成签名信息修改结果。

本发明还公开了B13、一种应用程序处理设备,所述应用程序处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序处理程序,所述应用程序处理程序被所述处理器执行时实现如上文所述的应用程序处理方法的步骤。

本发明还公开了C14、一种存储介质,所述存储介质上存储有应用程序处理程序,所述应用程序处理程序被处理器执行时实现如上文所述的应用程序处理方法的步骤。

本发明还公开了D15、一种应用程序处理装置,所述应用程序处理装置包括:获取模块、反编译模块、修改模块和封装模块;

所述获取模块,用于获取待处理应用程序,以及所述待处理应用程序对应的签名信息;

所述反编译模块,用于对所述待处理应用程序进行反编译,获得待修改脚本;

所述修改模块,用于根据所述签名信息对所述待修改脚本进行修改,获得目标脚本;

所述封装模块,用于通过所述目标脚本对所述待处理应用程序进行封装,获得目标应用程序。

D16、如D15所述的应用程序处理装置,所述修改模块,还用于对所述签名信息进行信息提取,获得初始签名字符;

所述修改模块,还用于根据所述初始签名字符对所述待修改脚本进行修改,获得目标脚本。

D17、如D16所述的应用程序处理装置,所述修改模块,还用于获取所述待修改脚本的脚本信息,并根据所述脚本信息确定检测模板字符以及待修改签名字符;

所述修改模块,还用于根据所述初始签名字符对所述待修改签名字符进行修改,获得目标签名字符;

所述修改模块,还用于基于所述检测模板字符以及所述目标签名字符生成目标脚本。

D18、如D17所述的应用程序处理装置,所述修改模块,还用于对所述脚本信息进行信息分析,获得待修改脚本的字符排列模板;

所述修改模块,还用于基于所述字符排列模板对所述检测模板字符以及所述目标签名字符进行聚合,获得目标脚本。

D19、如D15所述的应用程序处理装置,所述反编译模块,还用于获取所述待处理应用程序的应用程序信息,并根据所述应用程序信息确定反编译应用;

所述反编译模块,还用于通过所述反编译应用对所述待处理应用程序进行反编译,获得初始字符;

所述反编译模块,还用于获取所述初始字符的特征信息,并根据所述特征信息确定待修改脚本。

D20、如D19所述的应用程序处理装置,所述反编译模块,还用于获取所述初始字符的特征信息,并根据所述特征信息对所述初始字符进行分类,获得字符类别;

所述反编译模块,还用于查找所述字符类别对应的类别权重值,并根据所述类别权重值对所述初始字符进行筛选,获得待处理字符;

所述反编译模块,还用于查找所述待处理应用程序对应的签名检测字符,并根据所述签名检测字符以及所述待处理字符确定待修改脚本。

相关技术
  • 一种应用程序处理方法、装置、电子设备及可读存储介质
  • 应用程序异常处理方法、装置、电子设备及存储介质
  • 应用程序处理方法和装置、电子设备、计算机可读存储介质
  • 应用程序无响应的处理方法、装置、存储介质及智能终端
  • 应用程序异常的处理方法及装置、终端及存储介质
  • 应用程序异常处理方法、装置、电子设备及存储介质
  • 应用程序运行异常的处理方法、装置、设备及存储介质
技术分类

06120116086533