CN106095416A - 一种在应用程序中的跳转处理方法、装置及智能终端 - Google Patents

一种在应用程序中的跳转处理方法、装置及智能终端 Download PDF

Info

Publication number
CN106095416A
CN106095416A CN201610382640.2A CN201610382640A CN106095416A CN 106095416 A CN106095416 A CN 106095416A CN 201610382640 A CN201610382640 A CN 201610382640A CN 106095416 A CN106095416 A CN 106095416A
Authority
CN
China
Prior art keywords
function
address
jump instruction
destination address
called
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
Application number
CN201610382640.2A
Other languages
English (en)
Other versions
CN106095416B (zh
Inventor
彭毕雨
王波
王俊俊
陈礼娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610382640.2A priority Critical patent/CN106095416B/zh
Publication of CN106095416A publication Critical patent/CN106095416A/zh
Application granted granted Critical
Publication of CN106095416B publication Critical patent/CN106095416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明实施例公开了一种在应用程序中的跳转处理方法、装置及智能终端,其中,所述方法包括:在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;根据所述跳转指令中的目标地址确定被调用函数的入口地址;根据确定的入口地址开始执行所述被调用函数。采用本发明实施例,可简便快捷地实现应用程序中函数的跳转处理。

Description

一种在应用程序中的跳转处理方法、装置及智能终端
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种在应用程序中的跳转处理方法、装置及智能终端。
背景技术
智能终端中所使用的ARM架构,称作进阶精简指令集机器架构(英文全称为:Advanced RISC Machine,或者为:Acorn RISC Machine)。该架构中包括内置钩子Inlinehook机制,使得在基于动态库执行内部函数调用时,能够跳转到自定义的外部函数上执行,实现新的自定义功能。
目前,在Inline hook机制中常用的技术方案是修改被hook函数头部的机器码,达到跳转到某个外部函数(被调用函数)的目的。例如,被hook函数B头部的机器码被修改为跳转到函数C,那么应用程序的调用函数A通过调用被hook函数B,即可跳转到函数C,并执行函数C。
上述实现函数跳转调用的方式较为复杂,并且对被hook函数的修改会影响到与该被hook函数关联的其他调用函数。
发明内容
本发明实施例提供一种在应用程序中的跳转处理方法、装置及智能终端,可简便快捷地实现应用程序中函数的跳转处理。
一方面,本发明实施例提供了一种在应用程序中的跳转处理方法,包括:
在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;
根据所述跳转指令中的目标地址确定被调用函数的入口地址;
根据确定的入口地址开始执行所述被调用函数。
其中可选地,所述跳转指令中记录的目标地址为内存中空闲空间的地址,所述空闲空间中设置有配置指令,所述根据所述跳转指令中的目标地址确定被调用函数的入口地址,包括:
根据所述跳转指令中的目标地址确定出内存中设置的配置指令;
根据所述配置指令,得到被调用函数的入口地址。
其中可选地,所述空闲空间是指:在加载动态库SO文件时,被SO文件占用的内存页中没有存储数据的内存空间。
其中可选地,所述配置指令用于指示修改寄存器的值并将包括在该配置指令中的被调用函数的入口地址写入到所述寄存器中。
其中可选地,所述根据确定的入口地址开始执行所述被调用函数,包括:
在执行到调用函数中的所述跳转指令的下一指令时,读取所述寄存器中写入的所述被调用函数的入口地址;
从所述入口地址开始执行所述被调用函数。
其中可选地,所述在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令之前,还包括:
从应用程序中的调用函数的首地址开始确定跳转指令,并将确定的跳转指令记录的地址配置为目标地址的偏移地址。
另一方面,本发明实施例相应地提供了一种在应用程序中的跳转处理装置,包括:
获取模块,用于在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;
确定模块,用于根据所述跳转指令中的目标地址确定被调用函数的入口地址;
执行模块,用于根据确定的入口地址开始执行所述被调用函数。
其中可选地,所述跳转指令中记录的目标地址为内存中空闲空间的地址,所述空闲空间中设置有配置指令;
所述确定模块,具体用于根据所述跳转指令中的目标地址确定出内存中设置的配置指令;根据所述配置指令,得到被调用函数的入口地址。
其中可选地,所述空闲空间是指:在加载动态库SO文件时,被SO文件占用的内存页中没有存储数据的内存空间。
其中可选地,所述配置指令用于指示修改寄存器的值并将包括在该配置指令中的被调用函数的入口地址写入到所述寄存器中。
其中可选地,所述执行模块具体用于在执行到调用函数中的所述跳转指令的下一指令时,读取所述寄存器中写入的所述被调用函数的入口地址;从所述入口地址开始执行所述被调用函数。
其中可选地,所述装置还包括:
预置模块,用于从应用程序中的调用函数的首地址开始确定跳转指令,并将确定的跳转指令记录的地址配置为目标地址的偏移地址。
再一方面,本发明实施例相应地还提供了一种智能终端,包括处理器;
所述处理器,用于在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;根据所述跳转指令中的目标地址确定被调用函数的入口地址;根据确定的入口地址开始执行所述被调用函数。
本发明实施例能够通过对调用函数中的跳转指令进行配置以及处理,直接跳转到跳转指令指示的目标地址所关联的被调用函数,简便快捷地实现有针对性的函数跳转调用,只针对单个调用函数完成函数跳转和调用,不会影响其他的调用函数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种在应用程序中的跳转处理方法的流程示意图;
图2是本发明实施例的一种在应用程序中的跳转处理方法的流程示意图;
图3是本发明实施例的一种在应用程序中的跳转处理装置的结构示意图;
图4是本发明实施例的一种智能终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,通过对应用程序中的某个调用函数包括的跳转指令进行修改配置,将该跳转指令配置为用于表示需要被调用函数的地址的指令,以便于在执行到该跳转指令后,能够跳转到被调用的函数。其中,在出现由于跳转指令偏移地址的大小受限,而使得该跳转指令无法表示出被调用函数的地址的情况时,可以将该跳转指令先表示为一个内存中加载动态库SO后产生的被SO文件占用但没有数据的空闲空间的地址,在执行到该跳转指令后,可以先跳转到SO内部的空闲地址,然后再根据该空闲空间中预设的指令来修改终端寄存器的方式完成跳转,进而执行被调用函数。
具体的,请参见图1,是本发明实施例的一种在应用程序中的跳转处理方法的流程示意图,本发明实施例的所述方法可以由智能终端中的处理器来执行,所述智能终端包括智能手机、平板电脑、个人电脑PC等设备,具体的,本发明实施例的所述方法包括如下步骤。
S101:在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令指示有目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数,即:在执行到所述应用程序的调用函数后,可以跳转到所述目标地址所关联的被调用函数,并执行该被调用函数。
在ARM架构中,函数调用时的跳转指令对应到汇编代码包括BL和BLX指令等,其中,BL为带链接跳转、BLX为带链接跳转并切换指令集,通过这两个指令集,可以实现函数的调用跳转。
为了达到从调用函数跳转到某个所需的被调用函数的目的,在执行所述步骤S101之前,可以从所述调用函数的首地址开始寻找所有的BL和BLX指令。在找到调用函数中跳转指令(BL或BLX)的地址之后,可以把该地址下跳转指令(BL或BLX指令)中记录的地址替换为所需的目标地址,以便于在该跳转指令中记录关于被调用函数的目标地址。
在本发明实施例中,可以仅在所述调用函数中包括的跳转指令中配置包括关于被调用函数的偏移地址。由于所述调用函数的地址为已知,因此,在后续执行到所述跳转指令时,根据所述跳转指令中的偏移地址和所述调用函数的地址,可以计算出关于被调用函数的目标地址。
S102:根据所述跳转指令中的目标地址确定被调用函数的入口地址。
所述目标地址可以直接为所述被调用函数的入口地址。或者,也可以为关于被调用函数的中转地址,在确定出目标地址后,可以首先找到目标地址所指示的空闲空间,然后再从该空闲空间中得到所述被调用函数的入口地址。
S103:根据确定的入口地址开始执行所述被调用函数。
在确定了被调用函数的入口地址后,即可从该入口地址所对应的存储空间中存储的指令开始,执行所述被调用函数,实现该被调用函数的功能。
本发明实施例能够通过对调用函数中的跳转指令进行配置以及处理,直接跳转到跳转指令指示的目标地址所关联的被调用函数,简便、快捷地实现函数跳转调用。并且本发明实施例可以只针对单个调用函数完成函数跳转和调用,不会影响其他的调用函数。
再请参见图2,是本发明实施例的一种在应用程序中的跳转处理方法的流程示意图,本发明实施例的所述方法可以由智能终端中的处理器来执行,所述智能终端包括智能手机、平板电脑等设备,具体的,本发明实施例的所述方法包括如下步骤。
S201:从应用程序中的调用函数的首地址开始确定跳转指令,并将确定的跳转指令记录的地址配置为目标地址的偏移地址。
当需要从调用函数跳转到某个所需的被调用函数时,可以先对所述调用函数中的跳转指令记录的偏移地址进行修改,将其替换为所述所需的被调用函数相对于调用函数所在地址的偏移地址。
具体的,跳转指令包括BL或BLX指令等,在所述调用函数的跳转指令中可以记录关于所述被调用函数的偏移地址,根据所述调用函数的地址和记录的偏移地址,计算得到所述被调用函数的目标地址,因此,所述调用函数中的跳转指令用于指示目标地址。
跳转指令中记录关于所述被调用函数的偏移地址是指:所述被调用函数的入口地址相对于所述调用函数的入口地址的偏移地址;或者,一个包括有被调用函数的入口地址的空闲空间的地址相对于所述调用函数的入口地址的偏移地址,例如内存中的某个空闲空间的地址相对于所述调用函数的入口地址的偏移地址。
S202:在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;应用程序中的所述调用函数主要用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数,即跳转到所需的某个被调用函数。
S203:根据所述跳转指令中的目标地址确定出内存中设置的配置指令。所述跳转指令所指示的目标地址为内存中空闲空间的地址,所述空闲空间中设置有配置指令。在本发明实施例中,所述空闲空间包括:在加载动态库SO文件时,被SO文件占用的内存页中没有存储数据的内存空间。
在ARM结构中,跳转指令(BL或BLX指令)对目标地址的偏移大小有限制,如果偏移地址的大小超过两个字节,则无法有效地将偏移地址记载到跳转指令中。因此,对于超过两个字节的偏移地址,本发明实施例采取的方式是先跳转到SO内部的空闲地址,然后再完成函数跳转。
具体的,SO在被系统加载到内存中时,是按照段进行映射的。每一个段是所有具有相同的读写权限的部分section的集合,映射的时候是按页为单位进行映射,最后不足一页的部分也会占用一页的内存。本发明实施例利用这一部分被占用但没有存储数据的内存来存储一段配置指令,基于该段指令最后能够跳转到所述被调用函数。
S204:根据所述配置指令,得到被调用函数的入口地址。所述配置指令用于指示修改寄存器的值,将包括在该配置指令中的被调用函数的入口地址写入到所述寄存器中。
S205:在执行到调用函数中的所述跳转指令的下一指令时,读取所述寄存器中写入的所述被调用函数的入口地址。
S206:从所述入口地址开始执行所述被调用函数。在确定了被调用函数的入口地址后,即可从该入口地址所对应的存储空间中存储的指令,开始执行所述被调用函数,实现该被调用函数的功能。
本发明实施例能够通过对调用函数中的跳转指令进行配置以及处理,直接跳转到跳转指令指示的目标地址所关联的被调用函数,简便、快捷地实现函数跳转调用。并且本发明实施例可以只针对单个调用函数完成函数跳转和调用,不会影响其他的调用函数。
再请参见图3,是本发明实施例的一种在应用程序中的跳转处理装置的结构组成示意图,本发明实施例的所述装置可以应用在智能终端中,所述智能终端包括智能手机、平板电脑等设备,具体的,所述装置包括如下模块。
获取模块301,用于在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;确定模块302,用于根据所述跳转指令中的目标地址确定被调用函数的入口地址;执行模块303,用于根据确定的入口地址开始执行所述被调用函数。
为了达到从调用函数跳转到某个所需的被调用函数的目的,在所述获取模块301获取所述调用函数中的跳转指令之前,可以从所述调用函数的首地址开始寻找所有的BL和BLX指令。在找到调用函数中跳转指令(BL或BLX)的地址之后,可以把该地址下跳转指令(BL或BLX)中记录的目标地址替换为所需地址,以便于在该跳转指令中记录关于被调用函数的目标地址。
在本发明实施例中,可以在所述调用函数包括的跳转指令(BL或BLX指令)中配置关于被调用函数的偏移地址。由于所述调用函数的地址为已知,因此,在所述获取模块301获取到跳转指令后,所述确定模块302能够根据所述跳转指令中的偏移地址和所述调用函数的地址,可以计算出关于被调用函数的目标地址。
所述目标地址可以直接为所述被调用函数的入口地址。或者,也可以为关于被调用函数的中转地址,在确定出目标地址后,所述确定模块302可以首先找到目标地址所指示的空闲空间,然后再从该空闲空间中得到所述被调用函数的入口地址。
在确定了被调用函数的入口地址后,所述执行模块303即可从该入口地址所对应的存储空间中存储的指令,开始执行所述被调用函数,实现该被调用函数的功能。
进一步可选地,所述跳转指令中记录的目标地址为内存中空闲空间的地址,所述空闲空间中设置有配置指令;所述确定模块302,具体用于根据所述跳转指令中的目标地址确定出内存中设置的配置指令;根据所述配置指令,得到被调用函数的入口地址。
进一步可选地,所述空闲空间是指:在加载动态库SO文件时,被SO文件占用的内存页中没有存储数据的内存空间。
进一步可选地,所述配置指令用于指示修改寄存器的值并将包括在该配置指令中的被调用函数的入口地址写入到所述寄存器中。
进一步可选地,所述执行模块303具体用于在执行到调用函数中的所述跳转指令的下一指令时,读取所述寄存器中写入的所述被调用函数的入口地址;从所述入口地址开始执行所述被调用函数。
进一步可选地,本发明实施例的所述装置还可以包括:
预置模块304,用于从应用程序中的调用函数的首地址开始确定跳转指令,并将确定的跳转指令记录的地址配置为目标地址的偏移地址。
本发明实施例中所述装置的各个模块的具体功能实现可参考图1和图2所对应方法实施例中相关步骤的具体的描述,在此不赘述。
本发明实施例能够通过对调用函数中的跳转指令进行配置以及处理,直接跳转到跳转指令指示的目标地址所关联的被调用函数,简便快捷地实现有针对性的函数跳转调用,只针对单个调用函数完成函数跳转和调用,不会影响其他的调用函数。
再请参见图4,是本发明实施例的一种智能终端的结构示意图,本发明实施例的所述智能终端可以包括电源、主板、摄像头、用户接口以及外壳等结构,进一步地,还包括处理器401、存储器402以及内存403。所述处理器401、存储器402以及内存403之间可以通过总线404相连。
所述总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器402可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);所述存储器402还可以包括上述种类的存储器的组合。
所述处理器401可以是中央处理器(central processing unit,CPU),所述存储器402还用于存储程序指令以及动态库SO等相关文件,这些相关的文件数据可以加载到所述内存中。所述处理器401可以调用所述程序指令,实现一种在应用程序中的跳转处理方法。
具体的,所述处理器401用于在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;根据所述跳转指令中的目标地址确定被调用函数的入口地址;根据确定的入口地址开始执行所述被调用函数。
其中可选地,所述跳转指令中记录的目标地址为内存中空闲空间的地址,所述空闲空间中设置有配置指令,所述处理器401具体用于根据所述跳转指令中的目标地址确定出内存中设置的配置指令;根据所述配置指令,得到被调用函数的入口地址。
其中可选地,所述空闲空间是指:在加载动态库SO文件时,被SO文件占用的内存页中没有存储数据的内存空间。
其中可选地,所述配置指令用于指示修改寄存器的值并将包括在该配置指令中的被调用函数的入口地址写入到所述寄存器中。
其中可选地,所述处理器401具体用于在执行到调用函数中的所述跳转指令的下一指令时,读取所述寄存器中写入的所述被调用函数的入口地址;从所述入口地址开始执行所述被调用函数。
其中可选地,所述处理器401还用于从应用程序中的调用函数的首地址开始确定跳转指令,并将确定的跳转指令记录的地址配置为目标地址的偏移地址。
本发明实施例中所述处理器401的具体实现可参考图1和图2所对应方法实施例中相关步骤的具体描述,在此不赘述。
本发明实施例能够通过对调用函数中的跳转指令进行配置以及处理,直接跳转到跳转指令指示的目标地址所关联的被调用函数,简便快捷地实现有针对性的函数跳转调用,只针对单个调用函数完成函数跳转和调用,不会影响其他的调用函数。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (13)

1.一种在应用程序中的跳转处理方法,其特征在于,包括:
在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令指示有目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;
根据所述跳转指令中的目标地址确定被调用函数的入口地址;
根据确定的入口地址开始执行所述被调用函数。
2.如权利要求1所述的方法,其特征在于,所述跳转指令中记录的目标地址为内存中空闲空间的地址,所述空闲空间中设置有配置指令,所述根据所述跳转指令中的目标地址确定被调用函数的入口地址,包括:
根据所述跳转指令中的目标地址确定出内存中设置的配置指令;
根据所述配置指令,得到被调用函数的入口地址。
3.如权利要求2所述的方法,其特征在于,所述空闲空间是指:在加载动态库SO文件时,被SO文件占用的内存页中没有存储数据的内存空间。
4.如权利要求2或3所述的方法,其特征在于,所述配置指令用于指示修改寄存器的值并将包括在该配置指令中的被调用函数的入口地址写入到所述寄存器中。
5.如权利要求4所述的方法,其特征在于,所述根据确定的入口地址开始执行所述被调用函数,包括:
在执行到调用函数中的所述跳转指令的下一指令时,读取所述寄存器中写入的所述被调用函数的入口地址;
从所述入口地址开始执行所述被调用函数。
6.如权利要求1所述的方法,其特征在于,所述在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令之前,还包括:
从应用程序中的调用函数的首地址开始确定跳转指令,并将确定的跳转指令记录的地址配置为目标地址的偏移地址。
7.一种在应用程序中的跳转处理装置,其特征在于,包括:
获取模块,用于在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;
确定模块,用于根据所述跳转指令中的目标地址确定被调用函数的入口地址;
执行模块,用于根据确定的入口地址开始执行所述被调用函数。
8.如权利要求7所述的装置,其特征在于,所述跳转指令中记录的目标地址为内存中空闲空间的地址,所述空闲空间中设置有配置指令;
所述确定模块,具体用于根据所述跳转指令中的目标地址确定出内存中设置的配置指令;根据所述配置指令,得到被调用函数的入口地址。
9.如权利要求8所述的装置,其特征在于,所述空闲空间是指:在加载动态库SO文件时,被SO文件占用的内存页中没有存储数据的内存空间。
10.如权利要求8或9所述的装置,其特征在于,所述配置指令用于指示修改寄存器的值并将包括在该配置指令中的被调用函数的入口地址写入到所述寄存器中。
11.如权利要求10所述的装置,其特征在于,
所述执行模块具体用于在执行到调用函数中的所述跳转指令的下一指令时,读取所述寄存器中写入的所述被调用函数的入口地址;从所述入口地址开始执行所述被调用函数。
12.如权利要求7所述的装置,其特征在于,还包括:
预置模块,用于从应用程序中的调用函数的首地址开始确定跳转指令,并将确定的跳转指令记录的地址配置为目标地址的偏移地址。
13.一种智能终端,其特征在于,包括处理器;
所述处理器,用于在执行到应用程序中的调用函数时,获取所述调用函数中的跳转指令;所述跳转指令用于指示目标地址,所述调用函数用于使所述应用程序从所述调用函数跳转到所述目标地址所关联的被调用函数;根据所述跳转指令中的目标地址确定被调用函数的入口地址;根据确定的入口地址开始执行所述被调用函数。
CN201610382640.2A 2016-06-01 2016-06-01 一种在应用程序中的跳转处理方法、装置及智能终端 Active CN106095416B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610382640.2A CN106095416B (zh) 2016-06-01 2016-06-01 一种在应用程序中的跳转处理方法、装置及智能终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610382640.2A CN106095416B (zh) 2016-06-01 2016-06-01 一种在应用程序中的跳转处理方法、装置及智能终端

Publications (2)

Publication Number Publication Date
CN106095416A true CN106095416A (zh) 2016-11-09
CN106095416B CN106095416B (zh) 2020-10-09

Family

ID=57446965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610382640.2A Active CN106095416B (zh) 2016-06-01 2016-06-01 一种在应用程序中的跳转处理方法、装置及智能终端

Country Status (1)

Country Link
CN (1) CN106095416B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943539A (zh) * 2017-11-16 2018-04-20 武汉斗鱼网络科技有限公司 应用页面启动方法和应用页面启动装置
CN108415739A (zh) * 2018-02-28 2018-08-17 腾讯科技(深圳)有限公司 一种动态链接库函数的钩挂方法、装置和存储介质
CN109324838A (zh) * 2018-08-31 2019-02-12 深圳市元征科技股份有限公司 单片机程序的执行方法、执行装置及终端
CN110597571A (zh) * 2018-06-12 2019-12-20 杨力祥 一种非立即数跳转的保护方法及对应计算装置
CN111381905A (zh) * 2018-12-27 2020-07-07 北京华为数字技术有限公司 一种程序处理方法、装置及设备
CN112559920A (zh) * 2020-12-23 2021-03-26 苏州三六零智能安全科技有限公司 基于跳转指令的hook方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1710547A (zh) * 2004-06-16 2005-12-21 华为技术有限公司 软件测试方法及其系统
CN1838074A (zh) * 2006-02-22 2006-09-27 北京金山软件有限公司 一种64位视窗操作系统下获取函数参数的方法及系统
CN101714075B (zh) * 2009-12-17 2012-12-19 深圳市万兴软件有限公司 函数调用方法和装置
CN103530118A (zh) * 2013-09-30 2014-01-22 广州华多网络科技有限公司 将自定义dll注入目标进程的方法及装置
CN103631712A (zh) * 2013-10-23 2014-03-12 北京信息控制研究所 一种基于内存管理的模式化软件关键行为跟踪方法
CN102023843B (zh) * 2010-11-24 2014-04-23 北京握奇数据系统有限公司 函数的调用方法、装置及智能卡
CN104217157A (zh) * 2014-07-31 2014-12-17 珠海市君天电子科技有限公司 一种漏洞防利用方法及系统
CN105573788A (zh) * 2015-12-15 2016-05-11 华为技术有限公司 补丁处理的方法和设备以及生成补丁的方法和设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1710547A (zh) * 2004-06-16 2005-12-21 华为技术有限公司 软件测试方法及其系统
CN1838074A (zh) * 2006-02-22 2006-09-27 北京金山软件有限公司 一种64位视窗操作系统下获取函数参数的方法及系统
CN101714075B (zh) * 2009-12-17 2012-12-19 深圳市万兴软件有限公司 函数调用方法和装置
CN102023843B (zh) * 2010-11-24 2014-04-23 北京握奇数据系统有限公司 函数的调用方法、装置及智能卡
CN103530118A (zh) * 2013-09-30 2014-01-22 广州华多网络科技有限公司 将自定义dll注入目标进程的方法及装置
CN103631712A (zh) * 2013-10-23 2014-03-12 北京信息控制研究所 一种基于内存管理的模式化软件关键行为跟踪方法
CN104217157A (zh) * 2014-07-31 2014-12-17 珠海市君天电子科技有限公司 一种漏洞防利用方法及系统
CN105573788A (zh) * 2015-12-15 2016-05-11 华为技术有限公司 补丁处理的方法和设备以及生成补丁的方法和设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943539A (zh) * 2017-11-16 2018-04-20 武汉斗鱼网络科技有限公司 应用页面启动方法和应用页面启动装置
CN107943539B (zh) * 2017-11-16 2021-11-09 武汉斗鱼网络科技有限公司 应用页面启动方法和应用页面启动装置
CN108415739A (zh) * 2018-02-28 2018-08-17 腾讯科技(深圳)有限公司 一种动态链接库函数的钩挂方法、装置和存储介质
CN108415739B (zh) * 2018-02-28 2020-04-14 腾讯科技(深圳)有限公司 一种动态链接库函数的钩挂方法、装置和存储介质
CN110597571A (zh) * 2018-06-12 2019-12-20 杨力祥 一种非立即数跳转的保护方法及对应计算装置
CN109324838A (zh) * 2018-08-31 2019-02-12 深圳市元征科技股份有限公司 单片机程序的执行方法、执行装置及终端
CN109324838B (zh) * 2018-08-31 2022-05-10 深圳市元征科技股份有限公司 单片机程序的执行方法、执行装置及终端
CN111381905A (zh) * 2018-12-27 2020-07-07 北京华为数字技术有限公司 一种程序处理方法、装置及设备
CN111381905B (zh) * 2018-12-27 2023-07-18 北京华为数字技术有限公司 一种程序处理方法、装置及设备
CN112559920A (zh) * 2020-12-23 2021-03-26 苏州三六零智能安全科技有限公司 基于跳转指令的hook方法、装置、设备及存储介质
CN112559920B (zh) * 2020-12-23 2022-11-04 苏州三六零智能安全科技有限公司 基于跳转指令的hook方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN106095416B (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN106095416A (zh) 一种在应用程序中的跳转处理方法、装置及智能终端
US7562180B2 (en) Method and device for reduced read latency of non-volatile memory
JP5002201B2 (ja) メモリシステム
US8429374B2 (en) System and method for read-while-write with NAND memory device
KR20180037320A (ko) 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러
US6944060B2 (en) Non-volatile storage device and control method thereof
US20180275921A1 (en) Storage device
US8281072B2 (en) Data processing system, controller, and method thereof for searching for specific memory area
JP5090819B2 (ja) メモリーカード及び該データ格納方法
CN104011689B (zh) 非易失性存储器损耗管理
KR102240261B1 (ko) 메모리 관리
CN106445834A (zh) 管理存储器模块中的操作状态数据
US20080109627A1 (en) Nonvolatile Memory Device And Method For Accessing Nonvolatile Memory Device
US7975096B2 (en) Storage system having multiple non-volatile memories, and controller and access method thereof
KR20050107369A (ko) 모바일 기기를 위한 코드 직접 수행기능을 갖는 대용량저장장치 및 제어 방법
US10649840B2 (en) Data storage device performing recovery operation after sudden power-off and operating method thereof
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US20090259796A1 (en) Data writing method for non-volatile memory and storage system and controller using the same
KR20190059890A (ko) 정보를 수집하는 방법 및 장치, 그리고 메모리를 해제하는 방법 및 장치
JP2013016148A (ja) メモリコントローラ、不揮発性記憶装置
KR20070063132A (ko) 이동 통신 단말기의 배드 블럭 관리장치와 배드 블럭관리방법
US20070162699A1 (en) Apparatus for expanding storage capacity of memory card and operating method of memory card with the same
JP2012164114A (ja) 不揮発性半導体記憶装置及びデータ処理システム
KR20170121451A (ko) 모바일 장치의 동작 방법 및 모바일 장치
CN102609291B (zh) 基于固态硬盘的系统启动方法和固态硬盘

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant