安全矩阵

 找回密码
 立即注册
搜索
查看: 2448|回复: 0

网络安全编程:HOOK技术概述

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2021-5-16 21:56:03 | 显示全部楼层 |阅读模式
原文链接:网络安全编程:HOOK技术概述

有一种技术被称作HOOK技术,有人称它为“钩子”,也有人称它为“挂钩”技术。谈到钩子,很容易让人联想到在钓东西,比如鱼钩就用于钓鱼。编程技术的钩子也是在等待捕获系统中的某个消息或动作。在编程技术中,钩子技术在DOS时代就已经存在了。在Windows下,钩子按照实现技术的不同和挂钩位置的不同,其种类也是越来越多,但是设置钩子的本质却是始终不变的。


钩子到底是做什么用的呢?钩子的应用范围非常广泛,比如输入监控、API拦截、消息捕获、改变程序执行流程等方面。杀毒软件会用HOOK技术钩住一些API函数,比如钩住注册表读写函数,从而防止病毒对注册表进行写入;病毒使用HOOK技术有针对性地捕获键盘的输入,从而记录用户的密码;文件加密系统通过HOOK技术在不改变用户操作的情况下对用户的文件进行透明加密。这些都属于HOOK范畴的知识。

在DOS时代进行编程时,操作系统提供的编程接口不称为API函数,而是称为中断服务向量。也就是说,当时的操作系统提供的编程接口只有中断,要进行写文件就要调用系统中断,要进行读文件也要调用系统中断(当然,也可以不调用DOS操作系统的中断,而直接调用更底层的中断)……中断服务向量类似于Windows系统下的API函数,在操作系统的某个地址保存着。它以数组的形式保存着,也称为中断向量表。DOS时代的HOOK技术也就是修改中断向量表中的中断地址。比如,要捕获写操作,那么就修改中断向量表中关于写文件的地址,将写文件的中断地址保存好,然后替换为自己函数的地址,这样当程序调用写文件中断时,函数就被执行了,当程序执行完以后,可以继续调用原来的中断地址,从而完成写文件的操作。

在Windows系统下,HOOK技术的方法比较多,使用比较灵活,常见的HOOK方法有Inline Hook、IAT Hook、EAT Hook、Windows钩子……HOOK技术涉及DLL相关的知识。HOOK技术也涉及注入的知识,想要把完成HOOK功能的DLL文件加载到目标进程空间中,就要使用注入的知识。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 02:29 , Processed in 0.012211 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表