CN107103215A - 一种apk安装方法及装置 - Google Patents
一种apk安装方法及装置 Download PDFInfo
- Publication number
- CN107103215A CN107103215A CN201710287225.3A CN201710287225A CN107103215A CN 107103215 A CN107103215 A CN 107103215A CN 201710287225 A CN201710287225 A CN 201710287225A CN 107103215 A CN107103215 A CN 107103215A
- Authority
- CN
- China
- Prior art keywords
- apk
- code
- decruption key
- encrypted
- files
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000009434 installation Methods 0.000 title claims abstract description 21
- 230000006870 function Effects 0.000 claims abstract description 96
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 238000004458 analytical method Methods 0.000 abstract description 20
- 238000011900 installation process Methods 0.000 abstract description 5
- 238000003860 storage Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013478 data encryption standard Methods 0.000 description 3
- 238000000682 scanning probe acoustic microscopy Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001441724 Tetraodontidae Species 0.000 description 1
- 240000008042 Zea mays Species 0.000 description 1
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 description 1
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000005822 corn Nutrition 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种APK安装方法及装置。该方法包括:接收APK安装请求;将APK的SO文件加载至内存,其中SO文件中包括解密密钥以及目标函数已加密的代码;当接收到执行目标函数的指令时,获取SO文件中的解密密钥,并通过解密密钥对已加密的代码进行解密;根据解密后的代码执行目标函数,用于安装APK。由于该SO文件中包括目标函数已加密的代码,从而能够防止非法逆向分析者窃取原始代码,对APK进行加固;另外,还将解密密钥保存在SO文件中,这样在APK安装的过程中,由于SO文件通过C++/C语言编辑,难以进行反编译,因此能够进一步对APK进行加固,在APK安装过程中更加不易于被非法逆向分析者进行逆向分析。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种APK安装方法及装置。
背景技术
随着安卓操作系统(Android)的快速发展,在安卓电子设备上的第三方应用(Application,APP)也越来越多,比如安卓手机上的APP数量逐年增加。但是由于安卓操作系统自身开源的特点,也产生了众多的软件逆向工具,通过这些软件逆向工具能够对APP的安装文件,即APK(Android Package,安卓压缩包)进行逆向分析,从而对APP的开发者和使用者造成危害。因此,如何对APK进行加固从而防止逆向分析,是本申请实施例所需要解决的技术问题。
发明内容
本申请实施例提供一种APK安装方法及装置,能够在APK的安装过程中,防止目标函数被窃取,从而对APK进行加固。
本申请实施例提供了一种APK安装方法,该方法包括:
接收APK安装请求;
将APK的SO文件加载至内存,其中所述SO文件中包括解密密钥以及目标函数已加密的代码;
当接收到执行所述目标函数的指令时,获取所述SO文件中的解密密钥,并通过所述解密密钥对所述已加密的代码进行解密;
根据解密后的代码执行所述目标函数,用于安装所述APK。
优选地,所述方法还包括:
当所述目标函数执行结束后,删除所述解密后的代码。
优选地,已加密的代码具体为已通过对称加密算法进行加密的代码;
通过所述解密密钥对所述已加密的代码进行解密,具体包括:
通过所述对称加密算法的逆算法以及所述解密密钥,对已通过对所述称加密算法进行加密的代码进行解密。
优选地,在接收APK安装请求之前,所述方法还包括:
将所述目标函数加密前的代码通过对称加密算法进行加密并生成所述解密密钥;
将所述解密密钥保存在所述SO文件data section数据段中;
根据所述SO文件生成所述APK。
优选地,生成所述解密密钥,具体包括:根据所述APK所对应的APP的唯一标识生成所述解密密钥,所述唯一标识用于唯一表示所述APP。
本申请实施例还提供了一种APK安装装置,该装置包括:接收单元、加载单元、解密单元以及执行单元,其中:
接收单元,用于接收APK安装请求;
加载单元,用于将APK的SO文件加载至内存,其中所述SO文件中包括解密密钥以及目标函数已加密的代码;
解密单元,用于当接收到执行所述目标函数的指令时,获取所述SO文件中的解密密钥,并通过所述解密密钥对所述已加密的代码进行解密;
执行单元,用于根据解密后的代码执行所述目标函数,用于安装所述APK。
优选地,所述装置还包括删除单元,当所述目标函数执行结束后,删除所述解密后的代码。
优选地,已加密的代码具体为已通过对称加密算法进行加密的代码;
通过所述解密密钥对所述已加密的代码进行解密,具体包括:
通过所述对称加密算法的逆算法以及所述解密密钥,对已通过对所述称加密算法进行加密的代码进行解密。
优选地,在接收单元之前,所述装置还包括:生成单元,用于将所述目标函数加密前的代码通过对称加密算法进行加密并生成所述解密密钥,将所述解密密钥保存在所述SO文件data section数据段中,根据所述SO文件生成所述APK。
优选地,生成所述解密密钥,具体包括:根据所述APK所对应的APP的唯一标识生成所述解密密钥,所述唯一标识用于唯一表示所述APP。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
采用本申请实施例所提供的APK安装方法,接收APK安装请求之后,将APK的SO文件加载至内存,由于该SO文件中包括目标函数已加密的代码,即目标函数的原始代码已被加密,从而能够防止非法逆向分析者窃取原始代码,因此能够对APK进行加固;另外,还将解密密钥保存在SO文件中,这样在APK安装的过程中,一方面由于从运行效率更高的SO文件中获取解密密钥,使得安装速度相对更快,另一方面由于SO文件通过C++/C语言编辑,难以进行反编译,因此能够进一步对APK进行加固,在APK安装过程中更加不易于被非法逆向分析者进行逆向分析。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的APK安装方法的具体实现流程示意图;
图2为本申请实施例提供的APK生成方法的具体实现流程示意图;
图3为本申请实施例提供的APK安装装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
在APK中通常会包括SO(Share Object,共享对象)文件,由于SO文件采用二进制,没有额外的解释编译过程,在运行时速度更快。因此在APP开发过程中,通常会将APK中的部分核心代码放到SO文件中,从而加快APK的安装速度。本申请通过APK中的SO文件来对该APK进行加固。
本申请实施例提供了一种APK安装方法。该方法的具体流程示意图如图1所示,包括下述步骤:
步骤S11:接收APK安装请求。
该安装请求用于请求安卓操作系统运行并安装APK,从而最终安装于该APK相对应的APP。
在实际应用中,当用户需要在诸如手机、平板电脑上安装第三方应用时,可以触控第三方应用的APK,通过安装该APK来实现第三方应用的安装。当用户触控第三方应用的APK之后,这些电子设备上的安卓操作系统能够接收到APK安装请求。
比如,用户触控手机“QQ”所对应的APK之后,手机上的安卓操作系统会接收到该APK的安装请求,运行该APK从而最终实现手机“QQ”的安装。
步骤S12:将APK中的SO文件加载至内存,其中所述SO文件中包括目标函数已加密的代码以及解密密钥。
这里的SO文件位于该APK中。APK中通常会包括classes.dex、SO文件、AndroidManifest.xml等,其中SO文件采用C++/C语言编辑。在该SO文件中包括目标函数加密后的代码,也即目标函数已加密的代码,这里的目标函数通常是需要进行保护的函数,比如正常运行该APK所需要的资源函数,或者APK核心功能模块的函数等;在实际应用中目标函数可以是一个或多个需要进行保护的函数。
在手机、平板电脑等电子设备上安装第三方应用时,电子设备上的安卓操作系统通过运行安装该APK从而实现第三方应用的安装。在运行安装APK时,需要先将APK中的classes.dex、SO文件等至内存中。
在该APK的SO文件中还包括解密密钥,该解密密钥可以用于对目标函数加密后的代码进行解密,从而得到目标函数解密后的到代码(也称之为目标函数的原始代码)。
需要说明的是,实际应用中将SO文件中的目标函数的代码进行加密得到加密后的代码之后,为了使得该目标函数能够顺利执行,通常可以将解密密钥保存在APK中。但APK中有诸如classes.dex、SO文件等多个文件,其中,SO文件之外的文件一般通过java语言编辑,而SO文件通过C++/C语言编辑;因此如果将解密密钥保存在APK的SO文件之外的文件中,非法逆向分析者能够通过逆向分析工具对保存了解密密钥的文件进行逆向分析,从而得到相应的Smali代码,并对Smali代码进行分析最终获取解密密钥;而如果将解密密钥保存在APK的SO文件中,逆向分析工具对C++/C语言所编辑的代码进行逆向分析的难度较大,并且最终也只能得到汇编语言的代码,而相对于Smali代码,对汇编语言的代码进行分析的难度较大,因此并不易于SO文件进行逆向分析从而获取其中的解密密钥。在实际应用中,可以将解密密钥保存在SO文件中,从而进一步对APK进行加固,保证其安全性。
步骤S13:当接收到执行所述目标函数的指令时,获取所述SO文件中的解密密钥,并通过所述解密密钥对所述已加密的代码进行解密。
步骤S14:根据解密后的代码执行所述目标函数,用于安装所述APK。
这里可以对步骤S13和步骤S14进行整体性说明。
在安装APK的过程中,函数之间通常会出现互相调用的情况,当某个函数需要调用目标函数时,可以发出执行目标函数的指令(对该目标函数的调用指令),从而执行该目标函数。安卓操作系统在接收到该指令之后,可以根据该指令从SO文件中获取解密密钥,从而通过该解密密钥对已加密的代码进行解密得到解密后的代码,即目标函数加密前的原始代码。
安卓操作系统在得到解密后的代码之后,可以根据该解密后的代码执行目标函数,从而进行相应的APK的安装。
采用本申请实施例所提供的APK安装方法,接收APK安装请求之后,将APK的SO文件加载至内存,由于该SO文件中包括目标函数已加密的代码,即目标函数的原始代码已被加密,从而能够防止非法逆向分析者窃取原始代码,因此能够对APK进行加固;另外,还将解密密钥保存在SO文件中,这样在APK安装的过程中,一方面由于从运行效率更高的SO文件中获取解密密钥,使得安装速度相对更快,另一方面由于SO文件通过C++/C语言编辑,难以进行反编译,因此能够进一步对APK进行加固,在APK安装过程中更加不易于被非法逆向分析者进行逆向分析。
在实际应用中,在步骤S14根据解密后的代码执行目标函数之后,该方法还可以包括下面的步骤S15和步骤S16
步骤S15:对目标函数的执行状态进行监控。
通常目标函数的执行状态可以包括未执行、执行中以及执行结束等。
安卓操作系统能够提供相应的API(Application Programming Interface,应用程序编程接口),可以编辑相应的监控程序,通过这些API对某个函数或者某些函数的执行状态进行监控。因此,可以编辑针对目标函数的监控程序,通过安卓操作系统提供的API来实现对目标函数执行状态的监控。
另外,对目标函数的执行状态进行监控,可以是实时监控目标函数的执行状态,也可以是每隔一个时间周期(比如1分钟,也可以为其它)获取目标函数的执行状态,也可以是其它的监控方式。对于实时监控的方式通常能够及时获知目标函数的执行状态,但所消耗的计算资源较大;对于周期性获取目标函数的执行状态的监控方式,所消耗的计算资源相对较少,但实时性较差;因此在应用过程中,可以根据电子设备CPU的运算能力、对实时性的需求等选择具体的监控方式,这里就不再一一赘述。
步骤S16:当监控到目标函数执行结束时,删除目标函数解密后的代码。
在实际应用中,部分的逆向分析技术可以通过内存dump等技术窃取解密后的代码,从而进行发编译,对APK的安全造成影响。因此,当根据解密后的代码执行目标函数,并在目标函数执行结束之后,可以删除该解密后的代码,防止通过内存dump等方式窃取该代码。
在实际应用中,APK开发者可以将APK部分核心代码中的函数分别作为目标函数,对目标函数的源代码进行加密,并在APK的安装过程中对目标函数执行状态进行监控,当监控到目标函数执行结束时,将目标函数解密后的代码进行清除,能够进一步防止非法逆向分析者通过内存dump等方式窃取目标函数的原密码,造成核心代码的泄露,实现了APK的加固。特别是当需要保护的函数数量较多时,可以分别将这些函数作为目标函数,对这些函数的代码进行加密,并在这些函数先后执行的过程中,依次清除这些函数解密后的代码,从而使得非法逆向分析者难以从内存中获取完整的SO文件的代码,从而难以对APK进行逆向分析。
上述步骤S12中提到,APK的SO文件中包括目标函数已加密的代码以及解密密钥。
这里的已加密的代码可以是已通过对称加密算法进行加密的代码,比如将目标函数加密前的代码(目标函数的原始代码)通过对称加密算法进行加密,然后将加密后的代码放入SO文件中。此时,SO文件中包括的解密密码,可以用于对已通过对称加密算法进行加密的代码进行解密,从而的得到目标函数的原始代码。在实际应用中,该SO文件通常为ELF文件,因此可以将解密密码保存在所述SO文件data section数据段中,从而提高非法获取该解密密钥的难度。
相应的,在步骤S13中提到的通过该解密密钥对已加密的代码进行解密可以是,通过该对称加密算法的逆算法以及该解密密钥,对已通过对该称加密算法进行加密的代码进行解密。
其中,上述的对称加密算法可以是如下任意一种对称加密算法:DES(DataEncryption Standard)加密算法、3DES(Triple DES)加密算法、RC2加密算法、RC4加密算法、RC5加密算法或Blowfish加密算法,当然,也可以是其它的对称加密算法。
通常可以先生成APK,然后对APK进行安装。因此在用户触控APK,从而使得电子设备的安卓操作系统接收安装请求之前,还可以包括如何生成APK的步骤。如图2所示,这些步骤如下所示:
步骤S21:将目标函数加密前的代码通过对称加密算法进行加密并生成解密密钥。
这里目标函数加密前的代码可以是目标函数的原始代码;
另外,在生成所述解密密钥时,可以根据所生成的APK所对应的APP的唯一标识生成该解密密钥,其中APP的唯一标识可以用于唯一表示APP,通常可以是该APP的名称、版本号等。
步骤S22:将解密密钥保存在SO文件data section数据段中;
步骤S23:根据SO文件生成所述APK。
通常根据SO文件生成APK时,可以先该SO文件通过Android NDK进行处理,然后将生成APK所需要的全部文件(包括该SO文件、DEX文件等)进行组包生成APK。
基于与本申请实施例所提供的APK安装方法相同的发明构思,本申请实施例还提供了一种APK安装装置。如图3所示,该装置30包括:接收单元301、加载单元302、解密单元303以及执行单元304,其中:
接收单元301,用于接收APK安装请求;
加载单元302,用于将APK的SO文件加载至内存,其中所述SO文件中包括解密密钥以及目标函数已加密的代码;
解密单元303,用于当接收到执行所述目标函数的指令时,获取所述SO文件中的解密密钥,并通过所述解密密钥对所述已加密的代码进行解密;
执行单元304,用于根据解密后的代码执行所述目标函数,用于安装所述APK。
采用本申请实施例所提供的装置30,由于该装置30采用与本申请实施例速提供的APK安装方法相同的发明构思,因此也能够解决现有技术中的问题,这里对此就不在一一赘述。
另外,所述装置30还包括删除单元305,当所述目标函数执行结束后,删除所述解密后的代码。
上述的加载单元302,所加载至内存中的SO文件中包括解密密钥以及目标函数已加密的代码,其中该已加密的代码可以是,已通过对称加密算法进行加密的代码;相应的,解密单元303通过所述解密密钥对所述已加密的代码进行解密,可以具体是,通过所述对称加密算法的逆算法以及所述解密密钥,对已通过对所述称加密算法进行加密的代码进行解密。
在实际应用中,该装置30在接收单元301之前还可以包括:生成单元,用于将所述目标函数加密前的代码通过对称加密算法进行加密并生成所述解密密钥,将所述解密密钥保存在所述SO文件data section数据段中,根据所述SO文件生成所述APK;其中,这里的生成所述解密密钥,可以具体为,根据所述APK所对应的APP的唯一标识生成所述解密密钥,所述唯一标识用于唯一表示所述APP,比如APP的名称、版本号等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种APK安装方法,其特征在于,包括:
接收APK安装请求;
将APK的SO文件加载至内存,其中所述SO文件中包括解密密钥以及目标函数已加密的代码;
当接收到执行所述目标函数的指令时,获取所述SO文件中的解密密钥,并通过所述解密密钥对所述已加密的代码进行解密;
根据解密后的代码执行所述目标函数,用于安装所述APK。
2.如权利要求1所述方法,其特征在于,所述方法还包括:
当所述目标函数执行结束后,删除所述解密后的代码。
3.如权利要求1所述方法,其特征在于,已加密的代码具体为已通过对称加密算法进行加密的代码;
通过所述解密密钥对所述已加密的代码进行解密,具体包括:
通过所述对称加密算法的逆算法以及所述解密密钥,对已通过对所述称加密算法进行加密的代码进行解密。
4.如权利要求1所述方法,其特征在于,在接收APK安装请求之前,所述方法还包括:
将所述目标函数加密前的代码通过对称加密算法进行加密并生成所述解密密钥;
将所述解密密钥保存在所述SO文件data section数据段中;
根据所述SO文件生成所述APK。
5.如权利要求4所述方法,其特征在于,
生成所述解密密钥,具体包括:根据所述APK所对应的APP的唯一标识生成所述解密密钥,所述唯一标识用于唯一表示所述APP。
6.一种APK安装装置,其特征在于,包括:接收单元、加载单元、解密单元以及执行单元,其中:
接收单元,用于接收APK安装请求;
加载单元,用于将APK的SO文件加载至内存,其中所述SO文件中包括解密密钥以及目标函数已加密的代码;
解密单元,用于当接收到执行所述目标函数的指令时,获取所述SO文件中的解密密钥,并通过所述解密密钥对所述已加密的代码进行解密;
执行单元,用于根据解密后的代码执行所述目标函数,用于安装所述APK。
7.如权利要求6所述装置,其特征在于,所述装置还包括删除单元,当所述目标函数执行结束后,删除所述解密后的代码。
8.如权利要求6所述装置,其特征在于,已加密的代码具体为已通过对称加密算法进行加密的代码;
通过所述解密密钥对所述已加密的代码进行解密,具体包括:
通过所述对称加密算法的逆算法以及所述解密密钥,对已通过对所述称加密算法进行加密的代码进行解密。
9.如权利要求6所述装置,其特征在于,在接收单元之前,所述装置还包括:生成单元,用于将所述目标函数加密前的代码通过对称加密算法进行加密并生成所述解密密钥,将所述解密密钥保存在所述SO文件data section数据段中,根据所述SO文件生成所述APK。
10.如权利要求9所述装置,其特征在于,生成所述解密密钥,具体包括:根据所述APK所对应的APP的唯一标识生成所述解密密钥,所述唯一标识用于唯一表示所述APP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287225.3A CN107103215A (zh) | 2017-04-27 | 2017-04-27 | 一种apk安装方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287225.3A CN107103215A (zh) | 2017-04-27 | 2017-04-27 | 一种apk安装方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107103215A true CN107103215A (zh) | 2017-08-29 |
Family
ID=59657246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710287225.3A Pending CN107103215A (zh) | 2017-04-27 | 2017-04-27 | 一种apk安装方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107103215A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492353A (zh) * | 2018-10-11 | 2019-03-19 | 北京奇虎科技有限公司 | 应用加固方法、装置、电子设备和存储介质 |
CN110489162A (zh) * | 2019-08-02 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 安装包so文件精简方法、装置、介质和设备 |
CN111488557A (zh) * | 2019-01-28 | 2020-08-04 | 中国移动通信有限公司研究院 | 一种加解密方法、装置、电子设备及可读存储介质 |
CN112486496A (zh) * | 2020-11-25 | 2021-03-12 | 上海连尚网络科技有限公司 | 一种用于生成和运行so文件的方法与设备 |
CN113360181A (zh) * | 2021-05-20 | 2021-09-07 | 武汉虹旭信息技术有限责任公司 | 用于工业互联网的代码调用方法及装置 |
CN113836582A (zh) * | 2021-09-30 | 2021-12-24 | 西安诺瓦星云科技股份有限公司 | 软件加密及解密方法、装置、电子设备和存储介质 |
CN116881869A (zh) * | 2023-09-07 | 2023-10-13 | 麒麟软件有限公司 | 一种Linux系统上可执行程序的加密保护方法及系统 |
-
2017
- 2017-04-27 CN CN201710287225.3A patent/CN107103215A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492353A (zh) * | 2018-10-11 | 2019-03-19 | 北京奇虎科技有限公司 | 应用加固方法、装置、电子设备和存储介质 |
CN109492353B (zh) * | 2018-10-11 | 2024-04-16 | 北京奇虎科技有限公司 | 应用加固方法、装置、电子设备和存储介质 |
CN111488557A (zh) * | 2019-01-28 | 2020-08-04 | 中国移动通信有限公司研究院 | 一种加解密方法、装置、电子设备及可读存储介质 |
CN111488557B (zh) * | 2019-01-28 | 2024-01-12 | 中国移动通信有限公司研究院 | 一种加解密方法、装置、电子设备及可读存储介质 |
CN110489162A (zh) * | 2019-08-02 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 安装包so文件精简方法、装置、介质和设备 |
CN110489162B (zh) * | 2019-08-02 | 2023-09-22 | 北京字节跳动网络技术有限公司 | 安装包so文件精简方法、装置、介质和设备 |
CN112486496A (zh) * | 2020-11-25 | 2021-03-12 | 上海连尚网络科技有限公司 | 一种用于生成和运行so文件的方法与设备 |
CN113360181A (zh) * | 2021-05-20 | 2021-09-07 | 武汉虹旭信息技术有限责任公司 | 用于工业互联网的代码调用方法及装置 |
CN113836582A (zh) * | 2021-09-30 | 2021-12-24 | 西安诺瓦星云科技股份有限公司 | 软件加密及解密方法、装置、电子设备和存储介质 |
CN116881869A (zh) * | 2023-09-07 | 2023-10-13 | 麒麟软件有限公司 | 一种Linux系统上可执行程序的加密保护方法及系统 |
CN116881869B (zh) * | 2023-09-07 | 2023-12-26 | 麒麟软件有限公司 | 一种Linux系统上可执行程序的加密保护方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107103215A (zh) | 一种apk安装方法及装置 | |
US8756434B2 (en) | System and method for executing an encrypted binary from a memory pool | |
US8175268B2 (en) | Generating and securing archive keys | |
CN102760219B (zh) | 一种Android平台软件保护系统、方法及设备 | |
US9116712B2 (en) | Compile based obfuscation | |
US9135434B2 (en) | System and method for third party creation of applications for mobile appliances | |
CN108628611B (zh) | 一种数据调用方法及数据调用装置 | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
US9971582B2 (en) | Selecting application wrapper logic components based on features of a mobile application to be wrapped | |
CN107122636A (zh) | 一种基于so文件的apk加固方法及装置 | |
CN108111622A (zh) | 一种下载白盒库文件的方法、装置及系统 | |
CN110619227A (zh) | 一种审计日志管理方法、装置、设备及可读存储介质 | |
CN108134673A (zh) | 一种生成白盒库文件的方法及装置 | |
US20200026583A1 (en) | Automatic correction of cryptographic application program interfaces | |
US20220092155A1 (en) | Protecting an item of software | |
CN104182691B (zh) | 数据保密方法及装置 | |
CN106326733A (zh) | 管理移动终端中应用的方法和装置 | |
CN112464068B (zh) | 数据处理方法、装置及电子设备 | |
JP2017146967A (ja) | 中間言語ファイルのロード速度改善のための方法およびシステム | |
CN104657635A (zh) | 一种应用处理方法、装置和服务器 | |
KR20140139392A (ko) | 모바일 장치를 위한 애플리케이션 실행 파일 생성방법, 모바일 장치의 애플리케이션 실행 방법, 애플리케이션 실행 파일 생성 장치 및 모바일 장치 | |
CN115221183A (zh) | 数据处理方法及装置 | |
CN117313046A (zh) | 一种代码加固方法、代码加载方法、设备及介质 | |
CN114896621B (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 | ||
CB02 | Change of applicant information |
Address after: 100083 Beijing, Haidian District Xueyuan Road 30 days building A 20 floor Applicant after: Beijing Bang Bang Safety Technology Co. Ltd. Address before: 100083 Xueyuan Road, Haidian District, Haidian District, Beijing, Haidian District, Beijing Applicant before: Yangpuweiye Technology Limited |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170829 |
|
RJ01 | Rejection of invention patent application after publication |