系统调用函数的调用方法与装置与流程

文档序号:11707388阅读:150来源:国知局
系统调用函数的调用方法与装置与流程

本发明涉及计算机技术领域,特别是涉及一种系统调用函数的调用方法及装置。



背景技术:

随着计算机技术的发展,网络安全问题也变得日益突出。目前,人们在应对网络安全问题时,往往会运用到沙箱技术。沙箱是一种按照安全策略限制程序行为的执行环境,其可以为程序构建一个安全的虚拟执行环境,进而使得网络安全问题得到了有效的解决。

现有技术中,当应用运行在沙箱进程中时,系统原来android安装包(apk)访问的地址无法在沙箱中继续进行访问,此时,若需调用系统调用(syscall)函数,需要对整个文件系统重定向。在进行系统重定向操作时,可以通过挂钩(hook)技术实现。hook技术是一种可以将目标进程的某一个函数替换成一个自定义的函数中执行的技术,利用hook技术可以达到修改目标进程某个函数的执行逻辑的功能。通常情况下,在使用hook技术时,需要明确系统调用函数的入口地址。即需要从map中找到该函数的首地址,然后根据该首地址到动态链接库中解析其符号表,进而从符号表中查找到该函数的入口地址。在获取到系统调动函数的入口地址后,可以通过hook技术实现系统重定向。但是,目前许多用户的终端设备内存中函数符号表被删除了,此时,没有符号表便不易定位目标函数,进而无法实现系统重定向,也无法进行系统调用,给用户带来了许多不便。

因此,现在亟需一种在函数符号表不存在的情况下能够对系统调用函数进行调用的方法。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的系统调用函数的调用方法和相应的装置。

依据本发明实施例的一个方面,提供了一种系统调用函数的调用方法,应用于符号表被删除的内存,该方法包括:

扫描所述内存,查找到其中包含的至少一个软中断指令;

根据软中断指令与系统调用函数的映射关系,确定所述至少一个软中断指令所对应的至少一个系统调用函数;

选择本次所需的目标系统调用函数,并查找到所述目标系统调用函数的入口地址;

经查找到的入口地址调用所述目标系统调用函数。

可选地,所述选择本次所需的目标系统调用函数,包括:

根据用户需求确定本次调用的系统调用函数所需实现的功能;

根据所述功能选择本次所需的目标系统调用函数。

可选地,所述查找到目标系统调用函数的入口地址,包括:

解析所述目标系统调用函数的软中断指令的中断号;

根据所述中断号查找所述目标系统调用函数的入口地址。

可选地,所述解析目标系统调用函数的软中断指令的中断号,包括:

针对寄存器运行ldr指令或mov指令,得到运行结果;

解析所述运行结果得到所述中断号。

可选地,所述针对寄存器运行ldr指令或mov指令,包括:

计算所述寄存器的值;

将所述寄存器的值与偏移地址进行相加得到和值作为所述运行结果;

解析所述运行结果得到所述中断号,包括:取所述和值作为中断号。

可选地,根据中断号查找目标系统调用函数的入口地址,包括:

到所述寄存器中读取存储的中断号,其中,所述寄存器还存储有以中断号为索引的入口地址;

以该中断号为索引,在所述寄存器中查找到与该中断号对应的所述目标系统调用函数的入口地址。

可选地,在所述寄存器中查找到与该中断号对应的所述目标系统调用函数的入口地址,包括:

到独立运行的临时寄存器读取备份信息,其中,所述临时寄存器对存储有中断号的寄存器进行内容复制得到所述备份信息;

在所述备份信息中查找到与该中断号对应的所述目标系统调用函数的入口地址。

可选地,所述寄存器为r1-r15时,所述临时寄存器为r12,备份的是寄存器r7的信息。

可选地,所述根据软中断指令与系统调用函数的映射关系,包括:每个系统调用函数中包括唯一的软中断指令。

依据本发明实施例的另一个方面,还提供了一种系统调用函数的调用装置,应用于符号表被删除的内存,该装置包括:

扫描模块,适于扫描所述内存,查找到其中包含的至少一个软中断指令;

确定模块,适于根据软中断指令与系统调用函数的映射关系,确定所述至少一个软中断指令所对应的至少一个系统调用函数;

查找模块,适于选择本次所需的目标系统调用函数,并查找到所述目标系统调用函数的入口地址;

调用模块,适于经查找到的入口地址调用所述目标系统调用函数。

可选地,所述查找模块,还适于:

根据用户需求确定本次调用的系统调用函数所需实现的功能;

根据所述功能选择本次所需的目标系统调用函数。

可选地,所述查找模块,还适于:

解析所述目标系统调用函数的软中断指令的中断号;

根据所述中断号查找所述目标系统调用函数的入口地址。

可选地,所述查找模块,还适于:

针对寄存器运行ldr指令或mov指令,得到运行结果;

解析所述运行结果得到所述中断号。

可选地,所述查找模块,还适于:

计算所述寄存器的值;

将所述寄存器的值与偏移地址进行相加得到和值作为所述运行结果;

解析所述运行结果得到所述中断号,包括:取所述和值作为中断号。

可选地,所述查找模块,还适于:

到所述寄存器中读取存储的中断号,其中,所述寄存器还存储有以中断号为索引的入口地址;

以该中断号为索引,在所述寄存器中查找到与该中断号对应的所述目标系统调用函数的入口地址。

可选地,所述查找模块,还适于:

到独立运行的临时寄存器读取备份信息,其中,所述临时寄存器对存储有中断号的寄存器进行内容复制得到所述备份信息;

在所述备份信息中查找到与该中断号对应的所述目标系统调用函数的入口地址。

可选地,所述寄存器为r1-r15时,所述临时寄存器为r12,备份的是寄存器r7的信息。

可选地,所述确定模块,还适于:每个系统调用函数中包括唯一的软中断指令。

依据本发明的又一个方面,提供了一种计算机程序,其包括计算机可读代码,当所述计算机可读代码在计算设备上运行时,导致所述计算设备执行所述的系统调用函数的调用方法。

根据本发明的再一个方面,提供了一种计算机可读介质,其中存储了所述的计算机程序。

依据本发明的另一个方面,提供了一种移动终端,包括处理器和存储器:

所述存储器用于存储执行上述任一项系统调用函数的调用方法的程序,

所述处理器被配置为用于执行所述存储器中存储的程序。

本发明实施例,对系统调用函数的调用方法做了改进。现有技术中,当需要调用系统调用函数时,通常需要从函数符号表中查找到相应函数的入口地址,进而根据该入口地址进行系统调用。但是,目前越来越多的终端设备内存中并不再提供函数符号表,如此便无法找到函数入口地址,进而无法实现系统调用。因此,本发明实施例,为了能够在无函数符号表的情况下实现对系统调用函数的调用,提供了一种新的系统调用函数的调用方法。具体地,内存中存储有多个软中断指令,当内存中的函数符号表被删除时,首先,可以对该内存进行扫描,查找到其中包含的至少一个软中断指令。软中断指令与系统调用函数之间存在一一对应的关系,在查找到至少一个软中断指令后,可以根据该对应关系确定至少一个系统调用函数。进一步,可以根据用户需求在确定出的系统调用函数中选择本次所需的目标系统调用函数,并查找到该目标系统调用函数的入口地址。最后,可以根据查找到的该入口地址调用目标系统调用函数。因此,采用本发明实施例提供的系统调用函数的调用方法,可以在函数符号表被删除的情况下,通过不同的软中断指令确定不同的系统调用函数,进一步根据用户需求在确定的系统调用函数中选择目标系统调用函数,并查找该目标系统调用函数的入口地址,实现系统调用函数的调用,解决了现有技术中在函数符号表被删除的情况下无法定位目标函数,进而无法进行系统调用函数调用的问题,为用户提供了极大的方便。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是根据本发明一个实施例的系统调用函数的调用方法的处理流程图;

图2是根据本发明一个实施例的系统调用函数的信息备份流程图;

图3是根据本发明一个实施例的系统调用函数的调用装置的示意性框图;

图4是根据本发明一个实施例的移动终端的结构示意图;

图5是根据本发明一个实施例的用于执行根据本发明的系统调用函数的调用方法的计算设备的框图;以及

图6是根据本发明一个实施例的用于保持或者携带实现根据本发明的系统调用函数的调用方法的程序代码的存储单元。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为了解决上述技术问题,本发明实施例提供了一种系统调用函数的调用方法。图1是根据本发明一个实施例的系统调用函数的调用方法的处理流程图。如图1所示,系统调用函数的调用方法至少包括步骤s102至步骤s108:

步骤s102、扫描内存,查找到其中包含的至少一个软中断指令;

步骤s104、根据软中断指令与系统调用函数的映射关系,确定至少一个软中断指令所对应的至少一个系统调用函数;

步骤s106、选择本次所需的目标系统调用函数,并查找到目标系统调用函数的入口地址;

步骤s108、经查找到的入口地址调用目标系统调用函数。

本发明实施例,对系统调用函数的调用方法做了改进。现有技术中,当需要调用系统调用函数时,通常需要从函数符号表中查找到相应函数的入口地址,进而根据该入口地址进行系统调用。但是,目前越来越多的终端设备内存中并不再提供函数符号表,如此便无法找到函数入口地址,进而无法实现系统调用。因此,本发明实施例,为了能够在无函数符号表的情况下实现对系统调用函数的调用,提供了一种新的系统调用函数的调用方法。具体地,内存中存储有多个软中断指令,当内存中的函数符号表被删除时,首先,可以对该内存进行扫描,查找到其中包含的至少一个软中断指令。软中断指令与系统调用函数之间存在一一对应的关系,在查找到至少一个软中断指令后,可以根据该对应关系确定至少一个系统调用函数。进一步,可以根据用户需求在确定出的系统调用函数中选择本次所需的目标系统调用函数,并查找到该目标系统调用函数的入口地址。最后,可以根据查找到的该入口地址调用目标系统调用函数。因此,采用本发明实施例提供的系统调用函数的调用方法,可以在函数符号表被删除的情况下,通过不同的软中断指令确定不同的系统调用函数,进一步根据用户需求在确定的系统调用函数中选择目标系统调用函数,并查找该目标系统调用函数的入口地址,实现系统调用函数的调用,解决了现有技术中在函数符号表被删除的情况下无法定位目标系统调用函数,进而无法进行系统调用函数调用的问题,为用户提供了极大的方便。

具体地,计算机中所有程序的运行都是在内存中进行的,内存又称主存,是cpu能直接寻址的存储空间。通常情况下,系统调用函数的符号表会被存储在内存中,此时,若要调用系统调用函数,只需在函数符号表中查找相应函数的入口地址,即可根据该入口地址调用相应的系统调用函数。但是,在当内存中系统调用函数的符号表被删除时,若要调用系统调用函数,则需执行本发明的步骤s102,对该不存在系统调用函数符号表的内存进行扫描,查找到其中包含的至少一个软中断指令。该软中断指令与一般函数所用到的软中断指令不同,本发明中所用到的每个软中断指令均会对应唯一的系统调用函数。

在步骤s102执行结束之后,获得至少一个软中断指令,然后执行步骤s104,根据软中断指令与系统调用函数的映射关系,确定至少一个软中断指令所对应的至少一个系统调用函数。

在步骤s104执行结束之后,可以获得至少一个系统调用函数,进而执行步骤s106,在所获得到的系统调用函数中,选择本次所需的目标系统调用函数,并查找到该目标系统调用函数的入口地址。具体地,在选择本次所需的目标系统调用函数时,可以先根据用户需求确定本次调用的系统调用函数所需实现的功能,不同功能对应的系统调用函数不同。进而,根据上述确定的功能选择本次所需的目标系统调用函数。

在根据用户需求选择出本次所需的目标系统调用函数后,可以进一步查找该目标系统调用函数的入口地址。具体地,可以对该目标系统调用函数的软中断指令的中断号进行解析,进而根据解析到的中断号查找该目标系统调用函数的入口地址。在解析中断号时,可以针对寄存器运行ldr指令或mov指令,进而计算寄存器的值,并将计算得到的值与偏移地址进行相加得到和值,将该和值作为运行ldr指令或mov指令之后得到的运行结果。随后,解析该运行结果,取该和值作为目标系统调用函数的软中断指令的中断号。

在解析出中断号之后,可以到寄存器中读取该中断号。通常寄存器中除了存储有中断号以外,还存储有以中断号为索引的入口地址。为了获取目标系统调用函数的入口地址,可以以读取到的中断号为索引,先到临时寄存器中读取其预先存储的备份信息。其中,临时寄存器是独立运行的,与其他通用寄存器之间互不影响,并且,该临时寄存器中的备份信息是临时寄存器通过对存储有中断号的寄存器进行内容复制得到的,可以在该备份信息中查找到与该中断号对应的目标系统调用函数的入口地址。

在获取到目标系统调用函数的入口地址之后,执行步骤s108,根据获取的入口地址调用目标系统调用函数,进而实现在没有系统调用函数符号表时,对目标系统调用函数进行调用。

以下通过一个具体的实施例对本发明所提供的系统调用函数的调用方法做具体阐述。

实施例一

图2示出的是根据本发明一个实施例的系统调用函数的信息备份流程图。本发明实施例以图2为例,如图2所示,根据本发明所提供的系统调用函数的调用方法,当寄存器为r1-r15时,临时寄存器为r12,备份的是r7寄存器的信息。

具体地,在通过多个软中断指令确定了多个系统调用函数,进而根据用户需求选择本次所需的目标系统调用函数,例如,用户本次所需调用的目标系统调用函数为open函数,可以首先解析该open函数的中断号。相应地,可以针对r7寄存器运行ldr指令或mov指令,在该指令运行过程中计算r7寄存器的值,并将该计算得到的值与偏移地址进行相加得到一个和值,将该和值作为针对r7寄存器运行指令的运行结果。在得到该运行结果之后,对其进行解析,取其和值作为中断号,该中断号存储在r7寄存器中。

进一步,r7寄存器中除了存储有系统调用函数的中断号之外,还存储有以该中断号为索引的函数入口地址。由于每次进行系统调用函数调用时,均需通过r7寄存器实现软中断,因此,在进行软中断时,首先,需要将r7寄存器中的信息存储到其他寄存器中,同时不能影响其他寄存器的使用。本发明实施例,将r7寄存器中的信息存储到临时寄存器r12中,该临时寄存器r12是独立运行的,与其他通用寄存器之间互不影响。此时,临时寄存器r12中备份有寄存器r7中的信息。

进一步,到独立运行的临时寄存器r12中读取寄存器r7的备份信息,在该备份信息中查找到open函数的中断号以及与该中断号对应的open函数的入口地址,进而根据该入口地址调用open函数,实现对目标系统调用函数的调用。

上述实施例中所提供的结果仅仅为例举,本发明实施例提供的系统调用函数的调用方法可以实现对不同功能系统调用函数的调用,上述实施例对其并未做限定。

因此,采用本发明实施例提供的系统调用函数的调用方法,可以在函数符号表被删除的情况下,通过不同的软中断指令确定不同的系统调用函数,进一步根据用户需求在确定的系统调用函数中选择目标系统调用函数,进而查找该目标系统调用函数的入口地址,实现系统调用函数的调用,解决了现有技术中在函数符号表被删除的情况下无法定位目标系统调用函数,进而无法进行系统调用函数调用的问题,为用户提供了极大的方便。

基于同一发明构思,本发明实施例还提供了一种系统调用函数的调用装置。图3示出了根据本发明一个实施例的系统调用函数的调用装置的示意性框图。如图3所示,系统调用函数的调用装置至少包括:

扫描模块310,适于扫描内存,查找到其中包含的至少一个软中断指令;

确定模块320,与扫描模块310耦合,适于根据软中断指令与系统调用函数的映射关系,确定至少一个软中断指令所对应的至少一个系统调用函数;

查找模块330,与确定模块320耦合,适于选择本次所需的目标系统调用函数,并查找到目标系统调用函数的入口地址;

调用模块340,与查找模块330耦合,适于经查找到的入口地址调用目标系统调用函数。

在一个优选的实施例中,查找模块330,还适于:

根据用户需求确定本次调用的系统调用函数所需实现的功能;

根据功能选择本次所需的目标系统调用函数。

在一个优选的实施例中,查找模块330,还适于:

解析目标系统调用函数的软中断指令的中断号;

根据中断号查找目标系统调用函数的入口地址。

在一个优选的实施例中,查找模块330,还适于:

针对寄存器运行ldr指令或mov指令,得到运行结果;

解析运行结果得到中断号。

在一个优选的实施例中,查找模块330,还适于:

计算寄存器的值;

将寄存器的值与偏移地址进行相加得到和值作为运行结果;

解析运行结果得到中断号,包括:取和值作为中断号。

在一个优选的实施例中,查找模块330,还适于:

到寄存器中读取存储的中断号,其中,寄存器还存储有以中断号为索引的入口地址;

以该中断号为索引,在寄存器中查找到与该中断号对应的目标系统调用函数的入口地址。

在一个优选的实施例中,查找模块330,还适于:

到独立运行的临时寄存器读取备份信息,其中,临时寄存器对存储有中断号的寄存器进行内容复制得到备份信息;

在备份信息中查找到与该中断号对应的目标系统调用函数的入口地址。

在一个优选的实施例中,寄存器为r1-r15时,临时寄存器为r12,备份的是寄存器r7的信息。

在一个优选的实施例中,确定模块320,还适于:每个系统调用函数中包括唯一的软中断指令。

此外,本发明实施例还提供了一种移动终端,如图4所示,包括处理器480和存储器420:存储器420用于存储执行上述任意一个优选的实施例或其组合所提供的系统调用函数的调用方法的程序;

处理器480被配置为用于执行存储器420中存储的程序。

为了便于说明,图4仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该移动终端可以包括手机、平板电脑、pda(personaldigitalassistant,个人数字处理)、pos(pointofsales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:

图4示出的是与本发明实施例提供的移动终端相关的手机的部分结构的框图。参考图4,手机包括:射频(radiofrequency,rf)电路410、存储器420、输入单元430、显示单元440、传感器450、音频电路460、无线保真(wirelessfidelity,wifi)模块470、处理器480、以及电源490等部件。本领域技术人员可以理解,图4中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图4对手机的各个构成部件进行具体的介绍:

rf电路410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器480处理;另外,将设计上行的数据发送给基站。通常,rf电路410包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器420可用于存储软件程序以及模块,处理器480通过运行存储在存储器420的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元430可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元430可包括触控面板431以及其他输入设备432。触控面板431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板431上或在触控面板431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器480,并能接收处理器480发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板431。除了触控面板431,输入单元430还可以包括其他输入设备432。具体地,其他输入设备432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元440可包括显示面板441,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板441。进一步的,触控面板431可覆盖显示面板441,当触控面板431检测到在其上或附近的触摸操作后,传送给处理器480以确定触摸事件的类型,随后处理器480根据触摸事件的类型在显示面板441上提供相应的视觉输出。虽然在图4中,触控面板431与显示面板441是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板431与显示面板441集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器450,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板441的亮度,接近传感器可在手机移动到耳边时,关闭显示面板441和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路460、扬声器461,传声器462可提供用户与手机之间的音频接口。音频电路460可将接收到的音频数据转换后的电信号,传输到扬声器461,由扬声器461转换为声音信号输出;另一方面,传声器462将收集的声音信号转换为电信号,由音频电路460接收后转换为音频数据,再将音频数据输出处理器480处理后,经rf电路410以发送给比如另一手机,或者将音频数据输出至存储器420以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了wifi模块470,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器480可包括一个或多个处理单元;优选的,处理器480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器480中。

手机还包括给各个部件供电的电源490(比如电池),优选的,电源可以通过电源管理系统与处理器480逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

采用本发明实施例提供的系统调用函数的调用方法及装置能够达到如下有益效果:

本发明实施例,对系统调用函数的调用方法做了改进。现有技术中,当需要调用系统调用函数时,通常需要从函数符号表中查找到相应函数的入口地址,进而根据该入口地址进行系统调用。但是,目前越来越多的终端设备内存中并不再提供函数符号表,如此便无法找到函数入口地址,进而无法实现系统调用。因此,本发明实施例,为了能够在无函数符号表的情况下实现对系统调用函数的调用,提供了一种新的系统调用函数的调用方法。具体地,在函数符号表被删除的内存中存储有多个软中断指令,首先,可以对该内存进行扫描,查找到其中包含的至少一个软中断指令。软中断指令与系统调用函数之间存在一一对应的关系,在查找到至少一个软中断指令后,可以根据该对应关系确定至少一个系统调用函数。进一步,可以根据用户需求在确定出的系统调用函数中选择本次所需的目标系统调用函数,并查找到该目标系统调用函数的入口地址。最后,可以根据查找到的该入口地址调用目标系统调用函数。因此,采用本发明实施例提供的系统调用函数的调用方法,可以在函数符号表被删除的情况下,通过不同的软中断指令确定不同的系统调用函数,进一步根据用户需求在确定的系统调用函数中选择目标系统调用函数,进而查找该目标系统调用函数的入口地址,实现系统调用函数的调用,解决了现有技术中在函数符号表被删除的情况下无法定位目标系统调用函数,进而无法进行系统调用函数调用的问题,为用户提供了极大的方便。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的系统调用函数的调用设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

例如,图5示出了可以实现根据本发明的系统调用函数的调用方法的计算设备。该计算设备传统上包括处理器510和以存储器520形式的计算机程序产品或者计算机可读介质。存储器520可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器520具有用于执行上述方法中的任何方法步骤的程序代码531的存储空间530。例如,用于程序代码的存储空间530可以包括分别用于实现上面的方法中的各种步骤的各个程序代码531。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图6所示的便携式或者固定存储单元。该存储单元可以具有与图5的计算设备中的存储器520类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码531’,即可以由例如诸如510之类的处理器读取的代码,这些代码当由计算设备运行时,导致该计算设备执行上面所描述的方法中的各个步骤。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

根据本发明实施例的一个方面,提供了a1、一种系统调用函数的调用方法,应用于符号表被删除的内存,包括:

扫描所述内存,查找到其中包含的至少一个软中断指令;

根据软中断指令与系统调用函数的映射关系,确定所述至少一个软中断指令所对应的至少一个系统调用函数;

选择本次所需的目标系统调用函数,并查找到所述目标系统调用函数的入口地址;

经查找到的入口地址调用所述目标系统调用函数。

a2、根据a1所述的方法,其中,所述选择本次所需的目标系统调用函数,包括:

根据用户需求确定本次调用的系统调用函数所需实现的功能;

根据所述功能选择本次所需的目标系统调用函数。

a3、根据a1所述的方法,其中,所述查找到目标系统调用函数的入口地址,包括:

解析所述目标系统调用函数的软中断指令的中断号;

根据所述中断号查找所述目标系统调用函数的入口地址。

a4、根据a3所述的方法,其中,所述解析目标系统调用函数的软中断指令的中断号,包括:

针对寄存器运行ldr指令或mov指令,得到运行结果;

解析所述运行结果得到所述中断号。

a5、根据a4所述的方法,其中,所述针对寄存器运行ldr指令或mov指令,包括:

计算所述寄存器的值;

将所述寄存器的值与偏移地址进行相加得到和值作为所述运行结果;

解析所述运行结果得到所述中断号,包括:取所述和值作为中断号。

a6、根据a4或a5所述的方法,其中,根据中断号查找目标系统调用函数的入口地址,包括:

到所述寄存器中读取存储的中断号,其中,所述寄存器还存储有以中断号为索引的入口地址;

以该中断号为索引,在所述寄存器中查找到与该中断号对应的所述目标系统调用函数的入口地址。

a7、根据a6所述的方法,其中,在所述寄存器中查找到与该中断号对应的所述目标系统调用函数的入口地址,包括:

到独立运行的临时寄存器读取备份信息,其中,所述临时寄存器对存储有中断号的寄存器进行内容复制得到所述备份信息;

在所述备份信息中查找到与该中断号对应的所述目标系统调用函数的入口地址。

a8、根据a7所述的方法,其中,所述寄存器为r1-r15时,所述临时寄存器为r12,备份的是寄存器r7的信息。

a9、根据a1-a8任一项所述的方法,其中,所述根据软中断指令与系统调用函数的映射关系,包括:每个系统调用函数中包括唯一的软中断指令。

根据本发明实施例的另一个方面,还提供了b10、一种系统调用函数的调用装置,应用于符号表被删除的内存,包括:

扫描模块,适于扫描所述内存,查找到其中包含的至少一个软中断指令;

确定模块,适于根据软中断指令与系统调用函数的映射关系,确定所述至少一个软中断指令所对应的至少一个系统调用函数;

查找模块,适于选择本次所需的目标系统调用函数,并查找到所述目标系统调用函数的入口地址;

调用模块,适于经查找到的入口地址调用所述目标系统调用函数。

b11、根据b10所述的装置,其中,所述查找模块,还适于:

根据用户需求确定本次调用的系统调用函数所需实现的功能;

根据所述功能选择本次所需的目标系统调用函数。

b12、根据b10所述的装置,其中,所述查找模块,还适于:

解析所述目标系统调用函数的软中断指令的中断号;

根据所述中断号查找所述目标系统调用函数的入口地址。

b13、根据b12所述的装置,其中,所述查找模块,还适于:

针对寄存器运行ldr指令或mov指令,得到运行结果;

解析所述运行结果得到所述中断号。

b14、根据b13所述的装置,其中,所述查找模块,还适于:

计算所述寄存器的值;

将所述寄存器的值与偏移地址进行相加得到和值作为所述运行结果;

解析所述运行结果得到所述中断号,包括:取所述和值作为中断号。

b15、根据b13或b14所述的装置,其中,所述查找模块,还适于:

到所述寄存器中读取存储的中断号,其中,所述寄存器还存储有以中断号为索引的入口地址;

以该中断号为索引,在所述寄存器中查找到与该中断号对应的所述目标系统调用函数的入口地址。

b16、根据b15所述的装置,其中,所述查找模块,还适于:

到独立运行的临时寄存器读取备份信息,其中,所述临时寄存器对存储有中断号的寄存器进行内容复制得到所述备份信息;

在所述备份信息中查找到与该中断号对应的所述目标系统调用函数的入口地址。

b17、根据b16所述的装置,其中,所述寄存器为r1-r15时,所述临时寄存器为r12,备份的是寄存器r7的信息。

b18、根据b10-b17任一项所述的装置,其中,所述确定模块,还适于:每个系统调用函数中包括唯一的软中断指令。

根据本发明实施例的另一个方面,还提供了c19、一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算设备上运行时,导致所述计算设备执行根据a1-a9中的任一个所述的系统调用函数的调用方法。

根据本发明实施例的另一个方面,还提供了d20、一种计算机可读介质,其中存储了如c19所述的计算机程序。

根据本发明实施例的又一个方面,还提供了e21、一种移动终端,包括处理器和存储器:

所述存储器用于存储执行a1-a9任一项方法的程序,

所述处理器被配置为用于执行所述存储器中存储的程序。

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