移动终端中非公开库的调用方法、装置及电子设备与流程

文档序号:17357350发布日期:2019-04-09 21:48阅读:231来源:国知局
移动终端中非公开库的调用方法、装置及电子设备与流程

本申请涉及计算机应用技术领域,尤其涉及一种移动终端中非公开库的调用方法、装置、电子设备及存储介质。



背景技术:

从android7.0开始,系统阻止应用程序动态链接非公开ndk库,以提高系统运行的安全性。但为了一些特殊需求,比如插件化,热修复等又需要动态链接非公开库,因此需要绕过系统的这个限制。

现有相关技术中,通过读取/proc/目录下的so文件,并解析so文件(elf格式)里的重定位表,使用so的基地址加上重定位表里的地址,计算出想要调用函数的地址,从而达到调用非公开ndk库函数的目的。但是这种方法需要读取并解析so文件,不仅速度慢,而且只适用于已经加载过的非公开库,实用性差。



技术实现要素:

本申请提出的移动终端中非公开库的调用方法、装置、电子设备及存储介质,用于解决相关技术中,现有绕过系统动态链接非公开库限制的方法,需要读取并解析so文件,不仅速度慢,而且只适用于已经加载过的非公开库,实用性差的问题。

本申请一方面实施例提出的移动终端中非公开库的调用方法,包括:获取应用程序的调用请求,所述调用请求中包括所述应用程序的标识及非公开库的标识;根据所述应用程序的标识,获取所述应用程序的返回地址;将跳转函数写入预设地址对应的内存中,其中,所述跳转函数的目标地址为所述返回地址,所述预设地址为所述移动终端中操作系统的合法地址;将所述返回地址修改为所述预设地址;以及根据所述预设地址及所述非公开库的标识调用所述非公开库对应的系统接口函数,以打开所述非公开库。

本申请另一方面实施例提出的移动终端中非公开库的调用装置,包括:第一获取模块,用于获取应用程序的调用请求,所述调用请求中包括所述应用程序的标识及非公开库的标识;第二获取模块,用于根据所述应用程序的标识,获取所述应用程序的返回地址;写入模块,用于将跳转函数写入预设地址对应的内存中,其中,所述跳转函数的目标地址为所述返回地址,所述预设地址为所述移动终端中操作系统的合法地址;修改模块,用于将所述返回地址修改为所述预设地址;以及调用模块,用于根据所述预设地址及所述非公开库的标识调用所述非公开库对应的系统接口函数,以打开所述非公开库。

本申请再一方面实施例提出的电子设备,其包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如前所述的移动终端中非公开库的调用方法。

本申请又一方面实施例提出的计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如前所述的移动终端中非公开库的调用方法。

本申请又一方面实施例提出的计算机程序,该程序被处理器执行时,以实现本申请实施例所述的移动终端中非公开库的调用方法。

本申请实施例提供的移动终端中非公开库的调用方法、装置、电子设备、计算机可读存储介质及计算机程序,可以获取应用程序的调用请求,并根据调用请求中包括的应用程序的标识,获取应用程序的返回地址,之后将目标地址为应用程序的返回地址的跳转函数写入预设地址对应的内存中,并将返回地址修改为预设地址,其中,预设地址为移动终端中操作系统的合法地址,进而根据预设地址及调用请求中包括的非公开库的标识调用非公开库对应的系统接口函数,以打开非公开库。由此,通过将应用程序的返回地址修改为移动终端中操作系统的合法地址,以通过系统接口函数对调用方的合法验证,之后即可以通过调用非公开库对应的系统接口函数,打开非公开库,从而实现了绕过系统对应用程序动态链接非公开库的限制,不仅无需读取和解析文件,链接速度快,而且可以现加载非公开库,提高了实用性。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例所提供的一种移动终端中非公开库的调用方法的流程示意图;

图2为本申请实施例所提供的另一种移动终端中非公开库的调用方法的流程示意图;

图3为本申请实施例所提供的一种移动终端中非公开库的调用装置的结构示意图;

图4为本申请实施例所提供的电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的要素。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

本申请实施例针对相关技术中,现有绕过系统动态链接非公开库限制的方法,需要读取并解析so文件,不仅速度慢,而且只适用于已经加载过的非公开库,实用性差的问题,提出一种移动终端中非公开库的调用方法。

本申请实施例提供的移动终端中非公开库的调用方法,可以获取应用程序的调用请求,并根据调用请求中包括的应用程序的标识,获取应用程序的返回地址,之后将目标地址为应用程序的返回地址的跳转函数写入预设地址对应的内存中,并将返回地址修改为预设地址,其中,预设地址为移动终端中操作系统的合法地址,进而根据预设地址及调用请求中包括的非公开库的标识调用非公开库对应的系统接口函数,以打开非公开库。由此,通过将应用程序的返回地址修改为移动终端中操作系统的合法地址,以通过系统接口函数对调用方的合法验证,之后即可以通过调用非公开库对应的系统接口函数,打开非公开库,从而实现了绕过系统对应用程序动态链接非公开库的限制,不仅无需读取和解析文件,链接速度快,而且可以现加载非公开库,提高了实用性。

下面参考附图对本申请提供的移动终端中非公开库的调用方法、装置、电子设备、存储介质及计算机程序进行详细描述。

图1为本申请实施例所提供的一种移动终端中非公开库的调用方法的流程示意图。

如图1所示,该移动终端中非公开库的调用方法,包括以下步骤:

步骤101,获取应用程序的调用请求,所述调用请求中包括所述应用程序的标识及非公开库的标识。

其中,应用程序的标识,是指可以将应用程序唯一确定的身份认证信息。可以理解的是,每个应用程序都拥有唯一的标识。非公开库的标识,是指应用程序请求调用的非公开库的标识,比如,非公开库的标识可以是应用程序请求调用的非公开库的路径。

需要说明的是,目前市面上的一些移动终端的系统会限制终端中的某些应用程序动态链接非公开库,以提高系统的安全性。但为了一些特殊需求,比如插件化,热修复等又需要动态链接非公开库,因此为了满足这些需求,改善移动系统的功能,有时需要绕过系统的这个限制,以使本身没有权限动态链接非公开库的应用程序,可以打开访问非公开库。

实际使用时,本申请实施例的移动终端中非公开库的调用方法,可以由本申请实施例提供的移动终端中非公开库的调用装置执行。本申请实施例提供的移动终端中非公开库的调用装置可以配置在任意的电子设备中,实时获取应用程序发出的调用请求,并识别调用请求中的应用程序的标识,以确定应用程序的身份。

需要说明的是,从安卓7.0版本开始,安卓系统的移动终端开始阻止应用程序动态链接非公开库,因此,在申请实施例一种可能的实现场景中,移动终端中的操作系统可以是安卓系统。

步骤102,根据所述应用程序的标识,获取所述应用程序的返回地址。

需要说明的是,在限制应用程序调用非公开库的操作系统中,并不是所有应用程序都被禁止调用非公开库,系统可以根据应用程序的返回地址,判断应用程序是被限制不能调用非公开的应用程序,还是被允许调用非公开库的合法应用程序。因此,在本申请实施例中,可以根据获取到应用程序的标识,从与该应用程序的标识对应的缓存中,获取与应用程序的标识对应的返回地址,即该应用程序的返回地址。

步骤103,将跳转函数写入预设地址对应的内存中,其中,所述跳转函数的目标地址为所述返回地址,所述预设地址为所述移动终端中操作系统的合法地址。

步骤104,将所述返回地址修改为所述预设地址。

其中,预设地址,是指移动终端中操作系统的合法地址,即具有动态链接非公开库的应用程序或函数的返回地址。

在本申请实施例一种可能的实现形式中,为了实现应用程序在需要时可以随时调用非公开库,可以将应用程序的返回地址修改为移动终端操作系统的合法地址,以使应用程序获得调用非公开库的权限。然而,通过修改应用程序的返回地址,使得应用程序成功调用非公开库后,还需要将从公开库中获取的数据(比如调用非公开库中的函数返回的结果),返回给请求动态链接非公开库的应用程序,而在返回数据时会根据调用方对应的返回地址,将数据返回,因此会使得应用程序的返回地址修改为预设地址之后,应用程序无法获取到返回的数据。

在本申请实施例中,可以在获取到应用程序的返回地址之后,首先根据预设地址确定预设地址对应的内存,并在内存中写入以应用程序的返回地址为目标地址的跳转函数,以使调用非公开库成功之后,可以根据预设地址,触发跳转函数跳转至应用程序的返回地址。将跳转函数写入预设地址对应的内存之后,即可将应用程序的返回地址修改为预设地址,以使应用程序可以通过合法验证,成功调用非公开库。

需要说明的是,在限制应用程序动态链接非公开库的操作系统中,可以调用非公开库的合法地址较少,而为了既可以使应用程序需要调用非公开库时,可以随时使用合法地址以获得调用权限,又不影响该合法地址正常调用非公开库,可以选择在项目中用不到的合法地址作为预设地址,比如,在本申请实施例一种可能的实现形式中,预设地址可以是java本地接口调试函数的地址。

进一步的,由于需要将跳转函数写入预设地址对应的内存,以使非公开库调用完成之后可以返回调用非公开库的应用程序,因此预设地址对应的内存需要可以读取和写入数据。即在本申请实施例一种可能的实现形式中,上述步骤103之前,还可以包括:

将所述预设地址对应的内存的属性修改为可读可写。

可以理解的是,移动设备中的内存可能会根据其所存储的数据不同,而具有不同的属性,比如,有的内存区的属性为只读,不允许对其写入数据;有的内存区的属性为可读可写,即可以从该内存区中读取数据,也可以向该内存区中写入数据。

在本申请实施例中,由于需要将跳转回应用程序的跳转函数写入预设地址对应的内存中,因此可以将预设地址对应的内存的属性修改为可读可写,以便将跳转函数写入该内存区,并在需要时读取该内存区中的数据,以使跳转函数跳转至相应的应用程序。

步骤105,根据所述预设地址及所述非公开库的标识调用所述非公开库对应的系统接口函数,以打开所述非公开库。

其中,非公开库对应的系统接口函数,用于验证请求调用非公开库的调用方的返回地址是否合法,并在调用方的返回地址合法时,打开并加载该系统接口函数对应的非公开库。

在本申请实施例一种可能的实现形式中,非公开库对应的系统接口函数,可以是dlopen函数。dlopen函数可以按照指定的模式打开指定的非公开库,并返回非公开库的句柄。

需要说明的是,在将应用程序的返回地址修改为预设地址之后,即可根据预设地址以及非公开库的标识调用非公开库对应的dlopen函数,以使dlopen函数根据获取到的预设地址确定请求调用非公开库的调用方合法,并将非公开库的标识作为dlopen函数的第一个参数指定非公开的路径,以使dlopen函数打开并加载相应的非公开库,并返回相应的非公开库的句柄。

本申请实施例提供的移动终端中非公开库的调用方法,可以获取应用程序的调用请求,并根据调用请求中包括的应用程序的标识,获取应用程序的返回地址,之后将目标地址为应用程序的返回地址的跳转函数写入预设地址对应的内存中,并将返回地址修改为预设地址,其中,预设地址为移动终端中操作系统的合法地址,进而根据预设地址及调用请求中包括的非公开库的标识调用非公开库对应的系统接口函数,以打开非公开库。由此,通过将应用程序的返回地址修改为移动终端中操作系统的合法地址,以通过系统接口函数对调用方的合法验证,之后即可以通过调用非公开库对应的系统接口函数,打开非公开库,从而实现了绕过系统对应用程序动态链接非公开库的限制,不仅无需读取和解析文件,链接速度快,而且可以现加载非公开库,提高了实用性。

在本申请一种可能的实现形式中,可以通过移动终端中的寄存器获取应用程序的返回地址并将返回地址修改为预设地址,并在调用非公开库之后,通过跳转函数将调用结果返回至调用非公开库的应用程序。

下面结合图2,对本申请实施例提供的移动终端中非公开库的调用方法进行进一步说明。

图2为本申请实施例所提供的另一种移动终端中非公开库的调用方法的流程示意图。

如图2所示,该移动终端中非公开库的调用方法,包括以下步骤:

步骤201,获取应用程序的调用请求,所述调用请求中包括所述应用程序的标识、非公开库的标识及目标调用函数的地址。

其中,目标调用函数,是指应用程序需要调用的非公开库中的函数;目标调用函数的地址,是指目标调用函数对应的内存地址,目标调用函数对应的内存中可以包括目标调用函数的参数及变量等。

步骤202,根据所述应用程序的标识,从连接寄存器中获取所述应用程序的返回地址。

其中,连接寄存器(linkregister,简称lr),具有两种用途:一是用来保存子程序的返回地址;二是当异常发生时,lr中保存的值等于异常发生时pc的值减4(或者减2),因此在各种异常模式下可以根据lr的值返回到异常发生前的相应位置继续执行。

在本申请实施例中,应用程序的返回地址可以保持在连接寄存器中,并可以根据应用程序的标识,从连接寄存器中取出与应用标识对应的返回地址。

步骤203,将跳转函数写入预设地址对应的内存中,其中,所述跳转函数的目标地址为所述返回地址。

上述步骤201-203的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。

步骤204,将所述连接寄存器中存储的所述返回地址修改为所述预设地址。

需要说明的是,当利用连接寄存器存储应用程序的返回地址时,则在将应用程序的返回地址修改为预设地址时,可以将连接寄存器中存储的相应的应用程序的返回地址修改为预设地址。

步骤205,根据所述预设地址及所述非公开库的标识调用所述非公开库对应的系统接口函数,以打开所述非公开库。

需要说明的是,在通过调用系统接口函数打开并加载相应的非公开库之后,系统接口函数可以返回非公开库的句柄。比如,在系统接口函数为dlopen函数时,dlopen函数可以根据非公开库的标识打开相应的非公开库,并将非公开库装入内存,以及加载非公开库中的符合,进而返回非公开库的引用(即句柄),并将非公开库的句柄作为dlsym函数的第一参数,以获得符号在非公开库中的地址,根据该地址可以获得非公开库中特定函数的指针。

进一步的,在通过调用系统接口函数打开并将非公开库装入内存之后,可以根据调用请求中包括的目标调用函数的地址,调用目非公开库中的目标调用函数。即在本申请实施例一种可能的实现形式中,上述步骤205之后,还可以包括:

根据所述目标调用函数的地址调用所述非公开库中的所述目标调用函数。

需要说明的是,可以根据目标调用函数的地址确定目标调用函数在非公开库中对应的符号,进而根据该符号在非公开库中地址,确定出非公开库中目标调用函数的指针,之后根据目标调用函数对应的指针调用目标调用函数。

步骤206,根据所述预设地址,返回至所述预设地址对应的内存,以触发所述预设地址对应的内存中的所述跳转函数跳转至所述返回地址。

在本申请实施例中,调用非公开库完成并得到目标调用函数的调用结果之后,则可以根据预设地址确定预设地址对应的内存,并触发内存中写入的跳转函数,跳转至跳转函数对应的目标地址,即调用非公开库的应用程序的返回地址,以将调用结果返回至相应的应用程序。

本申请实施例提供的移动终端中非公开库的调用方法,可以获取应用程序的调用请求,并根据调用请求中包括的应用程序的标识,从连接寄存器中获取应用程序的返回地址,之后将目标地址为应用程序的返回地址的跳转函数写入预设地址对应的内存中,并在连接寄存器中将返回地址修改为预设地址,其中,预设地址为移动终端中操作系统的合法地址,进而根据预设地址及调用请求中包括的非公开库的标识调用非公开库对应的系统接口函数,以打开非公开库,之后返回至预设地址对应的内存,以触发预设地址对应的内存中的跳转函数跳转至返回地址。由此,通过将应用程序的返回地址修改为移动终端中操作系统的合法地址,以通过系统接口函数对调用方的合法验证,之后即可以通过调用非公开库对应的系统接口函数,打开非公开库,调用非公开库中的目标调用函数并将调用结果返回至应用程序,从而实现了绕过系统对应用程序动态链接非公开库的限制,不仅无需读取和解析文件,链接速度快,而且可以现加载非公开库,提高了实用性。

为了实现上述实施例,本申请还提出一种移动终端中非公开库的调用装置。

图3为本申请实施例提供的一种移动终端中非公开库的调用装置的结构示意图。

如图3所示,该移动终端中非公开库的调用装置30,包括:

第一获取模块31,用于获取应用程序的调用请求,所述调用请求中包括所述应用程序的标识及非公开库的标识;

第二获取模块32,用于根据所述应用程序的标识,获取所述应用程序的返回地址;

写入模块33,用于将跳转函数写入预设地址对应的内存中,其中,所述跳转函数的目标地址为所述返回地址,所述预设地址为所述移动终端中操作系统的合法地址;

第一修改模块34,用于将所述返回地址修改为所述预设地址;

第一调用模块35,用于根据所述预设地址及所述非公开库的标识调用所述非公开库对应的系统接口函数,以打开所述非公开库。

在实际使用时,本申请实施例提供的移动终端中非公开库的调用装置,可以被配置在任意电子设备中,以执行前述移动终端中非公开库的调用方法。

本申请实施例提供的移动终端中非公开库的调用装置,可以获取应用程序的调用请求,并根据调用请求中包括的应用程序的标识,获取应用程序的返回地址,之后将目标地址为应用程序的返回地址的跳转函数写入预设地址对应的内存中,并将返回地址修改为预设地址,其中,预设地址为移动终端中操作系统的合法地址,进而根据预设地址及调用请求中包括的非公开库的标识调用非公开库对应的系统接口函数,以打开非公开库。由此,通过将应用程序的返回地址修改为移动终端中操作系统的合法地址,以通过系统接口函数对调用方的合法验证,之后即可以通过调用非公开库对应的系统接口函数,打开非公开库,从而实现了绕过系统对应用程序动态链接非公开库的限制,不仅无需读取和解析文件,链接速度快,而且可以现加载非公开库,提高了实用性。

在本申请一种可能的实现形式中,上述操作系统为安卓系统,上述预设地址为java本地接口调试函数的地址,上述系统接口函数为dlopen函数。

进一步的,在本申请另一种可能的实现形式中,上述移动终端中非公开库的调用装置30,还包括:

返回模块,用于根据所述预设地址,返回至所述预设地址对应的内存,以触发所述预设地址对应的内存中的所述跳转函数跳转至所述返回地址。

进一步的,在本申请再一种可能的实现形式中,上述调用请求中还包括目标调用函数的地址;

相应的,上述移动终端中非公开库的调用装置30,还包括:

第二调用模块,用于根据所述目标调用函数的地址调用所述非公开库中的所述目标调用函数。

进一步的,在本申请又一种可能的实现形式中,上述移动终端中非公开库的调用装置30,还包括:

第二修改模块,用于将所述预设地址对应的内存的属性修改为可读可写。

在本申请一种可能的实现形式中,上述第二获取模块32,具体用于:

根据所述应用程序的标识,从连接寄存器中获取所述应用程序的返回地址。

在本申请一种可能的实现形式中,上述第一修改模块34,具体用于:

将所述连接寄存器中存储的所述返回地址修改为所述预设地址。

需要说明的是,前述对图1、图2所示的移动终端中非公开库的调用方法实施例的解释说明也适用于该实施例的移动终端中非公开库的调用装置30,此处不再赘述。

本申请实施例提供的移动终端中非公开库的调用装置,可以获取应用程序的调用请求,并根据调用请求中包括的应用程序的标识,从连接寄存器中获取应用程序的返回地址,之后将目标地址为应用程序的返回地址的跳转函数写入预设地址对应的内存中,并在连接寄存器中将返回地址修改为预设地址,其中,预设地址为移动终端中操作系统的合法地址,进而根据预设地址及调用请求中包括的非公开库的标识调用非公开库对应的系统接口函数,以打开非公开库,之后返回至预设地址对应的内存,以触发预设地址对应的内存中的跳转函数跳转至返回地址。由此,通过将应用程序的返回地址修改为移动终端中操作系统的合法地址,以通过系统接口函数对调用方的合法验证,之后即可以通过调用非公开库对应的系统接口函数,打开非公开库,调用非公开库中的目标调用函数并将调用结果返回至应用程序,从而实现了绕过系统对应用程序动态链接非公开库的限制,不仅无需读取和解析文件,链接速度快,而且可以现加载非公开库,提高了实用性。

为了实现上述实施例,本申请还提出一种电子设备。

图4为本发明一个实施例的电子设备的结构示意图。

如图4所示,上述电子设备200包括:

存储器210及处理器220,连接不同组件(包括存储器210和处理器220)的总线230,存储器210存储有计算机程序,当处理器220执行所述程序时实现本申请实施例所述的移动终端中非公开库的调用方法。

总线230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

电子设备200典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器210还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)240和/或高速缓存存储器250。电子设备200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统260可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线230相连。存储器210可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块270的程序/实用工具280,可以存储在例如存储器210中,这样的程序模块270包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块270通常执行本发明所描述的实施例中的功能和/或方法。

电子设备200也可以与一个或多个外部设备290(例如键盘、指向设备、显示器291等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口292进行。并且,电子设备200还可以通过网络适配器293与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器293通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理器220通过运行存储在存储器210中的程序,从而执行各种功能应用以及数据处理。

需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本申请实施例的移动终端中非公开库的调用方法的解释说明,此处不再赘述。

本申请实施例提供的电子设备,可以执行如前所述的移动终端中非公开库的调用方法,获取应用程序的调用请求,并根据调用请求中包括的应用程序的标识,获取应用程序的返回地址,之后将目标地址为应用程序的返回地址的跳转函数写入预设地址对应的内存中,并将返回地址修改为预设地址,其中,预设地址为移动终端中操作系统的合法地址,进而根据预设地址及调用请求中包括的非公开库的标识调用非公开库对应的系统接口函数,以打开非公开库。由此,通过将应用程序的返回地址修改为移动终端中操作系统的合法地址,以通过系统接口函数对调用方的合法验证,之后即可以通过调用非公开库对应的系统接口函数,打开非公开库,从而实现了绕过系统对应用程序动态链接非公开库的限制,不仅无需读取和解析文件,链接速度快,而且可以现加载非公开库,提高了实用性。

为了实现上述实施例,本申请还提出一种计算机可读存储介质。

其中,该计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,以实现本申请实施例所述的移动终端中非公开库的调用方法。

为了实现上述实施例,本申请再一方面实施例提供一种计算机程序,该程序被处理器执行时,以实现本申请实施例所述的移动终端中非公开库的调用方法。

一种可选实现形式中,本实施例可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户电子设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

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