windows内核钩子(C# hook C#对Wininet.dll进行钩子的例子)

本文目录
C# hook C#对Wininet.dll进行钩子的例子
建议使用 FiddlerCore 或 WinpCap SDK 来做 HTTP 的侦听。
不建议 HOOK WinInet 的原因有三个:
1、WinInet 并非所有 API 都是公开的,文档你基本是找不到的;
2、从 Win8.1 开始到现在的 Win10,微软已经屏蔽了所有非操作系统本身对 WinInet 的调用,如果你想在这两个主流平台上做开发,基本是不可能的了,需要有一系列提权等操作不是单纯靠 C# 能完成的;
3、只有 IE 系的浏览器或使用了系统提供的 HttpClient 等对象访问网络的请求才会通过 WinInet.dll,Chrome 等其他内核浏览器并不通过它,而是自己独立实现了一套底层的 HTTP 请求库。
VB拦截网络连接
这个代码已经写的很清楚,当你想使挂钩的事件,呼吁EnableKBDHook的时候,就解除呼叫UnHookKBD。
但是,这拦截其他节目不能有效的。因为你所要做的就是钩子程序,而不是一个全局钩子,全局钩子需要写在里面的DLL,EXE是不够的。
______________________________________________
补充到楼上aspd199:
怎么说你怎么样...总之,试试自己的代码再说吧。
不知道我是谁,但不要在自己不明白的时候,说别人不理解。
MSDN原:
系统钩子是一个共享的资源,以及安装一个影响所有应用程序。所有的系统钩子函数必须是在库中。系统钩子应该仅限于特殊用途的应用或使用应用程序调试期间的发展援助。图书馆不再需要一个钩子钩去掉程序。
如果aspd199你还没有明白我说了几句话:
的Win32的地址空间是独立的,每一个项目都有它自己的地址空间,AddressOf运算符的地址时,设置钩子函数的地址是在当前进程,其他进程在这个地址根本就不是一个钩子处理函数,将导致一个错误。你必须确保你的函数是可见的所有进程,才可以处理全局钩子,所以我说,你必须把你的函数在DLL被映射到公共地址空间,可以让其他人看到。当然,有些人说,到远程代码行,只要你不怕麻烦,和不稳定的,可以以武力解决。但不管是什么显然不是在API的参数变化是可以解决的。
有机会看到的Windows作业系统的原则,不要以为知道几个API的使用是非常大的,要谨慎,务实的角度。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30




