龙马谷

 找回密码
 立即注册

QQ登录

只需一步,快速开始

龙马谷VIP会员办理客服QQ:82926983(如果临时会话没有收到回复,请先加QQ好友再发。)
1 [已完结] GG修改器新手入门与实战教程 31课 2 [已完结] GG修改器美化修改教程 6课 3 [已完结] GG修改器Lua脚本新手入门教程 12课
4 [已完结] 触动精灵脚本新手入门必学教程 22课 5 [已完结] 手游自动化脚本入门实战教程 9课 6 [已完结] C++射击游戏方框骨骼透视与自瞄教程 27课
7 [已完结] C++零基础UE4逆向开发FPS透视自瞄教程 29课 8 [已完结] C++零基础大漠模拟器手游自动化辅助教程 22课
以下是天马阁VIP教程,本站与天马阁合作,赞助VIP可以获得天马阁对应VIP会员,名额有限! 点击进入天马阁论坛
1 [已完结] x64CE与x64dbg入门基础教程 7课 2 [已完结] x64汇编语言基础教程 16课 3 [已完结] x64辅助入门基础教程 9课
4 [已完结] C++x64内存辅助实战技术教程 149课 5 [已完结] C++x64内存检测与过检测技术教程 10课 6 [已完结] C+x64二叉树分析遍历与LUA自动登陆教程 19课
7 [已完结] C++BT功能原理与x64实战教程 29课 8 [已完结] C+FPS框透视与自瞄x64实现原理及防护思路
查看: 1584|回复: 2

[易语言源码] 编写自己的高效Socket服务 R3应用层AFD驱动

[复制链接]

5

主题

3

回帖

11

积分

编程入门

Rank: 1

龙马币
30


1、什么是afd驱动
socket机制在windwos系统中的实现分为用户空间和内核空间实现,
用户空间就是 ws2_32.lib 这个dll 库
系统空间就是afd.sys驱动
170612t4iqf4q8sqt7848s.png

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

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


AFD驱动模块函数功能对
  1. NTSockets_CreateTcpSocket               =  socket()   用 NtCreateFile 创建“\Device\Afd\Endpoint”
  2. NTSockets_ConvertIP                        = inet_addr()    纯源码实现这样更加健康防止OD
  3. NTSockets_Swap16BitByteOrder         = htons()| ntohs()
  4. NTSockets_Connect                          = connect()     用 NtDeviceIoControlFile 控制码IOCTL_AFD_CONNECT:0x12007
  5. NTSockets_WSAEventSelect               = WSAEventSelect     用 NtDeviceIoControlFile 控制码IOCTL_AFD_EVENT_SELECT:0x12087
  6. NTSockets_WSAEnumNetworkEvents  = WSAEnumNetworkEvents     用 NtDeviceIoControlFile 控制码IOCTL_AFD_ENUM_NETWORK_EVENTS:0x1208b
  7. NTSockets_Recv                               =  Recv     用 NtDeviceIoControlFile 控制码IOCTL_AFD_RECV:0x12017
  8. NTSockets_Send                               = Send     用 NtDeviceIoControlFile 控制码IOCTL_AFD_SEND:0x1201f
复制代码


QQ截图20230724170029.png

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

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

需要生成调试,用OutputDebugStringA函数输出,用Dbgview接收日志。

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

不懂的翻译

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

回复下载源码:
游客,如果您要查看本帖隐藏内容请回复




14

主题

3

回帖

22

积分

编程入门

Rank: 1

龙马币
48
海军上将 | 显示全部楼层
感谢分享了!!!!

10

主题

10

回帖

22

积分

编程入门

Rank: 1

龙马币
20
manarex | 显示全部楼层
感谢分享了!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

龙马谷| C/C++辅助教程| 安卓逆向安全| 论坛导航| 免责申明|Archiver|
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表龙马谷立场!
任何人不得以任何方式翻录、盗版或出售本站视频,一经发现我们将追究其相关责任!
我们一直在努力成为最好的编程论坛!
Copyright© 2018-2021 All Right Reserved.
在线客服
快速回复 返回顶部 返回列表