网络封包的截获技术分为几种
过滤驱动程序
NDIS中间驱动程序
Winsock2 SPI网络封包截获技术
......
其中数Winsock2 SPI网络封包截获技术使用最广泛,现在就向大家介绍Winsock2 SPI网络封包截获技术的一个特点,就是Winsock2 在Winsock1.1的基础上引入了SPI技术
Winsock2 之关键函数
Winsock2 的函数多是以WSP开头,都是在Ws2-32.DLL中实现,我们熟悉的Winsock扩展 API是以WSA开头的,因为Winsock的API在SPI函数都有互相对应,甚至可以把这些函数当作是API函数来使用
技术实现之关键
程序和其他钩子函数功能类似,并且将以动态连接库(DLL)文件实现,Winsock钩子用来截获Winsock调用从而拦截TCP/IP封包,并做相应的处理。实现DLL的安装需要修改注册表 而不是替换系统的DLL函数,这方法的通用性比较高!
有一个类似的程序 如果有一定基础的人 相信看了下面的文章后 对反外挂会有一定的收获的 基本的程序如下
1 系统调用DLL 启动WiSPStartup函数
2 WiSPStartup 将把30个相关的函数设置成我们的函数实现函数接挂
3 在各个函数中实现我们想要的功能(明白的就可以随心所欲了,不明白的就继续学习咯)
介绍几个核心函数
WiSPStartup 是Windows Sockets 应用程序调用SPI的初始化函数 我们称为服务提供者的标准入口函数,主要是转换IpProcTable结构的30个指针设置成自己的 这样 相应的函数请求会经过我们自己的函数 然后我们自己的函数可以做适当的处理 最后在将数据流(封包)转给原来的服务提供者函数
[
int WSPStartup(
WORD
wVersionRequested,
LPWSPDATA IpWSPData,
LPWSAPROTOCOL-INFOW IpProtocollnfo,
WSPUPCALLTABLE upcallTable,
LPWSPPROC-TABLE IpProcTable
)
{
OutputDebugString(-T(" WSPStartup..."));
TCHAR Librarypath[512];
..................
电话来了先到这里咯 待续