社区
网络编程
帖子详情
如何利用Winsock 2 SPI Hook 30个Winsock API函数?
Rmirp
2002-11-03 09:42:42
并支持WINDows所有版本
...全文
497
10
打赏
收藏
如何利用Winsock 2 SPI Hook 30个Winsock API函数?
并支持WINDows所有版本
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Rmirp
2002-11-04
打赏
举报
回复
呵呵,把QQ 号码写下,咱们聊聊如何。
snsins
2002-11-04
打赏
举报
回复
faint
我的代码写得极差,过了一段时间我自己都看不懂自己的代码
哈哈
Rmirp
2002-11-04
打赏
举报
回复
不,这问题已经圆满解决了,这得感谢仁兄
我要你的代码只是想看你的编程风格罢了。
snsins
2002-11-04
打赏
举报
回复
呵呵。。。
这点分数我还不想拿出我的原代码
Rmirp
2002-11-04
打赏
举报
回复
snsins(不再信仰,不再坚持) ,有具体一点代码更好
snsins
2002-11-03
打赏
举报
回复
补充一点
防火墙里的截包和封包技术很重要
snsins
2002-11-03
打赏
举报
回复
WINDOWS下的防火墙技术都被研究得比较透了
目前认为比较完善的方法就是NDIS
简单一点的就是SPI
我本来想在毕业的时候做毕业设计做个SPI防火墙,现在觉得技术难度有点低了,准备到时候做个NDIS的,完善一点的
SPI的基本原理其实和NDIS都差不多,主要体现一个思想:分层!
其实仔细想想,整个WINDOWS偶觉得都是分层式结构,假如我们用MFC写程序
那么MFC调用API,API又调用更低级的API,然后转换成相应的IRQ到内核里的驱动。。。。。
上面的话题扯得比较远了,平时我们调用WINSOCK API是这样的
winsock api->SPI->驱动->网卡
其中SPI可以由很多层构成,我们也可以插入自己的层,只要符合层与层之间的接口就行了,这个接口就是WSPStarup函数,SPI的每一层都需要为上一层提供WSPStarup函数传递自己的30个SPI函数的指针,同时调用下一层的WSPStarup函数来得到下一层SPI的30个函数指针,如果你不需要做任何事,只想中转一下,那么就可以直接在自己的函数里调用下一层SPI的相应函数提供给上一层SPI,如果想实现防火墙功能,你就在这些函数里实现自己的网络封包。
你自己写的SPI是一个DLL,也有DllMain函数,你要在DLL里把自己的WSPStartup函数导出以便上一层SPI程序调用,主要注意这个函数的最后一个参数,在WSPStartup里把你得到的下一层SPI函数指针指向你自己实现的函数就可以了
比如
int WSPStartup (
WORD wVersionRequested,
LPWSPDATAW lpWSPData,
LPWSAPROTOCOL_INFOW lpProtocolInfo,
WSPUPCALLTABLE UpcallTable,
LPWSPPROC_TABLE lpProcTable
{
.............
lpProcTable->lpWSPBind=WSPBind(....);//这样就把下一层SPI函数指针指向了自己的的WSPBind函数
}
上面就当最近一段时间研究SPI防火墙的一点总结
个人看法,分层结构是个很不错的构思,TCP/IP协议也是分层的,分层结构可以不要关注别的层之间的细节,只要专注于自己层然后按照规定提供相应的上下接口就OK了,值得我们自己在程序中借鉴!很多时候,思想更重要
saucer
2002-11-03
打赏
举报
回复
this article might be helpful:
API Hooking Revealed
http://www.codeguru.com/system/apihook.html
also see the discussions about Winsock API hook
http://www.codeguru.com/mfc/comments/35587.shtml
http://www.codeguru.com/mfc/comments/35590.shtml
http://www.experts-exchange.com/Programming/Programming_Platforms/Win_Prog/Q_20294215.html
Rmirp
2002-11-03
打赏
举报
回复
大哥大姐们请关注
wavestudio
2002-11-03
打赏
举报
回复
关注,我的QQ:179337324
Winsock
2
SPI
网络封包截获技术
- **技术实现的关键点**:实现
Winsock
2
SPI
网络封包截获技术通常需要通过编写一个动态链接库(DLL),该DLL能够作为钩子(
Hook
)拦截网络调用。安装这个DLL需要修改注册表而不是替换系统的DLL
函数
,这种做法提高了...
Windows防火墙设计.ppt
通过学习
Hook
技术,学生能够实现对系统
API
函数
调用的钩子
函数
,从而在不影响系统正常功能的前提下,对系统行为进行定制和控制。课程对
Hook
消息技术和使用注入DLL的方法进行了详细介绍,并提供了参考书目和相关的MSDN...
网络编程之
Winsock
2 服务提供者接口(
SPI
)
【1】
Winsock
2 服务提供者接口(
SPI
): 一、简述: 1、一般用于提供给操作系统开发商、...4、普通开发者一般都是开发
SPI
的LSP(分层服务提供者),即第三方提供者,可用于监控
Winsock
API
执行,
HOOK
Winsock
API
,甚..
自己做一个的网络防火墙(二):实现
SPI
的
HOOK
函数
文章目录系列文章目录一、前言二、背景知识2.1
Winsock
架构体系2.2 防火墙所在位置三、
SPI
函数
的编写3.1 微软对于
SPI
的编写约定3.2
HOOK
函数
的编写思路3.3 WSPStartup
函数
编写思路 一、前言 之前的一篇文章我们...
Winsock
2 服务提供者接口(
SPI
)
#
Winsock
2 服务提供者接口(
SPI
): ##一、简述: 1、一般用于提供给操作系统开发...4、普通开发者一般都是开发
SPI
的LSP(分层服务提供者),即第三方提供者,可用于监控
Winsock
API
执行,
HOOK
Winsock
API
,甚至
利用
LSP技术注
网络编程
18,357
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章