基于Preload的Hook控制方法及装置制造方法及图纸

技术编号:33203920 阅读:38 留言:0更新日期:2022-04-24 00:45
本公开涉及一种基于Preload的Hook控制方法及装置,其中,方法包括:接收到启动软件指令,通过程序加载器加载目标函数,通过对指定文件进行监控,获取进程名称列表和调用函数名称列表,获取当前进程和当前调用函数,并判断当前进程是否为当前待Hook进程和/或判断当前调用函数是否为当前待Hook函数,在当前进程为当前待Hook进程和/或在当前调用函数为当前待Hook函数,对当前进程和/或当前调用函数进行Hook加载处理,本公开基于Preload机制,结合内联Hook技术原理和对指定文件的监控,实现了实时控制Hook的加载等操作。时控制Hook的加载等操作。时控制Hook的加载等操作。

【技术实现步骤摘要】
基于Preload的Hook控制方法及装置


[0001]本公开涉及计算机
,尤其涉及一种基于Preload(预加载)的Hook(钩子)控制方法及装置。

技术介绍

[0002]通常在Linux下Preload技术实现Hook常用的方法是构建一个动态库假定A.so,在该库中按照实际需要重新设计和开发Libc.so.6中的系统函数或其他库导出符号的同名函数假定为Afuncion,然后通过Linux的Preload进行预加载,使进程加载器预先加载A.so,由于A.so导出了Afuncion,那么在进程后续调用Afuncion时,就会直接指向A.so中的Afunction,从而实现Hook。
[0003]相关技术中,Preload的Hook机制无法实时控制Hook,因此如何实时控制Hook已成为亟需解决的问题。

技术实现思路

[0004]为了解决上述技术问题,本公开提供了一种基于Preload的Hook控制方法及装置。
[0005]第一方面,本公开实施例提供了一种基于Preload的Hook控制方法,包括:
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Preload的Hook控制方法,其特征在于,包括:接收到启动软件指令,通过程序加载器加载目标函数;通过对指定文件进行监控,获取进程名称列表和调用函数名称列表;其中,所述进程名称列表包括当前待Hook进程、以及所述调用函数名称列表包括当前待Hook函数;获取当前进程和当前调用函数,并判断所述当前进程是否为所述当前待Hook进程和/或判断所述当前调用函数是否为所述当前待Hook函数;在所述当前进程为所述当前待Hook进程和/或在所述当前调用函数为所述当前待Hook函数,对所述当前进程和/或所述当前调用函数进行Hook加载处理。2.根据权利要求1所述的基于Preload的Hook控制方法,其特征在于,所述对指定文件进行监控,获取进程名称列表,包括:创建线程循环读取事件;在所述事件为文件修改事件的情况下,读取文件中待加载的进程名称生成所述进程名称列表。3.根据权利要求1所述的基于Preload的Hook控制方法,其特征在于,所述对指定文件进行监控,获取调用函数名称列表,包括:创建线程循环读取事件;在所述事件为文件修改事件的情况下,读取文件中待调用的函数名称生成所述调用函数名称列表。4.根据权利要求1所述的基于Preload的Hook控制方法,其特征在于,所述对所述当前进程或所述当前调用函数进行Hook加载处理,包括:读取所述当前进程或所述当前调用函数对应的函数地址的首指令;将所述首指令替换成第一绝对跳转指令。5.根据权利要求1所述的基于Preload的Hook控制方法,其特征在于,所述进程名称列表还包括:已加载Hook进程;在所述当前进程不为所述当前待Hook进程的情况下,判断所述当前进程是否为所述已加载Hook进程;所述当前进程为所述已加载Hook进程,对所述当前进程进行Hook卸载处理。6.根据权利要求1所述的基于Preload的Hook控制方法,其特征在于,所述调用...

【专利技术属性】
技术研发人员:林皓王天齐杨泳江韬
申请(专利权)人:北京北信源软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1