[发明专利]基于Linux系统的应用层Hook实现方法、系统、装置及存储介质在审
| 申请号: | 202111155242.4 | 申请日: | 2021-09-29 | 
| 公开(公告)号: | CN113805854A | 公开(公告)日: | 2021-12-17 | 
| 发明(设计)人: | 苗功勋;袁浩;崔新安;李本学 | 申请(专利权)人: | 中孚安全技术有限公司 | 
| 主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/41 | 
| 代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 赵阳 | 
| 地址: | 250101 山东省济南市高新*** | 国省代码: | 山东;37 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 基于 linux 系统 应用 hook 实现 方法 装置 存储 介质 | ||
本发明提出的一种基于Linux系统的应用层Hook实现方法、系统、装置及存储介质,所述方法包括:编译动态链接库,并导出预设接口;修改优先加载的环境变量和默认配置文件,增加动态链接库的绝对路径,使预设程度启动后实时加载动态链接库;当目标进程调用被Hook的API时,优先调用动态链接库的接口;在动态链接库的接口中获取并保存系统API的原始地址;动态链接库的接口通过与预设控制中心交互,进行策略判断业务操作;策略判断业务操作完成后,调用系统API的原始地址,并将调用结果返回给目标进程。本发明能够通过修改系统配置,完成自定义动态库的加载,实现系统API的替换,可以Hook到更接近用户行为的API接口,从而可以更精确地实现行为分析和控制。
技术领域
本发明涉及计算机技术领域,更具体的说是涉及一种基于Linux系统的应用层Hook实现方法、系统、装置及存储介质。
背景技术
Hook技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。可见,hook可以监视系统或者进程中的各种事件消息,截获发往目标窗口的消息并进行处理。
当前,对于Hook技术,可以分为两块,第一块是在Ring3层的Hook,俗称应用层Hook技术,另外一块自然是在Ring0层得Hook,俗称为内核层Hook技术。针对Hook的实现方法主要存在以下缺陷:
1、当前内核层Hook的实现,需要开发人员具备内核开发的经验,开发难度较高,而且一旦出现问题会导致系统崩溃。
2、当前应用层Hook的实现,虽然有多种实现方法,但是都需要进行大量的数据处理、以及函数和内存调用等操作,系统开销较大,对设备有较高的性能要求。
发明内容
针对现有技术中存在的问题,本发明的目的在于提供一种基于Linux系统的应用层Hook实现方法、系统、装置及存储介质。
本发明为实现上述目的,通过以下技术方案实现:
一种基于Linux系统的应用层Hook实现方法,包括如下步骤:
S1:编译动态链接库,通过动态链接库导出预设接口;
S2:修改优先加载的环境变量和默认配置文件,增加动态链接库的绝对路径,使预设程度启动后实时加载动态链接库;
S3:当目标进程调用被Hook的API时,优先调用动态链接库的接口;
S4:在动态链接库的接口中获取并保存系统API的原始地址;
S5:动态链接库的接口通过与预设控制中心交互,进行策略判断业务操作;
S6:策略判断业务操作完成后,调用系统API的原始地址,并将调用结果返回给目标进程。
进一步,所述步骤S4具体为:
通过dlvsym接口,获取指定版本号的API原始地址。
进一步,所述预设接口为与被Hook的API定义完全一致的接口。
进一步,所述动态链接库为libhook.so。
进一步,所述优先加载的环境变量和默认配置文件为/etc/ld.so.preload文件。
进一步,所述预设接口为XCreateWindow接口。
相应的,本发明还公开了一种基于Linux系统的应用层Hook实现系统,包括:
导出单元,用于编译动态链接库,通过动态链接库导出预设接口;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中孚安全技术有限公司,未经中孚安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111155242.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种衬垫配浆测试装置及其自动检测方法
- 下一篇:电池盒激光焊接工装





