【搬砖】R3应用层利用AFD驱动,编写自己的高效Socket服务  

1,什么是afd驱动

socket机制在windwos系统中的实现分为用户空间和内核空间实现,

用户空间就是ws2_32.lib 这个dll 库

系统空间就是afd.sys驱动

简来说AFD驱动向上与SOCKET应用接口约定了接口来实现SOCKET,AFD驱动实际上是一个TDI客户端,它通过TDI接口调用微软件的另一个网络部件TCPIP驱动来完成功能。AFD并没有官方的资料说明它的接口,但是在网上还是可以找到很关于AFD驱动的资料的。易语言学习源码

相对来说国外对AFD驱动在国外利广泛,很多大型游戏厂商利用AFD 开发出自己的socket服务达到隐藏sned recv 等函数。

AFD驱动模块函数功能对

NTSockets_CreateTcpSocket            =socket() 用NtCreateFile 创建“\Device\Afd\Endpoint”

NTSockets_ConvertIP                   = inet_addr()纯源码实现这样更加健康防止OD易语言学习源码

NTSockets_Swap16BitByteOrder                  = htons()| ntohs()

NTSockets_Connect                             = connect()    用 NtDeviceIoControlFile 控制码易语言学习源码IOCTL_AFD_CONNECT:0x12007

NTSockets_WSAEventSelect              =WSAEventSelect用 NtDeviceIoControlFile 控制码IOCTL_AFD_EVENT_SELECT:0x12087

NTSockets_WSAEnumNetworkEvents =易语言学习源码WSAEnumNetworkEvents用 NtDeviceIoControlFile 控制码IOCTL_AFD_ENUM_NETWORK_EVENTS:0x1208b

NTSockets_Recv                              =Recv用 NtDeviceIoControlFile 控制码IOCTL_AFD_RECV:0x12017

NTSockets_Send                             =易语言学习源码Send用 NtDeviceIoControlFile 控制码IOCTL_AFD_SEND:0x1201f

其他函数陆续会更新,现在的版本基本功能已经实现

使用有问题可以给我反馈就行修复

需要生成调试,用OutputDebugStringA函数输出

用Dbgview接收日志

全部有带

AFD驱动控制码 和AFD驱动易源码20220502

不懂的翻译

IOCTL_AFD_BIND:12003IOCTL_AFD_CONNECT:12007IOCTL_AFD_START_LISTEN:1200bIOCTL_AFD_WAIT_FOR_LISTEN:1200cIOCTL_AFD_ACCEPT:12010IOCTL_AFD_RECV:12017IOCTL_AFD_RECV_DATAGRAM:1201bIOCTL_AFD_SEND:1201fIOCTL_AFD_SEND_DATAGRAM:12023IOCTL_AFD_SELECT:12024IOCTL_AFD_DISCONNECT:1202bIOCTL_AFD_GET_SOCK_NAME:1202fIOCTL_AFD_GET_PEER_NAME:12033IOCTL_AFD_GET_TDI_HANDLES:12037IOCTL_AFD_SET_INFO:1203bIOCTL_AFD_GET_CONTEXT_SIZE:1203fIOCTL_AFD_GET_CONTEXT:12043IOCTL_AFD_SET_CONTEXT:12047IOCTL_AFD_SET_CONNECT_DATA:1204bIOCTL_AFD_SET_CONNECT_OPTIONS:1204fIOCTL_AFD_SET_DISCONNECT_DATA:12053IOCTL_AFD_SET_DISCONNECT_OPTIONS:12057IOCTL_AFD_GET_CONNECT_DATA:1205bIOCTL_AFD_GET_CONNECT_OPTIONS:1205fIOCTL_AFD_GET_DISCONNECT_DATA:12063IOCTL_AFD_GET_DISCONNECT_OPTIONS:12067IOCTL_AFD_SET_CONNECT_DATA_SIZE:1206bIOCTL_AFD_SET_CONNECT_OPTIONS_SIZE:1206fIOCTL_AFD_SET_DISCONNECT_DATA_SIZE:12073IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE:12077IOCTL_AFD_GET_INFO:1207bIOCTL_AFD_EVENT_SELECT:12087IOCTL_AFD_DEFER_ACCEPT:1208fIOCTL_AFD_GET_PENDING_CONNECT_DATA:120a7IOCTL_AFD_ENUM_NETWORK_EVENTS:1208bIOCTL_AFD_VALIDATE_GROUP:120ab易语言学习源码

易语言学习源码(已有21次下载)

本站资源多为网络收集,如涉及版权问题请及时与站长联系,微信公众号:开朗的ZS,我们会在第一时间内删除资源。

©️万宁卓尚科技工作室版权所有
源码BBS网 » 【搬砖】R3应用层利用AFD驱动,编写自己的高效Socket服务  

发表评论

发表评论

提供最优质的资源集合

立即查看 了解详情