CN114253844A - 一种程序运行方法、装置、电子设备及存储介质 - Google Patents
一种程序运行方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114253844A CN114253844A CN202111544627.XA CN202111544627A CN114253844A CN 114253844 A CN114253844 A CN 114253844A CN 202111544627 A CN202111544627 A CN 202111544627A CN 114253844 A CN114253844 A CN 114253844A
- Authority
- CN
- China
- Prior art keywords
- module
- verification
- executable
- program
- memory address
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种程序运行方法、装置、电子设备及存储介质,该方法包括:获取目标程序的事件指令;第一目标程序运行在第一内存地址;根据事件指令从云端下载事件指令对应的可执行模块,并将可执行模块加载至第二内存地址;控制可执行模块进行执行;在可执行模块执行完成后,释放第二内存地址内的可执行模块;其中,第一内存地址和第二内存地址对应于同一进程。通过这样的方式,使得可执行模块仅在内存中进行运行,并且在可执行程序运行完成后,将内存进行释放,如此用户无法获取可执行模块的原始代码。由于用户无法直接获取到相应的代码,且实际功能的执行也不是在云端,使得用于难以通过反向编译或跳过验证等方式对目标程序进行破解。
Description
技术领域
本发明涉及程序防破解领域,尤其涉及一种程序运行方法、装置、电子设备及存储介质。
背景技术
现有的很多软件程序,都会使用授权模式。只有使用验证码或者线上付费获取了相应的权限,才能使用软件程序的完整功能。
以验证码验证后获得功能权限为例,该方法,一般会使用加解密算法,对用户输入的验证码(如CDkey)进行验证,只有通过验证后,才能使用软件程序的完整功能。
该类软件程序,对验证码的运行一般分为两种方式。第一种是,本地客户端内直接存储有相应的加解密算法,能够直接对验证码进行验证,并输出验证结果。第二种是将验证码上传至云端,由云端的加解密算法对验证码进行验证码进行验证,并回传验证结果(验证通过或验证失败)。
但是,这两种方法都存在被破解的隐患。例如,针对第一种方法,可以通过对程序内的加解密算法进行暴力破解(如反向编译等),直接破译出加解密算法。针对第二种,可以监测云端回传的数据指令,进行数据破解,使得在验证时,可以本地主动模拟出一个验证通过的数据指令,从而跳过云端验证的步骤。
发明内容
有鉴于此,本发明提供一种一种程序运行方法、装置、电子设备及存储介质,旨在至少部分解决现有技术中存在的问题。
根据本申请的一个方面,提供一种程序运行方法,包括:
获取目标程序的事件指令;所述第一目标程序运行在第一内存地址;
根据所述事件指令从云端下载所述事件指令对应的可执行模块,并将所述可执行模块加载至第二内存地址;
控制所述可执行模块进行执行;
在所述可执行模块执行完成后,释放所述第二内存地址内的所述可执行模块;
其中,所述第一内存地址和所述第二内存地址对应于同一进程,以使所述目标程序和所述可执行模块在同一进程内进行执行。
在本申请的一种示例性实施例中,所述可执行模块包括验证模块;所述目标程序内包括至少一个被锁定功能模块;
所述控制所述可执行模块进行执行,包括:
接收待验证信息;
将所述待验证信息输入所述验证模块,并接受所述验证模块输出的验证结果;
根据所述验证结果,解锁所述被锁定功能模块;
其中,解锁后的所述被锁定功能模块储存于所述目标程序所在计算机的硬盘内。
在本申请的一种示例性实施例中,所述可执行模块包括:核心验证模块和核心功能模块;所述目标程序内包括原始验证模块和原始功能模块;
所述控制所述可执行模块进行执行,包括:
将所述核心验证模块加载入所述原始验证模块,得到完整验证模块;
接收待验证信息;
控制所述完整验证模块验证所述待验证信息;
在所述待验证信息的验证结果为通过的情况下,将所述核心功能模块加载入所述原始功能模块,得到完整功能模块;
其中,所述核心验证模块仅储存于内存中。
在本申请的一种示例性实施例中,所述可执行模块包括:验证模块;
所述控制所述可执行模块进行执行,包括:
接收待验证信息;
将所述待验证信息输入所述验证模块,并接受所述验证模块输出的验证结果;
根据所述验证结果,从所述云端下载功能模块;
将所述功能模块加载进所述目标程序对应的硬盘地址内。
在本申请的一种示例性实施例中,所述事件指令用于启动目标功能;所述目标程序内包括所述目标功能对应的原始功能模块;所述原始功能模块无法独立执行所述目标功能;
所述控制所述可执行模块进行执行,包括:
将所述可执行模块加载入所述原始功能模块,以使被加载后的所述功能模块能够执行所述目标功能;或
控制所述可执行模块和所述原始功能模块联合执行所述目标功能。
在本申请的一种示例性实施例中,在所述获取目标程序的事件指令之前,所述方法还包括:
在当前操作系统创建虚拟操作系统;
将目标程序加载进所述虚拟操作系统,以使所述目标程序能够在所述虚拟操作系统内运行;
相应的,
所述第一内存地址对应于所述操作系统的第一虚拟内存地址,所述第二内存地址对应于所述操作系统的第二虚拟内存地址。
根据本申请的一个方面,提供一种程序运行方法,包括:
接收可执行模块获取指令;
根据所述可执行模块获取指令,确定对应的可执行模块;
以内存运行格式回传所述可执行模块,以使所述可执行模块能够直接加载进第二内存地址。
根据本申请的一个方面,提供一种程序运行装置,包括:
获取模块,用于获取目标程序的事件指令;所述第一目标程序运行在第一内存地址;
下载模块,用于根据所述事件指令从云端下载所述事件指令对应的可执行模块,并将所述可执行模块加载至第二内存地址;
执行模块,用于控制所述可执行模块进行执行;
释放模块,用于在所述可执行模块执行完成后,释放所述第二内存地址内的所述可执行模块;
其中,所述第一内存地址和所述第二内存地址对应于同一进程,以使所述目标程序和所述可执行模块在同一进程内进行执行。
根据本申请的一个方面,提供一种电子设备,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行上述任一项所述方法的步骤。
根据本申请的一个方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行上述任一项所述方法的步骤。
本申请提供的程序运行方法,在目标程序运行过程中,能够根据事件指令从云端下载对应的可执行模块至第二内存地址中,由于目标程序所在的第一内存地址和第二内存地址对应于同一进程,使得可执行模块和目标程序可以合并成一个程序进行运行。其中,可执行模块可以为用于验证验证码的验证模块,也可以是执行其他核心功能的功能模块。通过这样的方式,使得可执行模块仅在内存中进行运行,并且在可执行程序运行完成后,将内存进行释放,如此并不会将相应的代码等存储在本地硬盘上,用户也无法获取可执行模块的原始代码。这样,无论可执行模块是验证模块还是功能模块,由于用户无法直接获取到相应的代码,且实际功能的执行也不是在云端,使得用于难以通过反向编译或跳过验证等方式对目标程序进行破解。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本实施例提供的一种程序运行方法的流程图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
实施例1:
根据图1所示,本实施例提供一种程序运行方法,本实施例可用于常见的需要验证的应用程序等,包括以下步骤:
步骤S100,获取目标程序的事件指令;所述第一目标程序运行在第一内存地址;
步骤S200,根据所述事件指令从云端下载所述事件指令对应的可执行模块,并将所述可执行模块加载至第二内存地址;
步骤S300,控制所述可执行模块进行执行;
步骤S400,在所述可执行模块执行完成后,释放所述第二内存地址内的所述可执行模块;
其中,所述第一内存地址和所述第二内存地址对应于同一进程,以使所述目标程序和所述可执行模块在同一进程内进行执行。
事件指令一般由目标程序生成,在实际实施中,以验证码验证举例,用户在程序界面上输入CDkey后,点击“验证”按钮,目标程序内部就会生成一个事件指令。该事件指令表征目标程序要启动验证码验证功能。在其他实施例中,事件指令也可以表征要启动其他功能,如“打水印”、“图像编辑”等。本实施中,以“获取”来说明事件指令,并不一定指从外部获取,也可以目标程序内部相关模块获取到目标程序内部生成的事件指令。
获取到事件指令后,建立与云端服务器的通讯通道。使得云端能够获取到目标程序的相应需求,并根据需求回传可执行程序。其中,可执行程序可以为可直接在内存中进行运行的数据格式。以使得本地无需再对可执行程序进行转换。
本实施例提供的程序运行方法,在目标程序运行过程中,能够根据事件指令从云端下载对应的可执行模块至第二内存地址中,由于目标程序所在的第一内存地址和第二内存地址对应于同一进程,使得可执行模块和目标程序可以合并成一个程序进行运行。此处,在具体实施时,可以表现为可执行模块和目标程序在运行中可以进行信息交互,或可执行模块和目标程序内的其他模块联系进行运行,或直接将可执行模块当成部分执行代码嵌入目标程序内等多种方式。其中,可执行模块可以为用于验证验证码的验证模块,也可以是执行其他核心功能的功能模块。
通过这样的方式,使得可执行模块仅在内存中进行运行,并且在可执行程序运行完成后,将内存进行释放,如此并不会将相应的代码等存储在本地硬盘上,用户也无法获取可执行模块的原始代码。这样,无论可执行模块是验证模块还是功能模块,由于用户无法直接获取到相应的代码,且实际功能的执行也不是在云端,使得用于难以通过反向编译或跳过验证等方式对目标程序进行破解。
在实际应用中,可执行程序可以根据实际的软件程序类型和需求,选择性设置成验证模块或其他功能模块。需要说明书的是,可执行程序并不一定是一个具有完整功能或能够实际执行完整功能的模块,也可以仅仅是一部分核心代码或核心算法等。其本身可以是嵌入其他代码或模块中才能进行运行的。
而可执行模块设置成不同的情况,也会有相应不同的效果。本申请中,将会以不同实施例的方式进行相应的说明书。具体地:
实施例2:
在本申请的一种示例性实施例中,在实施例1的基础上,本实施例中所述可执行模块包括验证模块;所述目标程序内包括至少一个被锁定功能模块;所述被锁定功能模块无法直接执行对应的功能。
所述控制所述可执行模块进行执行,包括:
接收待验证信息;
将所述待验证信息输入所述验证模块,并接受所述验证模块输出的验证结果;
根据所述验证结果,解锁所述被锁定功能模块;
其中,解锁后的所述被锁定功能模块储存于所述目标程序所在计算机的硬盘内,验证模块仅工作在目标程序所在计算的内存中,全程不会存储到评判之中。
具体的,待验证消息可以是用户在目标程序的应用界面上输入的验证码等。验证模块对验证码进行验证,并输出验证结果,验证结果用于表征验证通过或验证失败。
在验证成功的情况下,启动相应的修改功能,能够对存储于本地硬盘内的目标程序相对应的文件或代码等进行修改,以使得被锁定功能模块被解锁,从而能够执行相应的功能。同时,由于解锁后的被锁定功能模块是存储于计算机硬盘内的,后续再使用时,便可以不再进行验证的步骤。
其中,被锁定功能模块的锁定方式可以是对功能模块相关代码的至少部分进行加密,使其无法直接直接,相应的,解锁动作为将对应代码进行解密,并将解密后的代码仍然储存于硬盘上。锁定方式也可以是,在初始下载目标程序至计算机内盘时,不附带用于启动该功能模块的权限文件,或将该权限文件进行加密等方式。相应的,解锁动作也是将权限文件放置到本地硬盘或对权限文件解密等。
使用本实施例提供的方案对目标程序进行验证码验证并解锁相关功能模块,可以让验证模块仅在内存中运行,并不会在硬盘中停留,使得用户难以获取到验证模块的相关代码,以及解锁被锁定功能模块的解锁逻辑。提到高了目标程序的安全性。同时,由于进行验证时,只需要从云端下载验证模块(验证模块的体量通常小于功能模块的体量),并不需要下载功能模块,使得下载量较小,加快验证速度。进一步的,由于验证步骤和功能模块的具体计算过程,都是在本地使用本地计算机的资源完成的。使得本方法对云端的性能要求交底,降低了部署云端服务器的成本。(本地计算机通常都会具有一般的处理能力,故而也不会影响本地计算机的整体性能)
实施例3:
在本申请的一种示例性实施例中,在实施例1的基础上,所述可执行模块包括:核心验证模块和核心功能模块;所述目标程序内包括原始验证模块和原始功能模块;
所述控制所述可执行模块进行执行,包括:
将所述核心验证模块加载入所述原始验证模块,得到完整验证模块;
接收待验证信息;
控制所述完整验证模块验证所述待验证信息;
在所述待验证信息的验证结果为通过的情况下,将所述核心功能模块加载入所述原始功能模块,得到完整功能模块;
其中,所述核心验证模块仅储存于内存中。
具体的,待验证消息可以是用户在目标程序的应用界面上输入的验证码等。验证模块对验证码进行验证,并输出验证结果,验证结果用于表征验证通过或验证失败。
原始验证模块和原始功能模块,都会在计算机下载目标程序时,被下载到本地硬盘内。但原始验证模块和原始功能模块(可以为多个)都无法自己独立完成相应的功能。
核心验证模块可以是一个为了完成验证操作的一个子函数,或仅是一段计算公式对应的代码。可以理解为核心验证模块和原始验证模块共同执行,才能完成验证码的验证。其中共同执行可以是同步的并行运行或串行运行或直接将核心功能模块嵌入到原始功能模块中间的一个节点内进行运行。核心功能模块及原始功能模块的运行原理与上述雷同,仅是实现的功能不同,此处不加赘述。
在目标程序运行后,原始功能模块和原始验证模块会被加载进计算机的内存中。此时,从云端下载的核心验证模块先与原始功能模块开始进行共同执行,以实现对验证码的验证操作。待验证通过后,将核心功能模块和原始功能模块进行结合,得到完整功能模块。同时,完整功能模块仅在内存中进行运行,待功能执行完毕或目标程序关闭后,控制CUP释放相应的内存。
使用本实施例提供的方案对目标程序进行验证码验证并执行相关功能模块,可以让完整验证模块和完整功能模块仅在内存中运行,并不会在硬盘中停留,使得用户难以获取到核心验证模块和核心功能模块的相关代码,提到高了目标程序的安全性。本实施例中,验证模块可以不采用CDkey的形式,也可以采用每次开启目标程序或使用功能时,将用户的账户信息和/或计算机的唯一固件地址输入完整验证模块进行验证,只有每次验证完成后,才能启动相关的功能。这样,计算机的硬盘上,始终都不会存储有功能模块的完整代码,避免了恶意用户对目标程序进行拆解,单独破解功能模块的情况发生。
同时,由于原始验证模块和原始功能模块是存储于本地硬盘的,而核心验证模块和核心功能模块只需要设置成核心的代码或计算公式即可。使得核心验证模块和核心功能模块的数据体量可以尽可能的缩小,,使得下载量较小,加快验证速度。进一步的,由于验证步骤和功能模块的具体计算过程,都是在本地使用本地计算机的资源完成的。使得本方法对云端的性能要求交底,降低了部署云端服务器的成本。
实施例4:
在本申请的一种示例性实施例中,在实施例1的基础上,所述可执行模块包括:验证模块。目标程序在下载到本地硬盘中的数据中,不包含功能模块的相关文件或代码等。
所述控制所述可执行模块进行执行,包括:
接收待验证信息;
将所述待验证信息输入所述验证模块,并接受所述验证模块输出的验证结果;
根据所述验证结果,从所述云端下载功能模块;
将所述功能模块加载进所述目标程序对应的硬盘地址内。
本实施例中,接收待验证信息和待验证信息的验证过程和实施例2、3雷同,且验证模块也是仅工作在内存中,其相关的实现方法可直接参考前文,此处不加赘述。
使用本实施例提供的方案对目标程序进行验证码验证和下载功能模块到本地硬盘的方案,在进行验证码验证时,并不用先从云端下载功能模块,使得验证步骤可以先进行,加快了验证的速度。同时,功能模块在验证通过后,可以直接下载到本地硬盘中,使得本地硬盘中可以存储功能模块,这样就不用每次都进行验证的操作了。
实施例5:
在本申请的一种示例性实施例中,所述事件指令用于启动目标功能;所述目标程序内包括所述目标功能对应的原始功能模块;所述原始功能模块无法独立执行所述目标功能。
所述控制所述可执行模块进行执行,包括:
将所述可执行模块加载入所述原始功能模块,以使被加载后的所述功能模块能够执行所述目标功能;或
控制所述可执行模块和所述原始功能模块联合执行所述目标功能。
本实施例中,可执行模块可以是前文中的核心功能模块,也可以是一些用于解锁或启动原始功能模块的代码指令。本实施例在实施时,减免了验证的步骤,但是被加载后的所述功能模块或可执行模块均仅在内存中进行运行。本方案可以适用于通过账号登录或直接免费使用的软件程序。但是,这类程序也有对核心计算方式保密的需求,故而,即使时免费给用户使用的,那也要对相应的技术秘密进行保密。而采用本实施例提供的程序运行方式,能够完整实现对应功能的“功能模块”(即前述的被加载后的所述功能模块或可执行模块),仅在内存中进行运行以执行相应的功能。在功能执行完成或目标程序关闭后,释放内存,即可避免相关的完整文件或代码存储到硬盘上被恶意用户获取。同时,本方案中,原始功能模块(数据体量大于可执行模块)是存储在本地硬盘上的,每次在执行功能时,只需要从云端下载较小的可执行模块,降低了下载数据的体量,加快了功能实现的效率。
实施例6:
在本申请的一种示例性实施例中,在实施例1的基础上,在所述获取目标程序的事件指令之前,所述方法还包括:
在当前操作系统创建虚拟操作系统;
将目标程序加载进所述虚拟操作系统,以使所述目标程序能够在所述虚拟操作系统内运行;
相应的,
实施例1中所述第一内存地址对应于所述操作系统的第一虚拟内存地址,所述第二内存地址对应于所述操作系统的第二虚拟内存地址。
本实施例中,创建虚拟操作系统的可以是目标程序本身的功能,或使用其他科创建虚拟操作系统的工具实现。本实施例在实施时,目标程序是在虚拟操作操作系统中进行运行的。而虚拟操作系统本身是受控的(软件程序开发者),其可以自己指定其运行的虚拟内存地址的(可由软件程序开发者设置)。这样,在将目标程序加载进内存时,其会被加载到虚拟操作系统指定的第一虚拟内存地址内,而在目标程序运行时,可以直接让虚拟操作系统和云端建立通信通道,虚拟操作系统从云端下载响应的可执行模块,并加载到第二虚拟内存中。这样即使恶意用户对目标程序或计算机内存设置了监控软件。但由于实际执行云端下载和加载到内存的操作是虚拟操作系统做的,这样,虚拟操作系统的执行逻辑和加载编程方式,并不是根据当前的实际操作系统规则完成的。如此,可以让恶意用户,难以确定出实际运行的内存地址、执行逻辑和加载编程方式。进步一加强了目标程序运行的安全性。
根据本申请的一个方面,提供一种程序运行方法,本实施例应用于和目标程序对应的云端服务器,具体步骤包括:
接收可执行模块获取指令;可执行模块获取指令由目标程序所在计算机发送。可直接理解为由目标程序发送。
根据所述可执行模块获取指令,确定对应的可执行模块。由于启动的功能不同,可执行模块在云端服务器中可存储多个,这样在云端回传时,就需要根据获取指令回传对应的可执行模块。
以内存运行格式回传所述可执行模块,以使所述可执行模块能够直接加载进第二内存地址。
云端服务器回传内的可执行模块,由于不会在目标程序的硬盘进行存储,故而云端服务器会先将其转换为内存运行的格式(格式仅为代称,可以通用的理解为转换数据体结构或代码结构等),这样目标程序所在计算机可以直接将可执行模块加载进内存,而不用在硬盘进行停留。同时,由于格式转化是在云端完成的,即使恶意用户在本地计算机的内存获取了相应的数据,也很难逆推出原始的代码。进一步提高了目标程序的安全性。
根据本申请的一个方面,提供一种程序运行装置,包括:
获取模块,用于获取目标程序的事件指令;所述第一目标程序运行在第一内存地址;
下载模块,用于根据所述事件指令从云端下载所述事件指令对应的可执行模块,并将所述可执行模块加载至第二内存地址;
执行模块,用于控制所述可执行模块进行执行;
释放模块,用于在所述可执行模块执行完成后,释放所述第二内存地址内的所述可执行模块;
其中,所述第一内存地址和所述第二内存地址对应于同一进程,以使所述目标程序和所述可执行模块在同一进程内进行执行。
根据本申请的一个方面,提供一种程序运行装置,包括:
接收模块,用于接收可执行模块获取指令;
确定模块,用于根据所述可执行模块获取指令,确定对应的可执行模块;
回传模块,用于以内存运行格式回传所述可执行模块,以使所述可执行模块能够直接加载进第二内存地址。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
根据本发明的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
其中,所述储存器存储有程序代码,所述程序代码可以被所述处理器执行,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(RAM)和/或高速缓存储存器,还可以进一步包括只读储存器(ROM)。
储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种程序运行方法,其特征在于,包括:
获取目标程序的事件指令;所述第一目标程序运行在第一内存地址;
根据所述事件指令从云端下载所述事件指令对应的可执行模块,并将所述可执行模块加载至第二内存地址;
控制所述可执行模块进行执行;
在所述可执行模块执行完成后,释放所述第二内存地址内的所述可执行模块;
其中,所述第一内存地址和所述第二内存地址对应于同一进程,以使所述目标程序和所述可执行模块在同一进程内进行执行。
2.根据权利要求1所述的程序运行方法,其特征在于,所述可执行模块包括验证模块;所述目标程序内包括至少一个被锁定功能模块;
所述控制所述可执行模块进行执行,包括:
接收待验证信息;
将所述待验证信息输入所述验证模块,并接受所述验证模块输出的验证结果;
根据所述验证结果,解锁所述被锁定功能模块;
其中,解锁后的所述被锁定功能模块储存于所述目标程序所在计算机的硬盘内。
3.根据权利要求1所述的程序运行方法,其特征在于,所述可执行模块包括:核心验证模块和核心功能模块;所述目标程序内包括原始验证模块和原始功能模块;
所述控制所述可执行模块进行执行,包括:
将所述核心验证模块加载入所述原始验证模块,得到完整验证模块;
接收待验证信息;
控制所述完整验证模块验证所述待验证信息;
在所述待验证信息的验证结果为通过的情况下,将所述核心功能模块加载入所述原始功能模块,得到完整功能模块;
其中,所述核心验证模块仅储存于内存中。
4.根据权利要求1所述的程序运行方法,其特征在于,所述可执行模块包括:验证模块;
所述控制所述可执行模块进行执行,包括:
接收待验证信息;
将所述待验证信息输入所述验证模块,并接受所述验证模块输出的验证结果;
根据所述验证结果,从所述云端下载功能模块;
将所述功能模块加载进所述目标程序对应的硬盘地址内。
5.根据权利要求1所述的程序运行方法,其特征在于,所述事件指令用于启动目标功能;所述目标程序内包括所述目标功能对应的原始功能模块;所述原始功能模块无法独立执行所述目标功能;
所述控制所述可执行模块进行执行,包括:
将所述可执行模块加载入所述原始功能模块,以使被加载后的所述功能模块能够执行所述目标功能;或
控制所述可执行模块和所述原始功能模块联合执行所述目标功能。
6.根据权利要求1-5任一项所述的程序运行方法,其特征在于,在所述获取目标程序的事件指令之前,所述方法还包括:
在当前操作系统创建虚拟操作系统;
将目标程序加载进所述虚拟操作系统,以使所述目标程序能够在所述虚拟操作系统内运行;
相应的,
所述第一内存地址对应于所述操作系统的第一虚拟内存地址,所述第二内存地址对应于所述操作系统的第二虚拟内存地址。
7.一种程序运行方法,其特征在于,包括:
接收可执行模块获取指令;
根据所述可执行模块获取指令,确定对应的可执行模块;
以内存运行格式回传所述可执行模块,以使所述可执行模块能够直接加载进第二内存地址。
8.一种程序运行装置,其特征在于,包括:
获取模块,用于获取目标程序的事件指令;所述第一目标程序运行在第一内存地址;
下载模块,用于根据所述事件指令从云端下载所述事件指令对应的可执行模块,并将所述可执行模块加载至第二内存地址;
执行模块,用于控制所述可执行模块进行执行;
释放模块,用于在所述可执行模块执行完成后,释放所述第二内存地址内的所述可执行模块;
其中,所述第一内存地址和所述第二内存地址对应于同一进程,以使所述目标程序和所述可执行模块在同一进程内进行执行。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111544627.XA CN114253844A (zh) | 2021-12-16 | 2021-12-16 | 一种程序运行方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111544627.XA CN114253844A (zh) | 2021-12-16 | 2021-12-16 | 一种程序运行方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253844A true CN114253844A (zh) | 2022-03-29 |
Family
ID=80792647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111544627.XA Pending CN114253844A (zh) | 2021-12-16 | 2021-12-16 | 一种程序运行方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253844A (zh) |
-
2021
- 2021-12-16 CN CN202111544627.XA patent/CN114253844A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI598814B (zh) | 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法 | |
CN103748594B (zh) | 针对arm*trustzonetm实现的基于固件的可信平台模块 | |
RU2744849C2 (ru) | Использование аппаратно-обеспечиваемой защищенной изолированной области для предотвращения пиратства и мошенничества в электронных устройствах | |
US20120090021A1 (en) | Platform Specific Application Building | |
CN110333868B (zh) | 用于生成子应用的安装包的方法和系统 | |
CN101300583A (zh) | 用于可信赖移动电话的简单可伸缩和可配置安全启动 | |
US9158902B2 (en) | Software modification for partial secure memory processing | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
KR20140039319A (ko) | 소프트웨어 런-타임 프로브넌스 | |
CN111143854B (zh) | 芯片的安全启动装置、系统及方法 | |
CN103248495A (zh) | 一种应用内付费的方法、服务器、客户端和系统 | |
US20230062521A1 (en) | Gateway | |
WO2020063002A1 (zh) | 一种数据管理方法、装置和服务器 | |
US8863273B2 (en) | Method of using an account agent to access superuser account shell of a computer device | |
CN114048506A (zh) | 应用控制方法、装置、设备以及存储介质 | |
CN117453343A (zh) | 虚拟机度量、机密计算认证方法、设备、系统及存储介质 | |
US20200210600A1 (en) | Data center secure debug unlock | |
CN114253844A (zh) | 一种程序运行方法、装置、电子设备及存储介质 | |
CN109086080B (zh) | 信息处理方法、信息处理装置、程序和记录介质 | |
US20090210948A1 (en) | Remote computer rebooting tool | |
JP2015185071A (ja) | 情報追跡システム及び情報追跡方法 | |
CN112953965B (zh) | 客户端登录方法及系统、客户端、介质、计算设备 | |
CN117121435A (zh) | 连接弹性多因素认证 | |
KR101745821B1 (ko) | 시큐어 부팅 방법 및 시스템 | |
CN109167785A (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 |