CN112799687B - 一种数据处理方法、装置、存储介质及计算机设备 - Google Patents

一种数据处理方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN112799687B
CN112799687B CN202110063444.XA CN202110063444A CN112799687B CN 112799687 B CN112799687 B CN 112799687B CN 202110063444 A CN202110063444 A CN 202110063444A CN 112799687 B CN112799687 B CN 112799687B
Authority
CN
China
Prior art keywords
file
dex file
target
original
original dex
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110063444.XA
Other languages
English (en)
Other versions
CN112799687A (zh
Inventor
梁海滨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110063444.XA priority Critical patent/CN112799687B/zh
Publication of CN112799687A publication Critical patent/CN112799687A/zh
Application granted granted Critical
Publication of CN112799687B publication Critical patent/CN112799687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Abstract

本申请实施例公开了一种数据处理方法、装置、存储介质及计算机设备,方法包括:获取待安装应用的安装包文件,从安装包文件中筛选出原始dex文件;对原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,目标代码用于将加密后的原始dex文件还原为原始dex文件并执行原始dex文件;将加密后的原始dex文件写入第一目标dex文件内,得到第二目标dex文件;将第二目标dex文件替换安装包文件中的原始dex文件,得到目标安装包文件;根据目标安装包文件对待安装应用进行安装,得到可执行应用。在安装时仅对文件大小较小的第一目标dex文件进行优化,从而减少了优化时间,进而减少安装时间。

Description

一种数据处理方法、装置、存储介质及计算机设备
技术领域
本申请涉及计算机领域,具体涉及一种数据处理方法、装置、存储介质及计算机设备。
背景技术
安卓操作系统(Android)由Google公司开发,是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑等。当在Android系统中安装应用程序时,可以通过将Android安装包(Android Package,APK)文件直接传送到Android模拟器或Android手机中执行即可实现安装。
现有技术中,在对安装包进行安装时,需要将APK中的dex文件进行验证和优化,当优化结束后,显示应用安装完成。其中,dex文件是可以直接在Dalvik虚拟机中加载运行的文件,Dalvik虚拟机可以支持已转换为dex(Dalvik Executable)格式的Java应用程序的运行,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
目前,在研究和实践过程中,本申请的发明人发现,因dex文件用来存放应用的所有代码,导致dex文件较大,优化时间较长,进而导致APK的安装时间较长。
发明内容
本申请实施例提供一种数据处理方法及装置,可以减少应用程序的安装时长。
本申请实施例提供一种数据处理方法,包括:
获取待安装应用的安装包文件,从所述安装包文件中筛选出原始dex文件;
对所述原始dex文件进行加密,得到加密后的原始dex文件;
基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,所述目标代码用于将所述加密后的原始dex文件还原为所述原始dex文件并执行所述原始dex文件,所述第一目标dex文件的文件大小小于所述原始dex文件的文件大小;
将所述加密后的原始dex文件写入所述第一目标dex文件内,得到第二目标dex文件;
将所述第二目标dex文件替换所述安装包文件中的原始dex文件,得到目标安装包文件;
根据所述目标安装包文件对所述待安装应用进行安装,得到可执行应用。
本申请实施例还提供一种数据处理装置,包括:
获取模块,用于获取待安装应用的安装包文件,从所述安装包文件中筛选出原始dex文件;
加密模块,用于对所述原始dex文件进行加密,得到加密后的原始dex文件;
构建模块,用于基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,所述目标代码用于将所述加密后的原始dex文件还原为所述原始dex文件并执行所述原始dex文件,所述第一目标dex文件的文件大小小于所述原始dex文件的文件大小;
写入模块,用于将所述加密后的原始dex文件写入所述第一目标dex文件内,得到第二目标dex文件;
添加模块,用于将所述第二目标dex文件替换所述安装包文件中的原始dex文件,得到目标安装包文件;
安装模块,用于根据所述目标安装包文件对所述待安装应用进行安装,得到可执行应用。
可选的,所述装置还包括:
解析模块,用于当检测到对所述可执行应用的执行指令时,对所述第二目标dex文件进行解析,以获取所述第二目标dex文件中的所述加密后的原始dex文件;
解密模块,用于对所述加密后的原始dex文件进行解密,得到所述原始dex文件;
读取模块,用于将所述原始dex文件读取进内存,以在所述内存中运行所述原始dex文件。
可选的,所述装置还包括:
判断模块,用于判断指令路径下是否存在指定类型文件;
若所述指令路径下不存在所述指定类型文件,则继续执行所述对所述第二目标dex文件进行解析的步骤;
转换模块,用于在所述将所述原始dex文件读取进内存,以在所述内存中运行所述原始dex文件的步骤之后控制子线程对所述原始dex文件进行转换处理,得到指定类型文件,并将所述指定类型文件存至所述指定路径下。
可选的,所述转换模块具体用于控制所述子线程按照预设加载方式加载所述原始dex文件,得到所述指定类型文件。
可选的,所述解密模块,包括:
获取单元,用于获取对所述原始dex文件进行加密时的密钥;
解密单元,用于根据所述密钥对所述加密后的原始dex文件进行解密,得到原始dex文件。
可选的,所述读取模块具体用于:调用内存映射函数将所述原始dex文件映射进内存,并将所述第二目标dex文件的入口指向所述原始dex文件。
可选的,所述装置还用于若所述指定路径下存在所述指定类型文件,则将所述指定类型文件读取进内存,以使内存运行所述指定类型文件。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述数据处理方法中的步骤。
本申请实施例还提供一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行上述数据处理方法中的步骤
本申请实施例提供的数据处理方法、装置、存储介质及计算机设备,通过获取待安装应用的安装包文件,从所述安装包文件中筛选出原始dex文件;对所述原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,所述目标代码用于将所述加密后的原始dex文件还原为所述原始dex文件并执行所述原始dex文件,所述第一目标dex文件的文件大小小于所述原始dex文件的文件大小;将所述加密后的原始dex文件写入所述第一目标dex文件内,得到第二目标dex文件;将所述第二目标dex文件替换所述安装包文件中的原始dex文件,得到目标安装包文件;根据所述目标安装包文件对所述待安装应用进行安装,得到可执行应用。本申请实施例通过将原始dex文件加密并写入第一目标dex文件内,由于加密后的原始dex文件无法被系统解析到,因此在安装时仅能找到第一目标dex文件,并因第一目标dex文件的文件大小小于所述原始dex文件的文件大小,可减少安装时长。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的数据处理方法的场景示意图。
图1b为本申请实施例提供的数据处理方法的流程示意图。
图2为本申请实施例提供的数据处理方法的另一流程示意图。
图3a为本申请实施例提供的数据处理装置的第一种结构示意图;
图3b为本申请实施例提供的数据处理装置的第二种结构示意图;
图4为本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一数据处理方法、装置及计算机可读存储介质。
请参阅图1a,图1a为本申请实施例所提供的数据处理系统的场景示意图,包括:服务器A以及终端A,终端A与服务器A之间可以通过通信网络连接,该通信网络,可以包括无线网络以及有线网络,其中无线网络包括无线广域网、无线局域网、无线城域网、以及无线个人网中的一种或多种的组合。网络中包括路由器、网关等等网络实体,图中并未示意出。终端A可以为手机、电脑或个人数字助理等客户端设备,其通过通信网络与服务器A进行信息交互,比如用户通过对终端A进行操作,以从服务器A中获取某应用的安装包文件,其中,服务器A可用于构建应用商店或应用下载网站,应用商店也可以称为应用市场,是指可安装在终端设备上的一种应用程序,该应用程序可以用于在终端设备上为用户展示、下载应用。应用下载网站是指可以用于下载应用的网站或网页等。用户可通过对终端A中应用商店或应用下载网站进行相应操作,从而使服务器A向终端A发送应用的安装包文件,从而进行安装。
该数据处理系统可以包括数据处理装置,该数据处理装置具体可以集成在前端服务器中,如图1a所示,该终端A在接收到服务器A发送的安装包文件后,获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;对该原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。基于此,通过将原始dex文件加密并写入第一目标dex文件内,由于加密后的原始dex文件无法被系统解析到,因此在安装时仅能找到第一目标dex文件,并因第一目标dex文件的文件大小小于该原始dex文件的文件大小,可减少安装目标安装包时的安装时长。
需要说明的是,图1a所示的数据处理系统的场景示意图仅仅是一个示例,本申请实施例描述的数据处理系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着数据处理系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本实施例中,将从数据处理装置的角度进行描述,该数据处理装置具体可以集成在具备储存单元并安装有微处理器而具有运算能力的服务器中。
请参阅图1b,图1b为本申请实施例提供的数据处理方法的流程示意图。该数据处理方法包括:
在步骤101中,获取待安装应用的安装包文件,从安装包文件中筛选出原始dex文件。
其中,以安卓操作系统为例,在安卓操作系统下的应用安装包文件均为应用程序包(Android application package,APK),APK实质上为压缩文件,其内部存放有lib文件夹、META-INF签名文件夹、res资源文件夹、应用清单(AndroidManifest.xml)、dex文件、resources.arsc文件。
具体的,lib文件夹里面存放的是so动态链接库。META-INF签名文件夹,里面存放三个文件,其中两个文件是对资源文件做的SHA1 hash处理,一个文件是签名和公钥证书。res资源文件夹,里面还会分animator,anim,color等几个文件夹。AndroidManifest.xml是每个android应用中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services等),他们各自的实现类,各种能被处理的数据和启动位置。dex文件为Android平台上的可执行文件,Android虚拟机Dalvik支持的字节码文件格式,这种虚拟机执行的并非Java字节码,而是另一种字节码:dex格式的字节码。在编译Java代码之后,通过Android平台上的工具可以将Java字节码转换成dex字节码。dex文件也是由java的class文件重新编排而来,也可以通过反编译工具把dex文件转换成class文件。resources.arsc文件记录了所有的应用程序资源目录的信息,包括每一个资源名称、类型、值、ID以及所配置的维度信息。
其中,由于dex文件的文件格式为.dex,因此可通过查找文件格式为.dex的方式从安装包文件中筛选出安装包文件内的原始dex文件。
在步骤102中,对原始dex文件进行加密,得到加密后的原始dex文件。
其中,对原始dex文件进行加密的方式可以为采用对称加密算法(AdvancedEncryption Standard,AES)进行加密,也即加密以及后续解密时采用的密钥均相同,与非对称加密算法的区别在于AES加密及解密的速度较快,以使后续在安装或启动过程中对加密dex文件进行解密的速度加快,从而减少安装或启动时的等待时长。对原始dex文件加密后,得到加密后的原始dex文件,其中,加密后的原始dex文件的数据结构为非二进制数据结构。
在步骤103中,基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小。
其中,构建第一目标dex文件时,可以根据Android系统下dex文件的通用构建规则和语法规范新建一个第一目标dex文件。具体的,该第一目标dex文件的内部代码逻辑为将加密后的原始dex文件还原为原始dex文件,并执行原始dex文件。由于第一目标dex文件的内部代码(目标代码)可仅存有上述两种逻辑,因此第一目标dex文件的文件大小小于原始dex文件的文件大小。
在步骤104中,将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件。
其中,将加密后的原始dex文件写入第一目标dex文件内的方式为:将加密后的原始dex文件写入第一目标dex文件的末端,从而得到第二目标dex文件。
具体的,由于加密后的原始dex文件为非二进制数据结构,因此按照二进制数据结构对第二目标dex文件进行解析时,仅能解析出不包含加密后的原始dex文件的部分,也即解析到的是第一目标dex文件中将加密后的原始dex文件还原为原始dex文件并执行原始dex文件的目标代码。因此按照第一目标dex文件的内部代码逻辑,第一目标dex文件含有可用于将加密后的原始dex文件还原为原始dex文件并执行原始dex文件的目标代码。目标代码也即第一目标dex文件的内部代码。
在步骤105中,将第二目标dex文件替换安装包文件中的原始dex文件,得到目标安装包文件。
其中,在步骤103中得到第二目标dex文件后,将应用安装包文件中的原始dex文件替换为第二目标dex文件,并重新打包成APK,以得到目标安装包文件。
在步骤106中,根据目标安装包文件对待安装应用进行安装,得到可执行应用。
其中,根据目标安装包文件进行安装的方式为:将目标安装包文件复制到data/app目录下,解压并扫描安装包,将第二目标dex文件保存至dalvik-cache目录下,并在data/data目录下创建对应的应用数据目录,从而得到可执行应用。
具体的,在整个安装过程中,会对第二目标dex文件中的代码进行优化,由于第二目标dex文件中存在第一目标dex文件以及加密后的原始dex文件两部分,而加密后的原始dex文件为非二进制数据结构,因此加密后的原始dex文件无法被提取到,仅对可提取到的不包括加密后的原始dex文件的第一目标dex文件进行优化。并因第一目标dex文件的文件大小小于原始dex文件的文件大小,因此对第一目标dex文件进行优化的速度更快,进而在安装目标安装包文件时的优化时长小于安装原始安装包文件时的优化时长,致使安装时长缩短。
在一些实施方式中,在该根据该目标安装包文件对该待安装应用进行安装,得到可执行应用的步骤之后,还包括:
(1)当检测到对该可执行应用的执行指令时,对该第二目标dex文件进行解析,以获取该第二目标dex文件中的该加密后的原始dex文件;
(2)对该加密后的原始dex文件进行解密,得到该原始dex文件;
(3)将该原始dex文件读取进内存,以在该内存中运行该原始dex文件。
其中,执行指令即为开启应用的指令,通常在移动终端上每一应用对应有一应用图标,用户可通过点击该应用图标的方式来执行该应用。当检测到执行指令时,需要执行dalvik-cache目录下的第二目标dex文件,而第二目标dex文件内可被解析的只有第一目标dex文件,因此执行第一目标dex文件的内部代码逻辑(目标代码):将加密后的原始dex文件还原为原始dex文件,并执行原始dex文件。解析过程中无法被解析出的部分即为加密后的原始dex文件,获取到第二目标dex文件中的加密后的原始dex文件。并对加密后的原始dex文件进行解密,从而得到原始dex文件。并将原始dex文件读取进内存,以在内存中运行原始dex文件的原始代码。
在一些实施方式中,在该对该第二目标dex文件进行解析,以获取该第二目标dex文件中的该加密后的原始dex文件的步骤之前,还包括:
(1.1)判断指令路径下是否存在指定类型文件;
(1.2)若该指令路径下不存在该指定类型文件,则执行该对该第二目标dex文件进行解析的步骤;
在该将该原始dex文件读取进内存,以在该内存中运行该原始dex文件的步骤之后,还包括:
(1.3)控制子线程对该原始dex文件进行转换处理,得到指定类型文件,并将该指定类型文件存至该指定路径下。
其中,在目标安装包文件安装完成后,在首次启动可执行应用时,会进行启动优化,也即将原始dex文件中的代码部分编译为本地可执行的ELF文件,因为dex文件解析最终也是通过虚拟机将dex转化成机器码形式运行,而读取ELF文件则可跳过dex虚拟机过程,直接通过机器码执行,从而效率更高,启动时长更短。因此,在对该第二目标dex文件进行解析之前,还需要判断本次启动是否为首次启动。
若已经对原始dex文件进行优化,则在指定的oat文件夹中会存在ELF文件,因此可通过判断oat文件夹中是否存在ELF文件确定本次启动是否为首次启动。若不存在ELF文件,则证明本次启动为首次启动,则需从需要执行dalvik-cache目录下的第二目标dex文件中找出原始dex文件。并在启动可执行应用后,启动子线程对原始dex文件进行编译转换,从而得到ELF文件。其中,对原始dex文件进行编译转换的逻辑也可写入第一目标dex文件中,也即第一目标dex文件的目标代码中存有对原始dex文件进行编译转换的代码部分。
在一些实施方式中,该方法还包括:
(1.1)若该指定路径下存在该指定类型文件,则将该指定类型文件读取进内存,以使内存运行该指定类型文件。
其中,若oat文件夹中存在ELF文件,则证明本次启动为非首次启动,则直接将ELF文件读取进内存,以使内存运行该ELF文件。
在一些实施方式中,该控制子线程对该原始dex文件进行转换处理,得到指定类型文件的步骤,包括:
(1.1)控制该子线程按照预设加载方式加载该原始dex文件,得到该指定类型文件。
其中,预设加载方式以为调用MakeDexElements函数加载原始dex文件,从而对原始dex文件进行OAT优化,以将原始dex文件进行编译转换为ELF文件,并将ELF文件存入oat文件夹中。MakeDexElements是一个系统方法,用来解析dex文件并将dex文件放到类加载器中。
在一些实施方式中,该对该加密后的原始dex文件进行解密,得到该原始dex文件的步骤,包括:
(1.1)获取对该原始dex文件进行加密时的密钥;
(1.2)根据该密钥对该加密后的原始dex文件进行解密,得到原始dex文件。
其中,为了执行原始dex文件的内部代码逻辑,需要对获取到的加密后的原始dex文件进行解密,而由于对原始dex文件进行加密时是由Android服务层处理的,因此可从Android服务层获取到该密钥,或者触发Android服务层发送该密钥,此处不做限定
具体的,在获取到Android服务层发送的密钥后,根据密钥对加密后的原始dex文件进行解密,从而得到原始dex文件。
在一些实施方式中,该将该原始dex文件读取进内存,以使内存运行该原始dex文件的步骤,包括:
(1.1)调用内存映射函数将该原始dex文件映射进内存,并将该第二目标dex文件的入口指向该原始dex文件。
其中,不同版本的Android系统将原始dex文件读取进内存的方式不同,以Android7.0-7.1版本为例,由于屏蔽了dl操作,采用钩子形式(hook)(hook是消息处理机制的平台,通过系统调用,把它挂入系统,应用程序可以在上面设置子程序以监视指定窗口的某种消息,当消息到达后,在目标窗口处理函数之前,hook捕获此消息,得到此消息的控制权,处理此消息),在动态库调用到read()函数,mmap()函数时,执行原始dex文件内存的地址替换,然后执行系统调用MakeDexElement方法,同时防止系统在主线程中进行OAT优化,避免由于主线程进行OAT优化导致应用执行异常、缓慢等情况的产生,通过hook方式阻断OAT优化过程中mmap函数,修改返回值,实现原始dex文件的加载。
以Android5.0-6.0版本为例,在该版本中核心的动态库为libart.so,我们通过dlopen获取libart.so中的openMemory方法,然后通过将提取出来的原始dex文件作为参数,传进该方法中,执行方法逻辑,生成DexFile文件,执行内存加载。因此,将该原始dex文件读取进内存,以使内存运行该原始dex文件的步骤,包括:
(1.1)获取预设方法,将原始dex文件传入该预设方法中,得到由预设方法生成的文件,控制内存加载该文件。
具体的,在Android4.4版本下,应用核心部分是通过libdvm.so启动的,所以通过查找libdvm中加载dex文件的方法,获取系统openDexFile方法,执行原始dex文件内存加载。因此,将该原始dex文件读取进内存,以使内存运行该原始dex文件的步骤,包括:
(1.1)查找虚拟机的加载方法,通过该加载方法执行原始dex文件的加载。
在Android8.0版本,在Java层直接提供了DexFile的内存打开方式,因此可直接使用提供的接口进行内存加载,通过使用Native层反射获取到makeInMemoryDexElements,将原始dex文件作为参数传进去,执行方法逻辑实现将原始dex文件加载至内存的方法。
其中,在将原始dex文件读取进内存后,应同时将第二目标dex文件的入口函数指向原始dex文件,也即将Application启动类和Classloader加载器指向原始dex文件,从而实现可执行应用的正常逻辑。
由上述可知,本申请实施例通过获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;对该原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。以此,通过将原始dex文件加密并写入第一目标dex文件内,由于加密后的原始dex文件无法被系统解析到,因此在安装时仅能找到第一目标dex文件,并因第一目标dex文件的文件大小小于该原始dex文件的文件大小,可减少安装时长。
结合上述实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图2,图2为本申请实施例提供的数据处理方法的另一流程示意图。该方法流程可以包括:
在步骤201中,计算机设备获取待安装应用的安装包文件,从安装包文件中筛选出原始dex文件。
例如,通过查找安装包文件内每一文件的文件后缀,也即格式是否为.dex从而将文件后缀为.dex的文件从安装包文件中筛选出来。
在步骤202中,计算机设备对原始dex文件进行加密,得到加密后的原始dex文件。
其中,对原始dex文件进行加密的方式可以为采用对称加密算法(AdvancedEncryption Standard,AES)进行加密,也即加密以及后续解密时采用的密钥均相同,也可采用非对称加密算法对原始dex文件进行加密,此处不做限定。
例如,采用AES加密算法对原始dex文件进行加密,得到加密后的原始dex文件。
在步骤203中,计算机设备基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,目标代码用于将加密后的原始dex文件还原为原始dex文件并执行原始dex文件,第一目标dex文件的文件大小小于该原始dex文件的文件大小。
其中,构建第一目标dex文件时,可以根据Android系统下dex文件的通用构建规则和语法规范新建一个第一目标dex文件。具体的,该第一目标dex文件的内部代码逻辑为将加密后的原始dex文件还原为原始dex文件,并执行原始dex文件。由于第一目标dex文件的内部代码(目标代码)可仅存有上述两种逻辑,因此第一目标dex文件的文件大小小于原始dex文件的文件大小。
在步骤204中,计算机设备将加密后dex文件写入第一目标dex文件内,得到第二目标dex文件。
其中,该第一目标dex文件的内部代码逻辑为将加密后的原始dex文件还原为原始dex文件,并执行原始dex文件。由于加密后dex为非二进制数据结构,因此按照二进制数据结构对第二目标dex文件进行解析时,仅能解析出不包含加密后的原始dex文件的部分,也即第一目标dex文件。因此按照第一目标dex文件的内部代码逻辑,第一目标dex文件含有可用于将加密后的原始dex文件还原为原始dex文件并执行原始dex文件的目标代码。目标代码也即第一目标dex文件的内部代码。
其中,将加密后的原始dex文件写入第一目标dex文件内的方式为:将加密后的原始dex文件写入第一目标dex文件的末端,从而得到第二目标dex文件。
在步骤205中,计算机设备将第二目标dex文件替换安装包文件中的原始dex文件,得到目标安装包文件。
其中,在步骤203中得到第二目标dex文件后,将应用安装包文件中的原始dex文件替换为第二目标dex文件,得到目标安装包文件。
在步骤206中,计算机设备根据目标安装包文件对待安装应用进行安装,得到可执行应用。
根据目标安装包文件进行安装的方式为:将目标安装包文件复制到data/app目录下,解压并扫描安装包,将第二目标dex文件保存至dalvik-cache目录下,并在data/data目录下创建对应的应用数据目录,从而得到可执行应用。
具体的,在整个安装过程中,会对第二目标dex文件中的代码进行优化,由于第二目标dex文件中存在第一目标dex文件以及加密后的原始dex文件两部分,而加密后的原始dex文件为非二进制数据结构,因此加密后的原始dex文件无法被提取到,仅对可提取到的第一目标dex文件进行优化。并因第一目标dex文件的文件大小小于原始dex文件的文件大小,因此对第一目标dex文件进行优化的速度更快,进而在安装目标安装包文件时的优化时长小于安装原始安装包文件时的优化时长,致使安装时长缩短。
在步骤207中,当计算机设备检测到对可执行应用的执行指令时,判断指令路径下是否存在指定类型文件。
其中,执行指令即为开启应用的指令,通常在移动终端上每一应用对应有一应用图标。例如,用户可通过点击该应用图标的方式来执行该应用。在目标安装包文件安装完成后,在首次启动可执行应用时,会进行启动优化,也即将原始dex文件中的代码部分编译为本地可执行的ELF文件,因为dex文件解析最终也是通过虚拟机将dex转化成机器码形式运行,而读取ELF文件则可跳过dex虚拟机过程,直接通过机器码执行,从而效率更高,启动时长更短。因此,还需要确定指定路径下是否存在指定类型文件,从而判断本次启动是否为首次启动。若已对原始dex文件进行优化,则在指定的oat文件夹中会存在ELF文件,因此可通过判断oat文件夹中是否存在ELF文件确定本次启动是否为首次启动。若不存在ELF文件,则证明本次启动为首次启动,则需从需要执行dalvik-cache目录下的第二目标dex文件中找出原始dex文件。并在启动可执行应用后,启动子线程对原始dex文件进行编译转换,从而得到ELF文件。
在步骤208中,若指令路径下不存在指定类型文件,则计算机设备对第二目标dex文件进行解析,以获取第二目标dex文件中的加密后的原始dex文件。
其中,若已经对原始dex文件进行优化,则在指定的oat文件夹中会存在ELF文件,因此可通过判断oat文件夹中是否存在ELF文件确定本次启动是否为首次启动。若不存在ELF文件,则证明本次启动为首次启动,则需从需要执行dalvik-cache目录下的第二目标dex文件中找出原始dex文件。并在启动可执行应用后,启动子线程对原始dex文件进行编译转换,从而得到ELF文件。
而第一目标dex文件内可被解析的只有第一目标dex文件,因此执行第一目标dex文件的内部代码逻辑:将加密后的原始dex文件还原为原始dex文件,并执行原始dex文件。解析过程中无法被解析出的部分即为加密后的原始dex文件,获取到添加后第一目标dex文件中的加密后的原始dex文件。
在步骤209中,计算机设备获取对原始dex文件进行加密时的密钥。
其中,为了执行原始dex文件的内部代码逻辑,需要对获取到的加密后的原始dex文件进行解密,而由于对原始dex文件进行加密时是由Android服务层处理的,因此可从Android服务层获取到该密钥,或者触发Android服务层发送该密钥,此处不做限定。
在步骤210中,计算机设备根据密钥对加密后的原始dex文件进行解密,得到原始dex文件。
其中,具体的,在获取到Android服务层发送的密钥后,根据密钥对加密后的原始dex文件进行解密,从而得到原始dex文件。
在步骤211中,计算机设备调用内存映射函数将原始dex文件映射进内存,并将第二目标dex文件的入口指向原始dex文件。
其中,不同版本的Android系统将原始dex文件读取进内存的方式不同,在Android7.0-7.1版本下,屏蔽了dl操作,采用钩子形式(hook)(hook是消息处理机制的平台,通过系统调用,把它挂入系统,应用程序可以在上面设置子程序以监视指定窗口的某种消息,当消息到达后,在目标窗口处理函数之前,hook捕获此消息,得到此消息的控制权,处理此消息),在动态库调用到read()函数,mmap()函数时,执行原始dex文件内存的地址替换,然后执行系统调用MakeDexElement方法。
具体的,在将原始dex文件读取进内存后,应同时将第二目标dex文件的入口函数指向原始dex文件,也即将Application启动类和Classloader加载器指向原始dex文件,从而实现可执行应用的正常逻辑。
在步骤212中,计算机设备控制子线程按照预设加载方式加载原始dex文件,得到指定类型文件,并将指定类型文件存至指定路径下。
其中,由于本次启动为首次启动,因此还需对原始dex文件进行编译,以在oat文件夹中生成可直接执行的ELF文件,为了防止系统在主线程中进行OAT优化,避免由于主线程进行OAT优化导致应用执行异常、缓慢等情况的产生,通过hook方式阻断OAT优化过程中mmap函数,修改返回值,实现原始dex文件的加载。预设加载方式以为调用MakeDexElements函数加载原始dex文件,从而对原始dex文件进行OAT优化,以将原始dex文件进行编译转换为ELF文件,并将ELF文件存入oat文件夹中。MakeDexElements是一个系统方法,用来解析dex文件并将dex文件放到类加载器中。
由上述可知,本申请实施例通过获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;对该原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。以此,通过将原始dex文件加密并写入第一目标dex文件内,由于加密后的原始dex文件无法被系统解析到,因此在安装时仅能找到第一目标dex文件,并因第一目标dex文件的文件大小小于该原始dex文件的文件大小,可减少安装时长。
为便于更好的实施本申请实施例提供的数据处理方法,本申请实施例还提供一种基于上述数据处理方法的装置。其中名词的含义与上述数据处理方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3a,图3a为本申请实施例提供的数据处理装置的第一种结构示意图,其中该数据处理装置可以包括获取模块301、加密模块302、构建模块303、写入模块304、添加模块305以及安装模块306等。
获取模块301,用于获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;
加密模块302,用于对该原始dex文件进行加密,得到加密后的原始dex文件;
构建模块303,用于基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;
写入模块304、用于将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;
添加模块305,用于将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;
安装模块306,用于根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。
在一些实施方式中,如图3b所示,图3b为本申请实施例提供的数据处理装置的第二种结构示意图,该装置还可以包括:
解析模块308,用于当检测到对该可执行应用的执行指令时,对该第二目标dex文件进行解析,以获取该第二目标dex文件中的该加密后的原始dex文件;
解密模块309,用于对该加密后的原始dex文件进行解密,得到该原始dex文件;
读取模块310,用于将该原始dex文件读取进内存,以在该内存中运行该原始dex文件。
在一些实施方式中,该装置还可以包括:
判断模块307,用于判断指令路径下是否存在指定类型文件;
若该指令路径下不存在该指定类型文件,则继续执行该对该第二目标dex文件进行解析的步骤;
转换模块311,用于在该将该原始dex文件读取进内存,以在该内存中运行该原始dex文件的步骤之后控制子线程对该原始dex文件进行转换处理,得到指定类型文件,并将该指定类型文件存至该指定路径下。
在一些实施方式中,该转换模块311具体用于:
控制该子线程按照预设加载方式加载该原始dex文件,得到该指定类型文件。
在一些实施方式中,该解密模块309,包括:
获取单元,用于获取对该原始dex文件进行加密时的密钥;
解密单元,用于根据该密钥对该加密后的原始dex文件进行解密,得到原始dex文件。
在一些实施方式中,该读取模块310具体用于:
调用内存映射函数将该原始dex文件映射进内存,并将该第二目标dex文件的入口指向该原始dex文件。
在一些实施方式中,该装置还用于若该指定路径下存在该指定类型文件,则将该指定类型文件读取进内存,以使内存运行该指定类型文件。
由上述可知,本申请实施例通过获取模块301获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;加密模块302对该原始dex文件进行加密,得到加密后的原始dex文件;构建模块303基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;写入模块304将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;添加模块305将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;安装模块306根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。以此,通过将原始dex文件加密并写入第一目标dex文件内,由于加密后的原始dex文件无法被系统解析到,因此在安装时仅能找到第一目标dex文件,并因第一目标dex文件的文件大小小于该原始dex文件的文件大小,可减少安装时长。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图4所示,图4为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。
在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;对该原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图4所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
在本申请实施例中,通过处理器401执行可执行应用在触控显示屏403上生成应用图标,并接收用户点击该应用图标的执行指令。也即该触控显示屏403用于呈现可执行应用的应用图标以及接收用户作用于图形用户界面的应用图标所产生的执行指令。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图4中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,通过获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;对该原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。以此,通过将原始dex文件加密并写入第一目标dex文件内,由于加密后的原始dex文件无法被系统解析到,因此在安装时仅能找到第一目标dex文件,并因第一目标dex文件的文件大小小于该原始dex文件的文件大小,可减少安装时长。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种数据处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取待安装应用的安装包文件,从该安装包文件中筛选出原始dex文件;对该原始dex文件进行加密,得到加密后的原始dex文件;基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,该目标代码用于将该加密后的原始dex文件还原为该原始dex文件并执行该原始dex文件,该第一目标dex文件的文件大小小于该原始dex文件的文件大小;将该加密后的原始dex文件写入该第一目标dex文件内,得到第二目标dex文件;将该第二目标dex文件替换该安装包文件中的原始dex文件,得到目标安装包文件;根据该目标安装包文件对该待安装应用进行安装,得到可执行应用。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种数据处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据处理方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
获取待安装应用的安装包文件,从所述安装包文件中筛选出原始dex文件;
对所述原始dex文件进行加密,得到加密后的原始dex文件;
基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,所述目标代码用于将所述加密后的原始dex文件还原为所述原始dex文件并执行所述原始dex文件,所述第一目标dex文件的文件大小小于所述原始dex文件的文件大小;
将所述加密后的原始dex文件写入所述第一目标dex文件内,得到第二目标dex文件;
将所述第二目标dex文件替换所述安装包文件中的原始dex文件,得到目标安装包文件;
根据所述目标安装包文件对所述待安装应用进行安装,得到可执行应用。
2.根据权利要求1所述的数据处理方法,其特征在于,在所述根据所述目标安装包文件对所述待安装应用进行安装,得到可执行应用的步骤之后,还包括:
当检测到对所述可执行应用的执行指令时,对所述第二目标dex文件进行解析,以获取所述第二目标dex文件中的所述加密后的原始dex文件;
对所述加密后的原始dex文件进行解密,得到所述原始dex文件;
将所述原始dex文件读取进内存,以在所述内存中运行所述原始dex文件。
3.根据权利要求2所述的数据处理方法,其特征在于,在所述对所述第二目标dex文件进行解析,以获取所述第二目标dex文件中的所述加密后的原始dex文件的步骤之前,还包括:
判断指定 路径下是否存在指定类型文件;
若所述指定 路径下不存在所述指定类型文件,则执行所述对所述第二目标dex文件进行解析的步骤;
在所述将所述原始dex文件读取进内存,以在所述内存中运行所述原始dex文件的步骤之后,还包括:
控制子线程对所述原始dex文件进行转换处理,得到指定类型文件,并将所述指定类型文件存至所述指定路径下。
4.根据权利要求3所述的数据处理方法,其特征在于,所述控制子线程对所述原始dex文件进行转换处理,得到指定类型文件的步骤,包括:
控制所述子线程按照预设加载方式加载所述原始dex文件,得到所述指定类型文件。
5.根据权利要求2所述的数据处理方法,其特征在于,所述对所述加密后的原始dex文件进行解密,得到所述原始dex文件的步骤,包括:
获取对所述原始dex文件进行加密时的密钥;
根据所述密钥对所述加密后的原始dex文件进行解密,得到原始dex文件。
6.根据权利要求2所述的数据处理方法,其特征在于,所述将所述原始dex文件读取进内存,以使内存运行所述原始dex文件的步骤,包括:
调用内存映射函数将所述原始dex文件映射进内存,并将所述第二目标dex文件的入口指向所述原始dex文件。
7.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
若所述指定路径下存在所述指定类型文件,则将所述指定类型文件读取进内存,以使内存运行所述指定类型文件。
8.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待安装应用的安装包文件,从所述安装包文件中筛选出原始dex文件;
加密模块,用于对所述原始dex文件进行加密,得到加密后的原始dex文件;
构建模块,用于基于dex文件的通用构建规则、语法规范以及目标代码,构建第一目标dex文件,所述目标代码用于将所述加密后的原始dex文件还原为所述原始dex文件并执行所述原始dex文件,所述第一目标dex文件的文件大小小于所述原始dex文件的文件大小;
写入模块,用于将所述加密后的原始dex文件写入所述第一目标dex文件内,得到第二目标dex文件;
添加模块,用于将所述第二目标dex文件替换所述安装包文件中的原始dex文件,得到目标安装包文件;
安装模块,用于根据所述目标安装包文件对所述待安装应用进行安装,得到可执行应用。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1-7任一项所述的数据处理方法中的步骤。
10.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1-7任一项所述的数据处理方法中的步骤。
CN202110063444.XA 2021-01-18 2021-01-18 一种数据处理方法、装置、存储介质及计算机设备 Active CN112799687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110063444.XA CN112799687B (zh) 2021-01-18 2021-01-18 一种数据处理方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110063444.XA CN112799687B (zh) 2021-01-18 2021-01-18 一种数据处理方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN112799687A CN112799687A (zh) 2021-05-14
CN112799687B true CN112799687B (zh) 2022-05-17

Family

ID=75810128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110063444.XA Active CN112799687B (zh) 2021-01-18 2021-01-18 一种数据处理方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN112799687B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3057019A1 (en) * 2015-02-13 2016-08-17 Thomson Licensing Method and device for protecting an application and method and device for executing a protected application thus protected
CN106055375A (zh) * 2016-07-13 2016-10-26 青岛海信移动通信技术股份有限公司 应用程序安装方法及装置
CN107292134A (zh) * 2017-05-27 2017-10-24 北京思特奇信息技术股份有限公司 一种防止Android应用被反编译的应用加固方法及系统
CN111522555A (zh) * 2020-04-24 2020-08-11 中国信息安全测评中心 apk文件的加固方法、解密方法及相关装置
CN112052047A (zh) * 2020-08-05 2020-12-08 北京智游网安科技有限公司 一种指令处理方法、终端及存储介质
CN112052461A (zh) * 2020-08-05 2020-12-08 北京智游网安科技有限公司 一种基于指令注入的代码处理方法、终端及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3057019A1 (en) * 2015-02-13 2016-08-17 Thomson Licensing Method and device for protecting an application and method and device for executing a protected application thus protected
CN106055375A (zh) * 2016-07-13 2016-10-26 青岛海信移动通信技术股份有限公司 应用程序安装方法及装置
CN107292134A (zh) * 2017-05-27 2017-10-24 北京思特奇信息技术股份有限公司 一种防止Android应用被反编译的应用加固方法及系统
CN111522555A (zh) * 2020-04-24 2020-08-11 中国信息安全测评中心 apk文件的加固方法、解密方法及相关装置
CN112052047A (zh) * 2020-08-05 2020-12-08 北京智游网安科技有限公司 一种指令处理方法、终端及存储介质
CN112052461A (zh) * 2020-08-05 2020-12-08 北京智游网安科技有限公司 一种基于指令注入的代码处理方法、终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Android系统应用程序DEX文件保护方法研究;袁晓筱;《信息网络安全》;20200731;全文 *

Also Published As

Publication number Publication date
CN112799687A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
US10831567B2 (en) Application processing method and apparatus
CN108897562B (zh) 安装包更新方法、装置、介质以及设备
CN108241500B (zh) 一种硬件组件的修复方法、装置、系统和存储介质
CN106598584B (zh) 一种处理资源文件的方法、装置和系统
US11853820B2 (en) Cross-process communication method, apparatus, and device
CN109857403B (zh) 一种页面更新、页面处理方法及装置
CN106502703B (zh) 一种函数调用方法和装置
US20170025105A1 (en) Sound effect processing method and device, plug-in unit manager and sound effect plug-in unit
CN108549568B (zh) 应用入口处理方法、装置、存储介质及电子设备
CN107329901B (zh) 数据包抓取方法、终端、服务器和存储介质
JP6464162B2 (ja) ファームウェア仮想化のための方法および装置
US9747449B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN114327688B (zh) 基于微前端的数据处理方法、框架、存储介质及终端设备
US10404568B2 (en) Agent manager for distributed transaction monitoring system
CN109933381B (zh) 一种内核的加载方法及装置
US9535666B2 (en) Dynamic agent delivery
US11321080B2 (en) Patch package generation method and device
CN112162795B (zh) 一种插件启动方法、装置、计算机设备和存储介质
CN108090345B (zh) linux系统外部命令执行方法及装置
CN110865837A (zh) 一种进行系统升级的方法和终端
WO2021027772A1 (zh) 一种应用切换运行的方法及设备
US9971611B2 (en) Monitoring a mobile device application
CN114327087A (zh) 输入事件处理方法、装置、电子设备和存储介质
CN112799687B (zh) 一种数据处理方法、装置、存储介质及计算机设备
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant