[发明专利]基于Preload的Hook控制方法及装置在审
申请号: | 202111673276.2 | 申请日: | 2021-12-31 |
公开(公告)号: | CN114385563A | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 林皓;王天齐;杨泳;江韬 | 申请(专利权)人: | 北京北信源软件股份有限公司 |
主分类号: | G06F16/17 | 分类号: | G06F16/17 |
代理公司: | 北京开阳星知识产权代理有限公司 11710 | 代理人: | 王艳斌 |
地址: | 100081 北京市海淀区中关村*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 preload hook 控制 方法 装置 | ||
本公开涉及一种基于Preload的Hook控制方法及装置,其中,方法包括:接收到启动软件指令,通过程序加载器加载目标函数,通过对指定文件进行监控,获取进程名称列表和调用函数名称列表,获取当前进程和当前调用函数,并判断当前进程是否为当前待Hook进程和/或判断当前调用函数是否为当前待Hook函数,在当前进程为当前待Hook进程和/或在当前调用函数为当前待Hook函数,对当前进程和/或当前调用函数进行Hook加载处理,本公开基于Preload机制,结合内联Hook技术原理和对指定文件的监控,实现了实时控制Hook的加载等操作。
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于Preload(预加载)的Hook(钩子)控制方法及装置。
背景技术
通常在Linux下Preload技术实现Hook常用的方法是构建一个动态库假定A.so,在该库中按照实际需要重新设计和开发Libc.so.6中的系统函数或其他库导出符号的同名函数假定为Afuncion,然后通过Linux的Preload进行预加载,使进程加载器预先加载A.so,由于A.so导出了Afuncion,那么在进程后续调用Afuncion时,就会直接指向A.so中的Afunction,从而实现Hook。
相关技术中,Preload的Hook机制无法实时控制Hook,因此如何实时控制Hook已成为亟需解决的问题。
发明内容
为了解决上述技术问题,本公开提供了一种基于Preload的Hook控制方法及装置。
第一方面,本公开实施例提供了一种基于Preload的Hook控制方法,包括:
接收到启动软件指令,通过程序加载器加载目标函数;
通过对指定文件进行监控,获取进程名称列表和调用函数名称列表;其中,进程名称列表包括当前待Hook进程、以及调用函数名称列表包括当前待Hook函数;
获取当前进程和当前调用函数,并判断当前进程是否为当前待Hook进程和/或判断当前调用函数是否为当前待Hook函数;
在当前进程为当前待Hook进程和/或在当前调用函数为当前待Hook函数,对当前进程和/或当前调用函数进行Hook加载处理。
第二方面,本公开实施例提供了一种基于Preload的Hook控制装置,包括:
接收模块,用于接收到启动软件指令,通过程序加载器加载目标函数;
第一获取模块,用于通过对指定文件进行监控,获取进程名称列表和调用函数名称列表;其中,进程名称列表包括当前待Hook进程、以及调用函数名称列表包括当前待Hook函数;
第一判断模块,用于获取当前进程和当前调用函数,并判断当前进程是否为当前待Hook进程和/或判断当前调用函数是否为当前待Hook函数;
加载模块,用于在当前进程为当前待Hook进程和/或在当前调用函数为当前待Hook函数,对当前进程和/或当前调用函数进行Hook加载处理。
第三方面、本公开实施例提供了一种移动存储设备读写控制设备,包括:
处理器,用于存储处理器可执行指令的存储器;
处理器,用于从存储器中读取可执行指令,并执行指令以实现本公开前述实施例所述的基于Preload的Hook控制方法。
第四方面、本公开实施例提供了一种移动存储设备读写控制介质,包括:
存储介质存储有计算机程序,计算机程序用于执行本公开前述实施例所述的基于Preload的Hook控制方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北信源软件股份有限公司,未经北京北信源软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111673276.2/2.html,转载请声明来源钻瓜专利网。