CN112363771A - 应用程序的处理方法及相关产品 - Google Patents
应用程序的处理方法及相关产品 Download PDFInfo
- Publication number
- CN112363771A CN112363771A CN201910671083.XA CN201910671083A CN112363771A CN 112363771 A CN112363771 A CN 112363771A CN 201910671083 A CN201910671083 A CN 201910671083A CN 112363771 A CN112363771 A CN 112363771A
- Authority
- CN
- China
- Prior art keywords
- module
- application program
- functional module
- loading
- function
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000003672 processing method Methods 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 143
- 238000012545 processing Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 238000009434 installation Methods 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序的处理方法及相关产品。应用程序包括存储在终端的加载模块和存储在服务器的功能模块,方法包括:获取应用程序的运行指令之后,运行应用程序的加载模块,以使得加载模块从目标服务器获取该应用程序的功能模块,然后再由加载模块控制运行功能模块,以实现该应用程序的业务功能。这样终端从应用下载的该应用程序的安装包中,不包含用于实现该应用程序的业务功能的功能模块,也即不包含用于实现该应用程序的业务功能的核心逻辑。非法用户获取到该应用程序的安装包之后,获得该应用程序的功能模块,也就无法修改应用程序的功能模块,从而确保在终端运行的应用程序的功能模块是没有被修改的,保障终端运行应用程序时的安全性。
Description
技术领域
本申请涉及应用程序技术领域,尤其涉及了一种应用程序的处理方法及相关产品。
背景技术
随着电子技术以及计算机技术的不断发展,手机、平板电脑、智能可穿戴设备等终端已得到普及。终端通过开发的各种应用程序可以帮助用户实现各种各样的功能。由于Android系统的开源性,目前学习Android应用开发的资源很多,上手简单,例程丰富,使得Android的app发展迅速,各式各样的app给人们的生活带来了极大的便利,提高了人们的生活品质。不过应用安全问题油然而生,近几年,应用代码被篡改,app上架的平台监管不给力,小则给人们带来广告困扰,大则会造成人们的经济损失,终端运行应用程序时的安全性无法得到保障。
发明内容
本申请实施例提供一种应用程序的处理方法及相关产品。
第一方面,本申请实施例提供了一种应用程序的处理方法,其特征在于,所述应用程序包括存储在终端的加载模块和存储在服务器的功能模块,所述功能模块用于实现所述应用程序的业务功能,所述方法包括:
获取运行所述应用程序的运行指令;
运行所述应用程序的加载模块,以使得所述加载模块从目标服务器获取所述功能模块;
利用所述加载模块控制运行所述功能模块,以实现所述业务功能。
在某些实施方式中,所述运行所述应用程序的加载模块,以使得所述加载模块从目标服务器获取所述功能模块包括:
运行所述应用程序的加载模块,以利用所述加载模块向所述目标服务器发送功能模块获取请求,所述功能模块获取请求包括所述功能模块的功能模块信息;
利用加载模块接收所述目标服务器根据所述功能模块的功能模块信息反馈的功能模块。
在某些实施方式中,所述利用加载模块接收所述目标服务器根据所述功能模块的功能模块信息反馈的功能模块包括:
利用加载模块接收所述目标服务器根据所述功能模块信息反馈的功能模块,并将所述功能模块加载至所述终端的随机存取存储器中。
在某些实施方式中,所述将所述功能模块存储至所述终端的随机存取存储器中包括:
将所述功能模块加载至所述终端的随机存储器的第一区域,所述第一区域为创建所述应用程序的目标进程时分配给所述目标进程的内存区域。
在某些实施方式中,所述处理方法还包括步骤:
获取退出所述应用程序的退出指令;
将所述功能模块从所述随机存取存储器中删除。
在某些实施方式中,所述利用所述加载模块控制运行所述功能模块包括:
利用所述加载模块通过目标解密方式对所述功能模块进行解密;
利用所述加载模块控制运行解密后的功能模块。
在某些实施方式中,所述功能模块为二进制文件,所述利用所述加载模块控制运行所述功能模块包括:
利用所述加载模块按照JAVA反射机制运行所述解密后的功能模块。
第二方面,本申请还提供一种应用程序的处理装置,包括:
指令获取单元,用于获取运行所述应用程序的运行指令;
运行单元,用于运行所述应用程序的加载模块,以使得所述加载模块从目标服务器获取所述功能模块;
执行单元,用于利用所述加载模块控制运行所述功能模块,以实现所述业务功能。
第三方面,本申请还提供一种终端,包括处理器、存储器,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行上述任一实施例所述的方法中的步骤的指令。
第四方面,本申请还提供一种计算机可读存储介质,存储用于应用程序的处理的计算机程序,其中,所述计算机程序使得计算机执行上述任一实施例所述的方法。
本申请实施例的技术方案中,应用程序包括存储在终端的加载模块和存储在服务器的功能模块,终端获取到应用程序的运行指令之后,运行应用程序的加载模块,以使得加载模块从目标服务器获取该应用程序的功能模块,然后再由加载模块控制运行功能模块,以实现该应用程序的业务功能。这样,终端从应用下载的该应用程序的安装包中,不包含用于实现该应用程序的业务功能的功能模块,也即不包含用于实现该应用程序的业务功能的核心逻辑。那么,非法用户从应用下载平台获取到了该应用程序的安装包之后,由于该应用程序的安装包中,仅仅包含该应用程序的加载模块,并不包含用于实现业务功能的功能模块,非法用户无法获得该应用程序的功能模块,也就无法修改应用程序的功能模块,从而确保在终端运行的应用程序的功能模块是没有被修改的,可以保障终端运行应用程序时的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的网络架构图;
图2为本申请实施例的终端的硬件结构示意图;
图3为本申请实施例的终端的软件架构图;
图4为本申请实施例的应用程序的处理方法的流程示意图;
图5为本申请实施例的应用程序的处理方法的应用场景示意图;
图6为本申请实施例的应用程序的处理装置模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本申请的网络架构图,该网络架构1000包括终端100、服务器200和通信链路300。终端100与服务器200可通过通信链路300进行通信。
请参阅图2,图2为本申请实施例提供的终端100的硬件结构示意图。终端100包括处理器101、存储器102、通信接口103、以及一个或多个程序,一个或多个程序被存储在存储器102中,并且被配置由处理器101执行,程序包括用以下任一实施例的处理方法的步骤的指令。终端100例如可以是但不限于手机、智能手环、平板电脑、笔记本电脑等。存储器102包括随机存储器(RAM),和磁盘存储器。通信接口103可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
终端的操作系统包括但不限于安卓Android、Windows、Linux。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。如图3所示,图3是本发明实施例的终端的软件结构框图,在一些实施例中,以Android系统为例,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。Android Runtime包括核心库和安卓虚拟机(DALVIK)。Android runtime负责安卓系统的调度和管理。应用程序层包括一个或多个应用程序,应用程序层和应用程序框架层运行在安卓虚拟机中。安卓虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件,安卓虚拟机也可以直接运行二进制文件。
在现有技术中,应用程序的业务功能通过运行应用程序的功能模块实现。功能模块中包含有应用程序的核心逻辑代码。例如音乐播放应用程序的业务功能是播放音乐,则音乐播放应用程序的音乐播放功能需要通过运行音乐播放应用程序的功能模块实现。终端从应用商店下载应用程序的程序安装包之后,会将程序安装包存储在终端的存储器中。这样非法用户可以将应用程序的程序安装包下载下来之后,对程序安装包中的内容进行修改,通过修改应用程序的功能模块,可在应用程序实现业务功能时恶意插入一些非法的图片或强制访问某个非法链接等来达到一些非法目的,例如可以通过修改应用程序的功能模块,在应用程序中添加广告、植入病毒等,然后再把修改后的程序安装包上传至互联网供其他用户下载,那么其他用户下载该修改后的应用程序之后,修改后的应用程序的业务功能发生改变,这样会给用户造成不利的用户体验,甚至会造成严重经济损失。
为此,本申请提供了一种应用程序的处理方法,应用程序包括存储在终端的加载模块和存储在服务器的功能模块,所述功能模块用于实现所述应用程序的业务功能。例如,音乐播放应用程序的业务功能是播放音乐,则语音播放应用程序的功能模块是用于播放音乐的。终端从应用下载平台下载的应用程序的安装包中仅包含应用程序的加载模块,该加载模块用于在运行该应用程序时进行初始化和从服务器下载功能模块。当终端运行该应用程序时,先该运行加载模块,再由加载模块从服务器下载该应用程序的业务模块,以实现该应用程序的业务功能。也即是说,终端从应用下载的该应用程序的安装包中,仅仅包含该应用程序的“壳”(加载模块),而不包含用于实现该应用程序的业务功能的功能模块,也即不包含用于实现该应用程序的业务功能的核心逻辑。那么,非法用户从应用下载平台获取到了该应用程序的安装包之后,由于该应用程序的安装包中,仅仅包含该应用程序的“壳”,非法用户无法获得该应用程序的功能模块,也就无法修改应用程序的功能模块,从而可以保障终端运行应用程序时的安全性。
请参阅图4,图4是本申请实施例提供的一种应用程序的处理方法的流程示意图,该应用程序的处理方法可由本申请实施例的终端或本申请实施例的应用程序的处理装置实现。应用程序包括存储在终端的加载模块和存储在服务器的功能模块,功能模块用于实现应用程序的业务功能。也即是说,这种应用程序的处理方法可包括但不限于如下步骤:
S11、终端获取运行应用程序的运行指令;
用户可通过对终端进行操作触发运行指令运行该应用程序。例如,终端包括触控屏,用户可通过触控屏实现与终端的交互。触控屏显示有该应用程序的图标,那么用户可通过在触控屏点击该应用程序的图标来触发运行该应用程序的运行指令。例如在图5所示的示例中,应用程序为音乐播放应用程序,应用程序的图标显示为“Music”,用户可以通过该音乐播放应用程序的图标“Music”来出发运行该应用程序的运行指令。
终端在获取到运行应用程序的运行指令时,会为该应用程序创建一个新的目标进程,在终端的随机存储器(RAM)中为目标进程分配相应的内存区域用于运行该应用程序,并为目标进程分配安卓虚拟机,安卓虚拟机用于运行加载模块。为便于说明,下文将为目标进程分配的内存区域称作第一区域。
S12、终端运行应用程序的加载模块,以使得加载模块从目标服务器获取功能模块;
加载模块可以相当于应用程序的初始化模块,为运行应用程序时最先运行的部分,终端运行该应用程序时,先运行加载模块。
S13、终端利用加载模块向目标服务器发送功能模块获取请求,功能模块获取请求包括功能模块的功能模块信息。
加载模块用于在运行该应用程序时进行初始化和从服务器下载功能模块。加载模块中包括功能模块的功能模块信息,功能模块信息例如可以是该应用程序的程序标识信息或该功能模块的模块标识信息。应用程序的程序标识信息为能够表示该应用程序的唯一标识信息。例如,程序标识信息可以包括但不限于应用程序的名称、应用程序的版本号、应用程序在应用下载平台的编号中的一种或多种。相应的,模块标识信息为能够表示该功能模块的唯一标识信息。终端运行加载模块时,加载模块向目标服务器发送功能模块获取请求,功能模块获取请求包括功能模块的功能模块信息。
加载模块中还可包含目标服务器的服务器地址信息。这样加载模块可以根据目标服务器的服务器地址信息向目标服务器发送功能模块获取请求。
S14、目标服务器发送与加载模块匹配的功能模块至终端;
目标服务器中设置有功能模块数据库,功能模块数据库中包含有多个应用程序的功能模块及每个功能模块对应的功能模块信息。目标服务器可根据功能模块获取请求中的功能模块信息从功能模块数据库中查找与功能模块信息对应的功能模块,并将与功能模块信息对应的功能模块发送至终端。
S15、终端利用加载模块控制运行功能模块,以实现业务功能。
终端利用加载模块接收目标服务器根据功能模块的功能模块信息反馈的功能模块,接收功能模块之后,加载模块将功能模块加载至终端的随机存取存储器(RAM)中,并控制运行该功能模块,以实现该应用程序对应的业务功能。
具体地,终端可利用加载模块可将功能模块从目标服务器加载至终端的随机存储器的第一区域。更具体地,加载模块以将功能模块以stream的形式直接读取到目标进程的独立运行空间中。
本申请实施例的技术方案中,应用程序包括存储在终端的加载模块和存储在服务器的功能模块,终端获取到应用程序的运行指令之后,运行应用程序的加载模块,以使得加载模块从目标服务器获取该应用程序的功能模块,然后再由加载模块控制运行功能模块,以实现该应用程序的业务功能。这样,终端从应用下载的该应用程序的安装包中,仅仅包含该应用程序的“壳”,而不包含用于实现该应用程序的业务功能的功能模块,也即不包含用于实现该应用程序的业务功能的核心逻辑。那么,非法用户从应用下载平台获取到了该应用程序的安装包之后,由于该应用程序的安装包中,仅仅包含该应用程序的“壳”,非法用户无法获得该应用程序的功能模块,也就无法修改应用程序的功能模块,从而确保在终端运行的应用程序的功能模块是没有被修改的,可以保障终端运行应用程序时的安全性。
当获取到退出应用程序的退出指令时,终端会清除RAM中第一区域内的数据,以将第一区域空出来给其他进程。也即是说,当获取到退出应用程序的退出指令时,会将该功能模块从RAM中删除。这样退出该应用程序之后,终端本地不会留有该应用程序的功能模块,非法用户也就无法获得功能模块。进一步的保证终端运行应用程序时的安全性。
需要说明的是,本申请技术方案中,存储在终端的加载模块实际上是一个独立的应用程序文件。以安卓程序为例,开发人员在开发应用程序时,可将应用程序的资源文件和接口文件打包成一个apk文件,apk文件中的内容即构成了加载模块。将该apk文件作为应用程序的安装包,将该安装包上传至应用程序下载平台供用户下载,并将该应用程序对应的功能模块发送目标服务器,也即是说,应用程序的安装包中是不包含功能模块的。功能模块可以以软件开发工具包(sdk)的形式存储在目标服务器中,当终端运行该应用程序时,再由加载模块将该功能模块从目标服务器动态加载至终端的RAM中。目标服务器可以为应用程序下载平台提供的用于存储功能模块的服务器,也可以为开发人员自行指定的服务器。这样,当用户从应用下载平台获取到应用程序的安装包文件,在终端运行该应用程序时,会先运行该apk文件中的加载模块,然后由加载模块从目标服务器下载该应用程序的功能模块,加载模块将该应用程序的功能模块下载至终端之后,将该功能模块加载至终端的RAM中,并运行该功能模块,以实现该应用程序的业务功能。当退出应用程序时,RAM为该应用程序分配的内存空间的数据会被清除,那么也不会在终端本地留下功能模块,非法人员也就无法获得应用程序的功能模块。
具体地,以安卓程序为例,在运行应用程序时,安卓操作系统的Launcher获取到用户触发的运行该应用程序的运行指令之后,安卓操作系统创建一个新的目标进程,并在RAM分配独立的内存空间(即第一区域)给该目标进程,然后通过操作系统ActivityManagerService的startActivity功能,启动目标进程(即应用程序)的主Activity。然后加载模块在RAM中运行,从目标服务器下载功能模块,功能模块可以为Jar或aar文件,加载模块以stream的形式,直接把功能模块加载至RAM中,然后加载模块即可通过调用功能模块中的函数实现功能模块的功能。
在一个可选实施例中,功能模块获取请求包括功能模块的功能模块信息和加载模块的验证信息,加载模块向目标服务器发送功能模块获取请求之后,目标服务器先根据该加载模块的验证信息验证加载模块是否为合法的加载模块,当确认加载模块为合法的加载模块之后,再根据功能模块获取请求中的功能模块信息从功能模块数据库中查找与功能模块信息对应的功能模块,并将与功能模块信息对应的功能模块发送至终端。目标服务器中可存储有多个合法的加载模块的验证信息。开发人员可在将功能模块发送至目标服务器时,将该功能模块对应的加载模块的验证信息也发送至目标服务器,这样目标服务器中就会存储有该加载模块的验证信息。也可以是在开发人员将功能模块发送至目标服务器时,目标服务器提供一个与该功能模块对应的加载模块的验证信息给开发人员,开发人员再将该加载模块的验证信息放入加载模块中。这样目标服务器可通过判断目标服务器中是否存储有该加载模块的验证信息来判断该加载模块的合法性。
如此,目标服务器根据加载模块的验证信息验证加载模块为合法的加载模块之后,再将对应的功能模块发送至终端,这样可以避免非法用户用假冒的加载模块从目标服务器获取功能模块,从而更加有效地避免应用程序的功能模块被篡改,提升应用程序的安全性。
在一个可选地实施例中,目标服务器发送给终端的功能模块是利用目标加密方式进行加密的功能模块,在利用加载模块控制运行功能模块时,加载模块先通过与目标加密方式对应的目标解密方式对功能模块进行解密,再控制运行解密后的功能模块。这样即使非法人员通过特殊手段获取到了功能模块,由于并不知道解密方式,也就无法对该功能模块进行修改,从而更加有效地避免应用程序的功能模块被篡改,提升应用程序的安全性。开发人员可将功能模块利用目标加密方式加密之后再将功能模块发送至目标服务器,并将与该目标加密方式对应的目标解密方式放入加载模块,这样加载模块在运行功能模块之前,可以利用目标解密方式对加载模块进行解密。目标加密方式可以是但不限于RSA算法、高级加密标准(AES)、椭圆曲线数字签名算法(ECDSA)。
在一个可选的实施例中,加载模块和/或功能模块为经过代码混淆处理之后的文件。这样可以增大应用程序被破解的难度,更加有效地避免应用程序的功能模块被篡改。可以理解,可以是仅对加载模块做代码混淆处理,由于只有加载模块才能从目标服务器下载功能模块,那么如果非法人员无法破解加载模块,也就无法获得功能模块。也可以仅对功能模块做代码混淆处理,那么非法人员即使获取到了功能模块,由于功能模块进行了代码混淆处理,也无法得到该功能模块的核心逻辑,也就无法通过修改功模块来改变该应用程序的业务功能。还可以同时对加载模块和功能模块进行代码混淆处理,这样可以更好地保障应用程序的安全性,避免应用程序的功能模块被非法人员修改。
在一个可选地实施例中,功能模块为二进制文件。终端利用加载模块按照JAVA反射机制运行解密后的功能模块。开发人员按照在可将功能模块处理为二进制文件之后再将功能模块发送至目标服务器。然后在加载模块中添加按照JAVA反射机制调用功能模块中的函数的文件,这样终端运行加载模块时,就可以利用加载模块按照JAVA反射机制调用功能模块中的函数以实现该应用程序的业务功能。这样,即使非法人员通过特殊手段获取到了功能模块,由于功能模块为二进制文件,非法人员并不知道功能模块的类和函数的逻辑关系,更加不知道如何调用功能模块中的函数,也就无法对功能模块进行修改。
在一个优选实施例中,目标服务器发送给终端的功能模块是利用目标加密方式进行加密的功能模块,功能模块为二进制代码文件,功能模块和加载模块均进行了代码混淆处理。这样相当于给功能模块上了多重保险,首先,由于功能模块存储在目标服务器中,终端本地并没有功能模块,非法人员一般情况下无法获得功能模块。而且,即使非法人员通过特殊手段获取到了功能模块,功能模块是加密,非法人员也无法获得功能模块中的内容。再有,那么即使非法人员对功能模块解密成功,由于功能模块为二进制代码文件,也无法根据二进制代码得到功能模块中的核心逻辑。更进一步地,功能模块和加载模块均进行了代码混淆处理,这更进一步地给非法人员破解功能模块造成了苦难。这样,本申请的技术方案,通过多种手段保护功能模块的安全性,避免非法人员通过修改功能模块更改应用程序的业务功能。
请参阅图6,本申请实施例还提供一种应用程序的处理装置400,包括:
指令获取单元401,用于获取运行所述应用程序的运行指令;
运行单元402,用于运行所述应用程序的加载模块,以使得所述加载模块从目标服务器获取所述功能模块;
执行单元403,用于利用所述加载模块控制运行所述功能模块,以实现所述业务功能。
本申请实施例的技术方案中,应用程序包括存储在终端的加载模块和存储在服务器的功能模块,终端获取到应用程序的运行指令之后,运行应用程序的加载模块,以使得加载模块从目标服务器获取该应用程序的功能模块,然后再由加载模块控制运行功能模块,以实现该应用程序的业务功能。这样,终端从应用下载的该应用程序的安装包中,仅仅包含该应用程序的“壳”,而不包含用于实现该应用程序的业务功能的功能模块,也即不包含用于实现该应用程序的业务功能的核心逻辑。那么,非法用户从应用下载平台获取到了该应用程序的安装包之后,由于该应用程序的安装包中,仅仅包含该应用程序的“壳”,非法用户无法获得该应用程序的功能模块,也就无法修改应用程序的功能模块,从而确保在终端运行的应用程序的功能模块是没有被修改的,可以保障终端运行应用程序时的安全性。
在某些实施方式中,所述运行单元包括:
第一运行子单元,用于运行所述应用程序的加载模块,以利用所述加载模块向所述目标服务器发送功能模块获取请求,所述功能模块获取请求包括所述功能模块的功能模块信息;
第二运行子单元,用于利用加载模块接收所述目标服务器根据所述功能模块的功能模块信息反馈的功能模块。
在某些实施方式中,所述第二运行子单元具体用于:
利用加载模块接收所述目标服务器根据所述功能模块信息反馈的功能模块,并将所述功能模块加载至所述终端的随机存取存储器中。
在某些实施方式中,所述第二运行子单元具体用于:
将所述功能模块加载至所述终端的随机存储器的第一区域,所述第一区域为创建所述应用程序的目标进程时分配给所述目标进程的内存区域。
在某些实施方式中,所述处理装置还包括:
退出指令获取单元,用于获取退出所述应用程序的退出指令;
删除单元,用于将所述功能模块从所述随机存取存储器中删除。
在某些实施方式中,所述执行单元包括:
解密子单元,用于利用所述加载模块通过目标解密方式对所述功能模块进行解密;
执行子单元,用于利用所述加载模块控制运行解密后的功能模块。
在某些实施方式中,所述功能模块为二进制文件,所述执行子单元具体用于:
利用所述加载模块按照JAVA反射机制运行所述解密后的功能模块。
需要说明的是,上述实施例中对应用程序的处理方法各步骤的补充说明及技术效果也适用于上述各实施例的应用程序的处理装置,为避免冗余,在此不再赘述。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有卡应用程序的处理程序,其中应用程序的处理程序被处理器执行时,实现上述任一实施例的应用程序的处理方法的步骤。
其中,应用程序的处理程序被执行时所实现的方法及对应的技术效果可参照本申请应用程序的处理方法的各个实施例,此处不再赘述。
在上述实施例中,可全部或部分地通过软件、硬件、固件、或其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,也可以通过其它的方式实现。例如以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可结合或者可以集成到另一个系统,或一些特征可以忽略或不执行。另一点,所显示或讨论的相互之间的间接耦合或者直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例的方案的目的。
另外,在本申请各实施例中的各功能单元可集成在一个处理单元中,也可以是各单元单独物理存在,也可两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,或者也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质例如可包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或光盘等各种可存储程序代码的介质。
可以理解的是,凡是被控制或者被配置以用于执行本申请所描述的应用程序的处理方法的产品,如上述应用程序的处理装置、终端,均属于本申请所描述的相关产品的范畴。
Claims (10)
1.一种应用程序的处理方法,其特征在于,所述应用程序包括存储在终端的加载模块和存储在服务器的功能模块,所述功能模块用于实现所述应用程序的业务功能,所述方法包括:
获取运行所述应用程序的运行指令;
运行所述应用程序的加载模块,以使得所述加载模块从目标服务器获取所述功能模块;
利用所述加载模块控制运行所述功能模块,以实现所述业务功能。
2.根据权利要求1所示的处理方法,其特征在于,所述运行所述应用程序的加载模块,以使得所述加载模块从目标服务器获取所述功能模块包括:
运行所述应用程序的加载模块,以利用所述加载模块向所述目标服务器发送功能模块获取请求,所述功能模块获取请求包括所述功能模块的功能模块信息;
利用加载模块接收所述目标服务器根据所述功能模块的功能模块信息反馈的功能模块。
3.根据权利要求2所述的处理方法,其特征在于,所述利用加载模块接收所述目标服务器根据所述功能模块的功能模块信息反馈的功能模块包括:
利用加载模块接收所述目标服务器根据所述功能模块信息反馈的功能模块,并将所述功能模块加载至所述终端的随机存取存储器中。
4.根据权利要求3所述的处理方法,其特征在于,所述将所述功能模块存储至所述终端的随机存取存储器中包括:
将所述功能模块加载至所述终端的随机存储器的第一区域,所述第一区域为创建所述应用程序的目标进程时分配给所述目标进程的内存区域。
5.根据权利要求3或4所述的处理方法,其特征在于,所述处理方法还包括步骤:
获取退出所述应用程序的退出指令;
将所述功能模块从所述随机存取存储器中删除。
6.根据权利要求1-5任一项所述的处理方法,其特征在于,所述利用所述加载模块控制运行所述功能模块包括:
利用所述加载模块通过目标解密方式对所述功能模块进行解密;
利用所述加载模块控制运行解密后的功能模块。
7.根据权利要求1-5任一项所述的处理方法,其特征在于,所述功能模块为二进制文件,所述利用所述加载模块控制运行所述功能模块包括:
利用所述加载模块按照JAVA反射机制运行所述解密后的功能模块。
8.一种应用程序的处理装置,其特征在于,包括:
指令获取单元,用于获取运行所述应用程序的运行指令;
运行单元,用于运行所述应用程序的加载模块,以使得所述加载模块从目标服务器获取所述功能模块;
执行单元,用于利用所述加载模块控制运行所述功能模块,以实现所述业务功能。
9.一种终端,其特征在于,包括处理器、存储器,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-7任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,存储用于处理应用程序的计算机程序,其中,所述计算机程序使得计算机执行上述任一实施例所述的应用程序的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910671083.XA CN112363771B (zh) | 2019-07-24 | 2019-07-24 | 应用程序的处理方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910671083.XA CN112363771B (zh) | 2019-07-24 | 2019-07-24 | 应用程序的处理方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112363771A true CN112363771A (zh) | 2021-02-12 |
CN112363771B CN112363771B (zh) | 2024-05-28 |
Family
ID=74516327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910671083.XA Active CN112363771B (zh) | 2019-07-24 | 2019-07-24 | 应用程序的处理方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363771B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254090A (zh) * | 2021-06-04 | 2021-08-13 | 深圳市火乐科技发展有限公司 | 一种应用管理方法、装置及投影设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873807B1 (en) * | 2006-07-28 | 2011-01-18 | American Megatrends, Inc. | Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware |
CN105590056A (zh) * | 2014-10-22 | 2016-05-18 | 中国银联股份有限公司 | 基于环境检测的动态应用功能控制方法 |
CN108363612A (zh) * | 2018-03-07 | 2018-08-03 | 江苏电力信息技术有限公司 | 基于类装载器实现的j2ee模块热部署及调用信息统计方法 |
-
2019
- 2019-07-24 CN CN201910671083.XA patent/CN112363771B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873807B1 (en) * | 2006-07-28 | 2011-01-18 | American Megatrends, Inc. | Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware |
CN105590056A (zh) * | 2014-10-22 | 2016-05-18 | 中国银联股份有限公司 | 基于环境检测的动态应用功能控制方法 |
CN108363612A (zh) * | 2018-03-07 | 2018-08-03 | 江苏电力信息技术有限公司 | 基于类装载器实现的j2ee模块热部署及调用信息统计方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254090A (zh) * | 2021-06-04 | 2021-08-13 | 深圳市火乐科技发展有限公司 | 一种应用管理方法、装置及投影设备 |
CN113254090B (zh) * | 2021-06-04 | 2024-05-28 | 深圳市火乐科技发展有限公司 | 一种应用管理方法、装置及投影设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112363771B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
US10614212B1 (en) | Secure software containers | |
CN110178136B (zh) | 现场可编程门阵列程序的签名验证的方法和设备 | |
US9904557B2 (en) | Provisioning of operating systems to user terminals | |
CN102473220B (zh) | 信息处理装置、信息处理方法以及程序分发系统 | |
CN106295255B (zh) | 应用程序的加固方法和装置 | |
TWI496023B (zh) | 用於部分保全記憶體處理的軟體修改技術 | |
CN107870793B (zh) | 一种应用程序中加载so文件的方法及装置 | |
US9344406B2 (en) | Information processing device, information processing method, and computer program product | |
CA3127882C (en) | Short message sending method, device, and computer system | |
EP3627425A1 (en) | Se application processing method, user terminal, and server | |
CN114547558A (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
CN111241556A (zh) | 一种数据安全存储方法、装置、存储介质及终端 | |
CN112363771B (zh) | 应用程序的处理方法及相关产品 | |
CN113127844A (zh) | 一种变量访问方法、装置、系统、设备和介质 | |
CN107995230B (zh) | 一种下载方法及终端 | |
KR102124330B1 (ko) | 어플리케이션 업데이트 방법 및 이를 지원하는 단말 | |
CN112395096A (zh) | 远程函数调用的处理方法、装置、电子设备及存储介质 | |
CN106648770B (zh) | 一种应用程序安装包的生成方法、加载方法及装置 | |
CN109933960B (zh) | 服务调用控制方法、服务调用方法、装置及终端 | |
US20160275271A1 (en) | User Terminal And Method For Protecting Core Codes Using Peripheral Device of User Terminal | |
CN110046504B (zh) | 基于Linker的SO文件隐藏方法、储存介质及装置 | |
CN108509329B (zh) | 对客户端上执行的操作进行验证的方法及装置 | |
CN113761587A (zh) | 用于签名校验的方法和装置 | |
CN111562916B (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 |