精易论坛

标题: R3应用层利用AFD驱动,编写自己的高效Socket服务 [打印本页]

作者: 莫爱    时间: 2022-5-2 17:05
标题: R3应用层利用AFD驱动,编写自己的高效Socket服务
本帖最后由 莫爱 于 2022-5-2 17:12 编辑

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

[hide=d365]
不懂的翻译

IOCTL_AFD_BIND:12003
IOCTL_AFD_CONNECT:12007
IOCTL_AFD_START_LISTEN:1200b
IOCTL_AFD_WAIT_FOR_LISTEN:1200c
IOCTL_AFD_ACCEPT:12010
IOCTL_AFD_RECV:12017
IOCTL_AFD_RECV_DATAGRAM:1201b
IOCTL_AFD_SEND:1201f
IOCTL_AFD_SEND_DATAGRAM:12023
IOCTL_AFD_SELECT:12024
IOCTL_AFD_DISCONNECT:1202b
IOCTL_AFD_GET_SOCK_NAME:1202f
IOCTL_AFD_GET_PEER_NAME:12033
IOCTL_AFD_GET_TDI_HANDLES:12037
IOCTL_AFD_SET_INFO:1203b
IOCTL_AFD_GET_CONTEXT_SIZE:1203f
IOCTL_AFD_GET_CONTEXT:12043
IOCTL_AFD_SET_CONTEXT:12047
IOCTL_AFD_SET_CONNECT_DATA:1204b
IOCTL_AFD_SET_CONNECT_OPTIONS:1204f
IOCTL_AFD_SET_DISCONNECT_DATA:12053
IOCTL_AFD_SET_DISCONNECT_OPTIONS:12057
IOCTL_AFD_GET_CONNECT_DATA:1205b
IOCTL_AFD_GET_CONNECT_OPTIONS:1205f
IOCTL_AFD_GET_DISCONNECT_DATA:12063
IOCTL_AFD_GET_DISCONNECT_OPTIONS:12067
IOCTL_AFD_SET_CONNECT_DATA_SIZE:1206b
IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE:1206f
IOCTL_AFD_SET_DISCONNECT_DATA_SIZE:12073
IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE:12077
IOCTL_AFD_GET_INFO:1207b
IOCTL_AFD_EVENT_SELECT:12087
IOCTL_AFD_DEFER_ACCEPT:1208f
IOCTL_AFD_GET_PENDING_CONNECT_DATA:120a7
IOCTL_AFD_ENUM_NETWORK_EVENTS:1208b
IOCTL_AFD_VALIDATE_GROUP:120ab


新建文件夹 (6).zip (479.24 KB, 下载次数: 482)


有问题加 516976067 就行反馈
[/hide]















作者: gaoqing    时间: 2022-5-2 17:33
下载学习谢谢分享
作者: 掉线是为你好    时间: 2022-5-2 17:34
看一下,学习学习
作者: wlaita2286    时间: 2022-5-2 17:36
下载学习谢谢分享
作者: Fate    时间: 2022-5-2 17:39
感谢分享~
作者: sinewtec    时间: 2022-5-2 17:40
666666666666666
作者: 青春的思念    时间: 2022-5-2 18:04
正好需要 谢谢
作者: 杰西卡技术传媒    时间: 2022-5-2 18:18
R3应用层利用AFD驱动,编写自己的高效Socket服务
作者: 不苦小和尚    时间: 2022-5-2 18:26
等封装好了再用
作者: 猥琐小胖子    时间: 2022-5-2 18:27
感谢分享
作者: qq1529195115    时间: 2022-5-2 18:33
66666 R3应用层利用AFD驱动
作者: veryhigh2014    时间: 2022-5-2 18:34
这个可以有流弊
作者: 陈勇    时间: 2022-5-2 19:06
支持下。谢谢分享
作者: 1025    时间: 2022-5-2 19:08
支持开源,感谢分享。。。
作者: 小黑屋欢迎你    时间: 2022-5-2 19:39
RE: R3应用层利用AFD驱动,编写自己的高效Socket服务 [修改]

作者: 风行无忌    时间: 2022-5-2 20:07
不明觉厉
作者: 划落的天空    时间: 2022-5-2 20:11
看下这个东西哦
作者: 汉族    时间: 2022-5-2 20:16
支持一下   
作者: 315215    时间: 2022-5-2 20:20
R3应用层利用AFD驱动
作者: muye84    时间: 2022-5-2 20:21
R3应用层利用AFD驱动
作者: 陈宁    时间: 2022-5-2 20:32
感谢分享~
作者: 网络注册络员    时间: 2022-5-2 20:34
感谢分享~
作者: SoloCat    时间: 2022-5-2 20:42

作者: 梦想ol    时间: 2022-5-2 21:12
666666666666666666666
作者: wang798403789    时间: 2022-5-2 21:19
666666666666666
作者: 梦里的彩虹糖    时间: 2022-5-2 22:53
666666666666666666666
作者: menghan    时间: 2022-5-2 23:03
感谢楼主分享,支持一下~~
作者: xjshuaishuai    时间: 2022-5-2 23:04
谢谢分享!
作者: 794229345    时间: 2022-5-2 23:25
膜拜大佬!大佬牛B!
作者: z博士    时间: 2022-5-2 23:33
感谢分享
作者: chr8828    时间: 2022-5-2 23:51
感谢分享
作者: 116154801    时间: 2022-5-3 00:05
666666666666666666666666666666666
作者: zytlj    时间: 2022-5-3 00:53
谢谢分享。
作者: lwhct    时间: 2022-5-3 01:10
谢谢分享。
作者: 大师兄是反派    时间: 2022-5-3 02:30
666666666666666
作者: Mzzzz    时间: 2022-5-3 03:38
嘿嘿,不错,鼎力支持!!...
作者: 温暖的舌骨    时间: 2022-5-3 04:17
感谢分享
作者: 蚂蚁ll    时间: 2022-5-3 07:08
AFD驱动控制码 和 AFD驱动易源码20220502
作者: kai741101314    时间: 2022-5-3 08:27
2022050220220502
作者: 飞鱼软件    时间: 2022-5-3 08:34
        支持开源~!感谢分享
作者: 深圳梦    时间: 2022-5-3 08:55
支持开源~!感谢分享
作者: xjdgs    时间: 2022-5-3 10:16
谢谢分享。
作者: mmlai8    时间: 2022-5-3 10:48
膜拜大佬!大佬牛B!
作者: 一城烟雨    时间: 2022-5-3 10:50
AFD驱动易源码
作者: kantal    时间: 2022-5-3 11:47
支持开源~!感谢分享
作者: yujiekuxiao    时间: 2022-5-3 13:30
来看一下  作者是否来自看雪论坛  之前看雪上面好像看到过类似的文章
作者: huayinzhe    时间: 2022-5-3 14:23
支持开源~!感谢分享
作者: TL小毅哥    时间: 2022-5-3 15:02
6啊  大佬
作者: CaiACha    时间: 2022-5-3 15:39
支持开源~!感谢分享

作者: 2622561188    时间: 2022-5-3 16:05
66666666666666666666666
作者: qq85668684    时间: 2022-5-3 17:14
66666666666666666666666
作者: phinex    时间: 2022-5-3 17:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 不飞    时间: 2022-5-3 17:56
66666666666666666
作者: IIIllIIl    时间: 2022-5-3 18:00
感谢分享
作者: 阿炮    时间: 2022-5-3 20:25
支持开源~!感谢分享!!
作者: incwin    时间: 2022-5-3 20:55

支持开源~!感谢分享!!
作者: 猪滴寳貝哝    时间: 2022-5-3 21:11
这个很给力,非常感谢!
作者: 狸楚殇    时间: 2022-5-3 21:40
感谢分享!
作者: wjc826194    时间: 2022-5-3 22:05
R3应用层利用AFD驱动,编写自己的高效Socket服务
作者: a85698274    时间: 2022-5-3 23:26
开源精神必须支持~
作者: han15070727425    时间: 2022-5-3 23:40
我试试看看
作者: caoljie    时间: 2022-5-4 00:37
支持开源~!感谢分享
作者: By名扬    时间: 2022-5-4 00:55
楼主辛苦了,谢谢楼主,感谢楼主分享,楼主好人一生平安!!!
作者: 我很帅你说呢    时间: 2022-5-4 01:30
开源精神必须支持~
作者: dashang    时间: 2022-5-4 02:22
支持开源~!感谢分享
作者: 小呀小百百    时间: 2022-5-4 03:24
厉害了!
作者: tvvvhg    时间: 2022-5-4 07:48
开源精神必须支持~
作者: JerryYan    时间: 2022-5-4 09:36
        这么厉害!必须给个红包鼓励下~
作者: a524666979    时间: 2022-5-4 09:54
RE: R3应用层利用AFD驱动,编写自己的高效Socket服务 [修改]
高级模式

作者: 13055534221    时间: 2022-5-4 09:57
看看好像很强
作者: heize    时间: 2022-5-4 10:53
这个六,更底层
作者: clearlove    时间: 2022-5-4 11:09
R3应用层利用AFD驱动,编写自己的高效Socket服务
作者: 风中冰雨    时间: 2022-5-4 12:17
看看..........
作者: 〞剑舞长空    时间: 2022-5-4 12:23
〞剑舞长空,如果您要查看本帖隐藏内容请回复
作者: z5ss5b    时间: 2022-5-4 12:27
支持开源~!感谢分享
作者: 哔哔芭比波比i    时间: 2022-5-4 12:33
下载一份看看 感谢
作者: jiang910615    时间: 2022-5-4 12:35
xuexixuexixuexixuexi
作者: Frieza    时间: 2022-5-4 13:19
支持开源~!感谢分享
作者: woaixzkun    时间: 2022-5-4 15:09
支持开源~!感谢分享
作者: 1aa82e    时间: 2022-5-4 15:15
这么厉害!
作者: RES    时间: 2022-5-4 16:50

作者: Zangetsu    时间: 2022-5-4 17:38
6666666666666666
作者: TianYi_    时间: 2022-5-4 18:06
支持开源~!感谢分享
作者: 苏烟式    时间: 2022-5-4 21:02
看看 学习一下

作者: 爱的愤愤    时间: 2022-5-4 21:11

本帖最后由 莫爱 于 2022-5-2 17:12 编辑


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驱动控制码
作者: 亿意亦易    时间: 2022-5-4 21:42
支持开源~!感谢分享
作者: liuzhicheng001    时间: 2022-5-4 21:56
太厉害了
作者: sinboy2009    时间: 2022-5-4 22:29
赞!!感谢分享!
作者: l7518597    时间: 2022-5-4 22:46
感谢大佬分享
作者: xslyhk    时间: 2022-5-4 23:27
谢谢分享哦
作者: 18074941457    时间: 2022-5-4 23:41
支持开源~!感谢分享
作者: syl199312    时间: 2022-5-4 23:57
        开源精神必须支持~
作者: jpk    时间: 2022-5-5 00:34
开源精神必须支持~
作者: paulz2022    时间: 2022-5-5 00:57

支持开源~!感谢分享

作者: 精易萧萧    时间: 2022-5-5 03:49
         
作者: 张富强    时间: 2022-5-5 04:30
RE: R3应用层利用AFD驱动,编写自己的高效Socket服务 [修改]

作者: 咪兔    时间: 2022-5-5 04:31
又涨姿势了~~
作者: TLDream    时间: 2022-5-5 04:32
谢谢分享的的的  
作者: 云韵    时间: 2022-5-5 08:27
支持一下
作者: 飘零    时间: 2022-5-5 08:39
        支持开源~!感谢分享




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4