一种动态库处理方法、装置、电子设备及存储介质与流程

文档序号:26050986发布日期:2021-07-27 15:26阅读:65来源:国知局
一种动态库处理方法、装置、电子设备及存储介质与流程

本发明实施例涉及计算机技术,尤其涉及一种动态库处理方法、装置、电子设备及存储介质。



背景技术:

计算机的应用程序可以通过加载动态库的方式实现程序共享执行任务所必需的代码和其他资源。

现有技术中,往往直接对目标动态库进行加载,由于存在被破解的可能性,降低了动态库文件处理的安全性。



技术实现要素:

本发明实施例提供一种动态库处理方法、装置、电子设备及存储介质,以实现提高动态库文件处理的安全性。

第一方面,本发明实施例提供了一种动态库处理方法,该方法包括:

根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库;

基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥;

基于运行的程序获取与其关联的所述加密动态库;

根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。

第二方面,本发明实施例还提供了一种动态库处理装置,该装置包括:

动态库加密模块,用于根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库;

密钥获取方式确定模块,用于基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥;

加密动态库获取模块,用于基于运行的程序获取与其关联的所述加密动态库;

动态库加载模块,用于根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。

第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的动态库处理方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的动态库处理方法。

本发明实施例通过根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库;基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥;基于运行的程序获取与其关联的所述加密动态库;根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。解决直接对目标动态库进行加载,由于存在被破解的可能性,降低了动态库文件处理的安全性的问题,实现提高动态库文件处理安全性的效果。

附图说明

图1为本发明实施例一提供的一种动态库处理方法的流程图;

图2为本发明实施例二提供的一种动态库处理装置的结构示意图;

图3为本发明实施例三提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种动态库处理方法的流程图,本实施例可适用于加载动态库的情况,该方法可以由本发明实施例所提供的动态库处理装置来执行,该装置可以由软件和/或硬件的方式实现。参见图1,本实施例提供的动态库处理方法,包括:

步骤110、根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库。

其中,动态库和程序的预设关联关系为程序在编写时已经预定好的程序与动态库的关系,目标动态库为程序运行时所需的动态库,可以从所有候选动态库中根据预设关联关系获取。获取方式可以为将候选动态库保存至服务器中,当程序运行需要时从候选动态库中选择目标动态库进行下载,从而提高动态库的安全性。获取时可以分别获取不同种类的目标动态库,也可以将不同目标动态库生成整体文件统一进行获取,本实施例对此不作限制。

将目标动态库整体进行加密,得到加密动态库,加密算法可以根据实际情况进行选择,例如使用高级加密标准算法,本实施例对此不作限制。

步骤120、基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥。

其中,基于不同程序运行的需要,例如保密要求或硬件支持等原因导致程序运行时可能处于不同的运行环境。

可以根据程序的运行环境设置密钥存储方式,例如若预先确定程序运行环境为实时联网环境,则可将解密秘钥及其它相关信息存储在服务器上;若预先确定程序运行环境非实时联网环境,则可将解密秘钥及其它相关信息存储在本地,本实施例对此不作限制。

根据程序实际运行时的程序运行环境,确定解密密钥对应的密钥获取方式,以根据密钥获取方式得到解密秘钥。

本实施例中,可选的,基于所述程序的运行环境确定解密密钥的密钥获取方式,包括:

若所述程序的运行环境为实时联网环境,则获取存储于服务器中的所述解密密钥;

若所述程序的运行环境非所述实时联网环境,则获取存储于本地的所述解密密钥。

若为程序运行环境为实时联网环境,即程序在运行过程中可以实时与网络连接,则可从指定服务器中通过下载等方式获取存储于服务器中的解密密钥;若非实时联网环境,程序在运行过程中无法与网络连接或者偶尔与网络连接,则获取存储于本地的解密密钥。其中,本地的解密密钥可以存储于安全存储(securestorage)中,本实施例对此不作限制,以提高本地存储的安全性。

根据不同的程序运行环境确定不同的密钥获取方式,避免由于无法联网导致无法及时获取解密密钥的问题,以及可以在不同条件下均能安全获取解密秘钥,提高密钥获取的效率和安全性。

步骤130、基于运行的程序获取与其关联的所述加密动态库。

在程序运行时,根据程序与动态库之间的关联关系,直接获取对应的加密动态库。

步骤140、根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。

对加密动态库进行解密前,在内存中创建指定文件,使得通过解密秘钥在指定文件中对加密动态库进行解密操作,其中解密操作可以由程序运行时对加密动态库的获取而自动触发,本实施例对此不作限制。

可以通过动态加载技术,例如dlopen,在程序运行过程中,对解密动态库进行加载,此时解密动态库的文件内容与目标动态库一致。

目标动态库在被获取前始终处于加密状态,并且由于在内存中进行解密,解密过程难以被追踪和观察,提高了动态库全程的安全性,降低了被破解的可能性。

本实施例中,可选的,在加载解密后得到的解密动态库之后,还包括:

根据所述解密动态库的加载情况,确定是否销毁所述指定文件。

根据解密动态库的加载情况确定指定文件的销毁状况,可以为加载出现错误时进行销毁等,本实施例对此不作限制。通过销毁指定文件,可以避免指定文件中的内容被泄露,提高动态库的安全性。

本实施例中,可选的,根据所述解密动态库的加载情况,确定是否销毁所述指定文件,包括:

判断所述解密动态库是否加载完毕;

若是,则确定销毁所述指定文件;其中,所述指定文件为存储在内存中的inmemory文件。

将在内存中创建并存储的inmemory文件作为指定文件。当解密动态库被加载完毕时自动对inmemory文件进行销毁,在提高动态库安全的同时,避免无用的动态库占用内存,节省内存空间。

本实施例中,可选的,在加载解密后得到的解密动态库之后,还包括:

若程序运行状态为正常运行,则对所述解密动态库进行防止转存追踪操作。

判断程序的运行状态,若正常,则在程序运行后,通过防止转存追踪操作避免动态获取的文件被窃取,进而被他人恶意分析并得到可利用的信息,从而对动态库进行保护。

本实施例所提供的技术方案,通过根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库;基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥;基于运行的程序获取与其关联的所述加密动态库;根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。解决直接对目标动态库进行加载,由于存在被破解的可能性,降低了动态库文件处理的安全性的问题,达到了提高动态库文件处理安全性的效果。

实施例二

图2为本发明实施例二提供的一种动态库处理装置的结构示意图。该装置可以由硬件和/或软件的方式来实现,可执行本发明任意实施例所提供的一种动态库处理方法,具备执行方法相应的功能模块和有益效果。如图2所示,该装置包括:

动态库加密模块210,用于根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库;

密钥获取方式确定模块220,用于基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥;

加密动态库获取模块230,用于基于运行的程序获取与其关联的所述加密动态库;

动态库加载模块240,用于根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。

本发明实施例通过根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库;基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥;基于运行的程序获取与其关联的所述加密动态库;根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。解决直接对目标动态库进行加载,由于存在被破解的可能性,降低了动态库文件处理的安全性的问题,实现提高动态库文件处理安全性的效果。

在上述各技术方案的基础上,可选的,所述密钥获取方式确定模块,包括:

第一密钥获取方式确定单元,用于若所述程序的运行环境为实时联网环境,则获取存储于服务器中的所述解密密钥;

第二密钥获取方式确定单元,用于若所述程序的运行环境非所述实时联网环境,则获取存储于本地的所述解密密钥。

在上述各技术方案的基础上,可选的,所述装置还包括:

文件销毁确定模块,用于所述动态库加载模块之后,根据所述解密动态库的加载情况,确定是否销毁所述指定文件。

在上述各技术方案的基础上,可选的,所述文件销毁确定模块,包括:

动态库加载判断单元,用于判断所述解密动态库是否加载完毕;

文件销毁确定单元,用于若所述动态库加载判断单元判断为是,则确定销毁所述指定文件;其中,所述指定文件为存储在内存中的inmemory文件。

在上述各技术方案的基础上,可选的,所述装置还包括:

动态库防止转存追踪模块,用于所述动态库加载模块之后,若程序运行状态为正常运行,则对所述解密动态库进行防止转存追踪操作。

实施例三

图3为本发明实施例三提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器30、存储器31、输入装置32和输出装置33;电子设备中处理器30的数量可以是一个或多个,图3中以一个处理器30为例;电子设备中的处理器30、存储器31、输入装置32和输出装置33可以通过总线或其他方式连接,图3中以通过总线连接为例。

存储器31作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的动态库处理方法对应的程序指令/模块。处理器30通过运行存储在存储器31中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的动态库处理方法。

存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器31可进一步包括相对于处理器30远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实施例四

本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种动态库处理方法,该方法包括:

根据程序与动态库的预设关联关系,从候选动态库中确定目标动态库,并通过对所述目标动态库加密,得到加密动态库;

基于所述程序的运行环境确定解密密钥的密钥获取方式,以根据所述密钥获取方式得到所述解密秘钥;

基于运行的程序获取与其关联的所述加密动态库;

根据所述解密秘钥在指定文件中对所述加密动态库进行解密,并加载解密后得到的解密动态库;其中,所述指定文件在内存中创建。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的动态库处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述动态库处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1