CN108345526B - 钩子处理方法及装置 - Google Patents

钩子处理方法及装置 Download PDF

Info

Publication number
CN108345526B
CN108345526B CN201711392044.3A CN201711392044A CN108345526B CN 108345526 B CN108345526 B CN 108345526B CN 201711392044 A CN201711392044 A CN 201711392044A CN 108345526 B CN108345526 B CN 108345526B
Authority
CN
China
Prior art keywords
function
hook
api
api hook
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.)
Active
Application number
CN201711392044.3A
Other languages
English (en)
Other versions
CN108345526A (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.)
Beijing Falcon Safety Technology Co ltd
Original Assignee
Beijing Kingsoft Security Management System Technology 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 Beijing Kingsoft Security Management System Technology Co ltd filed Critical Beijing Kingsoft Security Management System Technology Co ltd
Priority to CN201711392044.3A priority Critical patent/CN108345526B/zh
Publication of CN108345526A publication Critical patent/CN108345526A/zh
Application granted granted Critical
Publication of CN108345526B publication Critical patent/CN108345526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种钩子处理方法及装置,其中,该方法包括:获取API Hook所钩挂的函数;调用函数;判断调用函数之后API Hook是否监控到函数被调用;如果API Hook未监控到函数被调用,则确定API Hook被卸载,解决了相关技术中无法监控API Hook是否被卸载的问题,实现了对API Hook是否被卸载的监控。

Description

钩子处理方法及装置
技术领域
本发明涉及信息技术领域,具体而言,涉及一种钩子处理方法及装置。
背景技术
API Hook技术是一种用于改变API执行结果的技术,挂钩API函数可以控制、拦截API函数的调用,API Hook技术在各个平台上都有使用,例如Linux,Android,Windows。Microsoft自身也在Windows操作系统里面使用了这个技术,如Windows兼容模式、热补丁等。
API Hook技术在安全软件的编写中也用得非常广泛,因为使用它可以很好的实现监控一些系统调用,从而拦截病毒木马的恶意操作。
针对相关技术中无法监控API Hook是否被卸载的问题,目前还没有有效地解决方案。
发明内容
本发明实施例提供了一种钩子处理方法及装置,以至少解决相关技术中无法监控API Hook是否被卸载的问题。
根据本发明的一个实施例,提供了一种钩子处理方法,包括:获取API Hook所钩挂的函数;调用所述函数;判断调用所述函数之后所述API Hook是否监控到所述函数被调用;如果所述API Hook未监控到所述函数被调用,则确定所述API Hook被卸载。
可选地,判断调用所述函数之后所述API Hook是否监控到所述函数被调用包括:判断调用所述函数之后程序的运行是否会回到所述API Hook中,以判断所述API Hook是否监控到所述函数被调用,其中,所述函数包括在所述程序中。
可选地,在确定所述API Hook被卸载之后,所述方法还包括:重新将所述API Hook钩挂在所述函数上。
可选地,重新将所述API Hook钩挂到所述函数上包括以下之一:通过重新修改所述函数指针,将所述API Hook钩挂到所述函数上;通过修改所述函数的代码,将所述APIHook钩挂到所述函数上。
根据本发明的另一个实施例,提供了一种钩子处理装置,包括:第一获取模块,用于获取API Hook所钩挂的函数;调用模块,用于调用所述函数;第一判断模块,用于判断调用所述函数之后所述API Hook是否监控到所述函数被调用;第一确定模块,用于如果所述API Hook未监控到所述函数被调用,则确定所述API Hook被卸载。
可选地,所述第一判断模块包括:判断单元,用于判断调用所述函数之后程序的运行是否会回到所述API Hook中,以判断所述API Hook是否监控到所述函数被调用,其中,所述函数包括在所述程序中。
可选地,所述装置还包括:钩挂模块,用于重新将所述API Hook钩挂在所述函数上。
可选地,所述钩挂模块包括以下之一:第一钩挂单元,用于通过重新修改所述函数指针,将所述API Hook钩挂到所述函数上;第二钩挂单元,用于通过修改所述函数的代码,将所述API Hook钩挂到所述函数上。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的方法。
根据本发明的又一个实施例,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一项所述的方法。
通过本发明,获取API Hook所钩挂的函数;调用函数;判断调用函数之后API Hook是否监控到函数被调用;如果API Hook未监控到函数被调用,则确定API Hook被卸载,由此可见,采用上述方案获取并调用API Hook所钩挂的函数,通过判断API Hook是否监控到该函数被调用来确定API Hook是否被卸载,如果API Hook未监控到该函数被调用,则可以确定API Hook已被卸载,从而使得可以判断出函数上钩挂的API Hook是否已被卸载,因此,实现了对API Hook是否被卸载的监控,从而解决了相关技术中无法监控API Hook是否被卸载的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种钩子处理方法的移动终端的硬件结构框图;
图2是根据本发明实施例的一种钩子处理方法的流程图;
图3是根据本发明实施例的一种钩子处理装置的结构框图一;
图4是根据本发明实施例的一种钩子处理装置的结构框图二;
图5是根据本发明实施例的一种钩子处理装置的结构框图三;
图6是根据本发明实施例的一种钩子处理装置的结构框图四;
图7是根据本发明实施例的一种钩子处理装置的结构框图五;
图8是根据本发明实施例的一种钩子处理装置的结构框图六;
图9是根据本发明实施例的一种钩子处理装置的结构框图七。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种钩子处理方法的移动终端的硬件结构框图,如图1所示,移动终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的钩子处理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种钩子处理方法,图2是根据本发明实施例的一种钩子处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取API Hook所钩挂的函数;
步骤S204,调用上述函数;
步骤S206,判断调用函数之后API Hook是否监控到函数被调用;
步骤S208,如果API Hook未监控到函数被调用,则确定API Hook被卸载。
可选地,上述钩子处理方法可以但不限于应用于监控系统调用的场景中。例如:监控API Hook是否被卸载的场景中。
可选地,在本实施例中,可以通过一个额外的钩子测试程序来判断一个进程或者一个完整的程序中挂载的所有的钩子,例如,有一个test.exe,该进程中挂载了多个钩子,钩子测试程序可以提供一个页面,该页面中显示了该进程中的所有的钩子,点击其中的一个钩子进行卸载测试,执行上述步骤之后,在该钩子测试程序中可以显示出该钩子是否被卸载,更优的,还可以显示被卸载的原因。另外,还可以对钩子测试程序进行配置,配置内容可以为间隔预定时间自动进行测试,自动测试发现被卸载之后,自动进行重新钩挂。这样通过一个额外的程序就可以完成所有钩子的监控。
通过上述步骤,获取API Hook所钩挂的函数;调用函数;判断调用函数之后APIHook是否监控到函数被调用;如果API Hook未监控到函数被调用,则确定API Hook被卸载,由此可见,采用上述方案获取并调用API Hook所钩挂的函数,通过判断API Hook是否监控到该函数被调用来确定API Hook是否被卸载,如果API Hook未监控到该函数被调用,则可以确定API Hook已被卸载,从而使得可以判断出函数上钩挂的API Hook是否已被卸载,因此,实现了对API Hook是否被卸载的监控,从而解决了相关技术中无法监控API Hook是否被卸载的问题。
可选地,在上述步骤S206中,可以通过监测函数所在程序的运行来判断API Hook是否监控到函数被调用,如果程序的运行未能回到API Hook中,则表示API Hook未能监控到函数的调用,也就可以确定API Hook被卸载了。例如:可以但不限于判断调用函数之后程序的运行是否会回到API Hook中,以判断API Hook是否监控到函数被调用,其中,上述函数包括在上述程序中。
例如:在一个监控函数A上钩挂的API Hook1是否被卸载的场景中,首先获取APIHook1所钩挂的函数A,并调用该函数A,在函数A被调用之后,判断API Hook1是否监控到该函数A被调用了,如果API Hook1未监控到函数A被调用,则可以确定API Hook1被卸载了,如果API Hook1监控到了函数A被调用,则可以确定API Hook1没有被卸载,从而实现对函数A上钩挂的API Hook1的监控。
可选地,在确认API Hook被卸载之后,可以将API Hook重新钩挂到对应的函数上。例如:在上述步骤S208之后,重新将API Hook钩挂在函数上。
在上述监控函数A上钩挂的API Hook1是否被卸载的场景中,在确认API Hook1被卸载后,可以将API Hook1重新钩挂到对应的函数A上,以实现API Hook1对函数A的监视。
可选地,可以但不限于通过以下方式之一将hook钩挂到函数中:
方式一,通过重新修改函数指针,将API Hook钩挂到函数上。
方式二,通过修改函数的代码,将API Hook钩挂到函数上。
可选地,在确认了API Hook被卸载之后,可以但不限于根据API Hook的优先级判断是否需要重新将API Hook钩挂到函数上。例如:在上述步骤S208之后,判断API Hook钩挂的函数的优先级,根据优先级确定是否重新将API Hook钩挂到函数上。
在上述监控函数A上钩挂的API Hook1是否被卸载的场景中,在确认了API Hook1被卸载之后,可以但不限于根据API Hook1的优先级判断是否需要重新将API Hook1钩挂到函数A上。例如:如果API Hook1的优先级低于预设值,则不必再将API Hook1钩挂到函数A上了,如果API Hook1的优先级高于上述预设值,则重新将API Hook1钩挂在函数A上,从而使API Hook1能够继续对函数A进行监视。
可选地,在确认了API Hook被卸载之后,可以但不限于对API Hook被卸载的原因进行分析确定,可以根据函数调用的日志文件进行API Hook被卸载原因的分析。例如:在上述步骤S208之后,获取函数之前被调用的日志文件,通过日志文件确定API Hook被卸载的原因。
可选地,在确定API Hook被卸载的原因之后,可以根据原因的类型确定API Hook是否需要被重新钩挂到函数上。
实施例2
在本实施例中还提供了一种钩子处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的一种钩子处理装置的结构框图一,如图3所示,该装置包括:
第一获取模块32,用于获取API Hook所钩挂的函数;
调用模块34,耦合至用于调用上述函数;
第一判断模块36,用于判断调用函数之后API Hook是否监控到函数被调用;
第一确定模块38,用于如果API Hook未监控到函数被调用,则确定API Hook被卸载。
可选地,上述钩子处理装置可以但不限于应用于监控系统调用的场景中。例如:监控API Hook是否被卸载的场景中。
可选地,在本实施例中,可以通过一个额外的钩子测试程序来判断一个进程或者一个完整的程序中挂载的所有的钩子,例如,有一个test.exe,该进程中挂载了多个钩子,钩子测试程序可以提供一个页面,该页面中显示了该进程中的所有的钩子,点击其中的一个钩子进行卸载测试,执行上述步骤之后,在该钩子测试程序中可以显示出该钩子是否被卸载,更优的,还可以显示被卸载的原因。另外,还可以对钩子测试程序进行配置,配置内容可以为间隔预定时间自动进行测试,自动测试发现被卸载之后,自动进行重新钩挂。这样通过一个额外的程序就可以完成所有钩子的监控。
通过上述装置,第一获取模块获取API Hook所钩挂的函数;调用模块调用上述函数;第一判断模块判断调用函数之后API Hook是否监控到函数被调用;第一确定模块在APIHook未监控到函数被调用的情况下确定API Hook被卸载,由此可见,采用上述方案获取并调用API Hook所钩挂的函数,通过判断API Hook是否监控到该函数被调用来确定API Hook是否被卸载,如果API Hook未监控到该函数被调用,则可以确定API Hook已被卸载,从而使得可以判断出函数上钩挂的API Hook是否已被卸载,因此,实现了对API Hook是否被卸载的监控,从而解决了相关技术中无法监控API Hook是否被卸载的问题。
图4是根据本发明实施例的一种钩子处理装置的结构框图二,如图4所示,可选地,第一判断模块36包括:
判断单元42,用于判断调用函数之后程序的运行是否会回到API Hook中,以判断API Hook是否监控到函数被调用,其中,函数包括在程序中。
可选地,判断单元可以通过监测函数所在程序的运行来判断API Hook是否监控到函数被调用,如果程序的运行未能回到API Hook中,则表示API Hook未能监控到函数的调用,也就可以确定API Hook被卸载了。
例如:在一个监控函数A上钩挂的API Hook1是否被卸载的场景中,首先第一获取模块获取API Hook1所钩挂的函数A,并由调用模块调用该函数A,在函数A被调用之后,第一判断模块判断API Hook1是否监控到该函数A被调用了,如果API Hook1未监控到函数A被调用,则可以由第一确定模块确定API Hook1被卸载了,如果API Hook1监控到了函数A被调用,则可以确定API Hook1没有被卸载,从而实现对函数A上钩挂的API Hook1的监控。
图5是根据本发明实施例的一种钩子处理装置的结构框图三,如图5所示,可选地,上述装置还包括:
钩挂模块52,耦合至第一确定模块38,用于重新将API Hook钩挂在函数上。
可选地,在确认API Hook被卸载之后,可以将API Hook重新钩挂到对应的函数上。
在上述监控函数A上钩挂的API Hook1是否被卸载的场景中,在确认API Hook1被卸载后,可以由钩挂模块将API Hook1重新钩挂到对应的函数A上,以实现API Hook1对函数A的监视。
图6是根据本发明实施例的一种钩子处理装置的结构框图四,如图6所示,可选地,钩挂模块52包括以下之一:
第一钩挂单元62,用于通过重新修改函数指针,将API Hook钩挂到函数上;
第二钩挂单元64,用于通过修改函数的代码,将API Hook钩挂到函数上。
图7是根据本发明实施例的一种钩子处理装置的结构框图五,如图7所示,可选地,上述装置还包括:
第二判断模块72,耦合至第一确定模块38,用于判断API Hook钩挂的函数的优先级;
第二确定模块74,耦合至第二判断模块72,用于根据优先级确定是否重新将APIHook钩挂到函数上。
可选地,在确认了API Hook被卸载之后,可以但不限于根据API Hook的优先级判断是否需要重新将API Hook钩挂到函数上。
在上述监控函数A上钩挂的API Hook1是否被卸载的场景中,在确认了API Hook1被卸载之后,可以但不限于根据API Hook1的优先级判断是否需要重新将API Hook1钩挂到函数A上。例如:如果API Hook1的优先级低于预设值,则不必再将API Hook1钩挂到函数A上了,如果API Hook1的优先级高于上述预设值,则重新将API Hook1钩挂在函数A上,从而使API Hook1能够继续对函数A进行监视。
图8是根据本发明实施例的一种钩子处理装置的结构框图六,如图8所示,可选地,上述装置还包括:
第二获取模块82,耦合至第一确定模块38,用于获取函数之前被调用的日志文件;
第三确定模块84,耦合至第二获取模块82,用于通过日志文件确定API Hook被卸载的原因。
可选地,在确认了API Hook被卸载之后,可以但不限于对API Hook被卸载的原因进行分析确定,可以根据函数调用的日志文件进行API Hook被卸载原因的分析。
图9是根据本发明实施例的一种钩子处理装置的结构框图七,如图9所示,可选地,上述装置还包括:
第四确定模块92,耦合至第三确定模块84,用于根据原因的类型确定API Hook是否需要被重新钩挂到函数上。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
实施例3
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,获取API Hook所钩挂的函数;
S2,调用上述函数;
S3,判断调用函数之后API Hook是否监控到函数被调用;
S4,如果API Hook未监控到函数被调用,则确定API Hook被卸载。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的实施例还提供了一种处理器,该处理器用于运行程序,其中,该程序运行时执行上述任一项方法中的步骤。
可选地,在本实施例中,上述程序用于执行以下步骤:
S1,获取API Hook所钩挂的函数;
S2,调用上述函数;
S3,判断调用函数之后API Hook是否监控到函数被调用;
S4,如果API Hook未监控到函数被调用,则确定API Hook被卸载。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种钩子处理方法,其特征在于,包括:
获取API Hook所钩挂的函数;
调用所述函数;
判断调用所述函数之后所述API Hook是否监控到所述函数被调用;
如果所述API Hook未监控到所述函数被调用,则确定所述API Hook被卸载;
在确定所述API Hook被卸载的情况下,根据所述API Hook被卸载的原因的类型或所述API Hook的优先级判断是否重新将所述API Hook钩挂在所述函数上。
2.根据权利要求1所述的方法,其特征在于,判断调用所述函数之后所述API Hook是否监控到所述函数被调用包括:
判断调用所述函数之后程序的运行是否会回到所述API Hook中,以判断所述API Hook是否监控到所述函数被调用,其中,所述函数包括在所述程序中。
3.根据权利要求1所述的方法,其特征在于,在判断重新将所述API Hook钩挂在所述函数上的情况下,所述方法还包括:
重新将所述API Hook钩挂在所述函数上。
4.根据权利要求3所述的方法,其特征在于,重新将所述API Hook钩挂到所述函数上包括以下之一:
通过重新修改函数指针,将所述API Hook钩挂到所述函数上;
通过修改所述函数的代码,将所述API Hook钩挂到所述函数上。
5.一种钩子处理装置,其特征在于,包括:
第一获取模块,用于获取API Hook所钩挂的函数;
调用模块,用于调用所述函数;
第一判断模块,用于判断调用所述函数之后所述API Hook是否监控到所述函数被调用;
第一确定模块,用于如果所述API Hook未监控到所述函数被调用,则确定所述APIHook被卸载;
其中,所述装置还用于在确定所述API Hook被卸载的情况下,根据所述APIHook被卸载的原因的类型或所述API Hook的优先级判断是否重新将所述API Hook钩挂在所述函数上。
6.根据权利要求5所述的装置,其特征在于,所述第一判断模块包括:
判断单元,用于判断调用所述函数之后程序的运行是否会回到所述API Hook中,以判断所述API Hook是否监控到所述函数被调用,其中,所述函数包括在所述程序中。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
钩挂模块,用于重新将所述API Hook钩挂在所述函数上。
8.根据权利要求7所述的装置,其特征在于,所述钩挂模块包括以下之一:
第一钩挂单元,用于通过重新修改函数指针,将所述API Hook钩挂到所述函数上;
第二钩挂单元,用于通过修改所述函数的代码,将所述API Hook钩挂到所述函数上。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至4中任一项所述的方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任一项所述的方法。
CN201711392044.3A 2017-12-20 2017-12-20 钩子处理方法及装置 Active CN108345526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711392044.3A CN108345526B (zh) 2017-12-20 2017-12-20 钩子处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711392044.3A CN108345526B (zh) 2017-12-20 2017-12-20 钩子处理方法及装置

Publications (2)

Publication Number Publication Date
CN108345526A CN108345526A (zh) 2018-07-31
CN108345526B true CN108345526B (zh) 2021-06-11

Family

ID=62963461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711392044.3A Active CN108345526B (zh) 2017-12-20 2017-12-20 钩子处理方法及装置

Country Status (1)

Country Link
CN (1) CN108345526B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205398A (zh) * 2015-11-04 2015-12-30 北京鼎源科技有限公司 一种基于apk加壳软件动态行为的查壳方法
CN107480029A (zh) * 2017-08-02 2017-12-15 北京深思数盾科技股份有限公司 一种函数调用时间的监控方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516509B2 (en) * 2011-02-08 2013-08-20 BlueStripe Software, Inc. Methods and computer program products for monitoring system calls using safely removable system function table chaining
CN103150513B (zh) * 2013-03-20 2015-12-09 北京奇虎科技有限公司 拦截应用程序中的植入信息的方法及装置
CN105069351A (zh) * 2015-07-23 2015-11-18 浪潮电子信息产业股份有限公司 一种应用程序登录信息防盗取的装置及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205398A (zh) * 2015-11-04 2015-12-30 北京鼎源科技有限公司 一种基于apk加壳软件动态行为的查壳方法
CN107480029A (zh) * 2017-08-02 2017-12-15 北京深思数盾科技股份有限公司 一种函数调用时间的监控方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
二次跳转的SSDT钩挂及其检测方法研究;何耀彬等;《计算机工程与应用》;20110519;第102-105页 *

Also Published As

Publication number Publication date
CN108345526A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
CN102663288B (zh) 病毒查杀方法及装置
CN109635523B (zh) 应用程序检测方法、装置及计算机可读存储介质
CN106709325B (zh) 一种监控程序的方法及装置
CN108228444B (zh) 一种测试方法和装置
CN112039900B (zh) 网络安全风险检测方法、系统、计算机设备和存储介质
CN106648685B (zh) 智能终端系统应用的处理方法、装置及智能终端
CN104021141B (zh) 数据处理和云服务的方法、装置及系统
CN106203092B (zh) 一种拦截恶意程序关机的方法、装置及电子设备
CN111258913A (zh) 算法自动测试方法、装置、计算机系统及可读存储介质
CN113885971A (zh) 一种基于自适应平台系统的状态管理方法及装置
CN107967192B (zh) 一种智能终端的系统崩溃处理方法和装置
CN110598797B (zh) 故障的检测方法及装置、存储介质和电子装置
CN108345526B (zh) 钩子处理方法及装置
CN108121545B (zh) 应用程序的卸载反馈方法及装置
CN111131324A (zh) 业务系统的登陆方法及装置、存储介质、电子装置
CN112527589A (zh) 监控进程的方法和监控进程的装置
CN116070210A (zh) 异常进程的确定方法、装置及病毒查杀方法
CN115146309A (zh) 隐私合规检测方法、装置、服务器、终端及存储介质
CN114637526A (zh) 产品组件升级方法以及相关设备
CN110276212B (zh) 数据的处理方法及装置、存储介质和电子装置
CN103914423B (zh) 一种信息处理方法及电子设备
CN109800567B (zh) 监听前台应用启动的方法及装置、终端设备
CN111427603A (zh) 应用程序的升级方法及装置
CN113934552A (zh) 功能代码的确定方法及装置、存储介质、电子装置
CN106778279B (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100041 room a-0003, 2 / F, building 3, yard 30, Shixing street, Shijingshan District, Beijing

Patentee after: Beijing Falcon Safety Technology Co.,Ltd.

Address before: 12 / F, block B, new office building of China Academy of Building Sciences, No. 30, Beisanhuan East Road, Chaoyang District, Beijing 100013

Patentee before: BEIJING KINGSOFT SECURITY MANAGEMENT SYSTEM TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 3502B, 3rd Floor, Building 4, No. 49 Badachu Road, Shijingshan District, Beijing 100144

Patentee after: Beijing Falcon Safety Technology Co.,Ltd.

Country or region after: China

Address before: 100041 room a-0003, 2 / F, building 3, yard 30, Shixing street, Shijingshan District, Beijing

Patentee before: Beijing Falcon Safety Technology Co.,Ltd.

Country or region before: China