纯API驱动NdisHook写的服务器CC防火墙

易语言 2020-07-13 20:41:01

纯API驱动NdisHook写的服务器CC防火墙

.如果真 (服务名 ≠ “” 且 文件是否存在 (驱动路径))
ServerName = 服务名
hSCManager = OpenSCManager (0, 0, #SC_MANAGER_CREATE_SERVICE) ' 打开控制管理器
.如果真 (hSCManager = 0)
返回 (假)
.如果真结束
hService = CreateServiceA (hSCManager, 服务名, 服务名, #SERVICE_START + #DELETE, #SERVICE_KERNEL_DRIVER, #SERVICE_DEMAND_START, #SERVICE_ERROR_IGNORE, 驱动路径, 0, 0, 0, 0, 0) ' 创建服务
.如果真 (hService = 0)
hService = OpenService (hSCManager, 服务名, #SERVICE_START + #DELETE) ' 打开服务
.如果真 (hService = 0)
CloseServiceHandle (hSCManager)
返回 (假)
.如果真结束

.如果真结束
StartServiceA (hService, 0, 0)
CloseServiceHandle (hService)
CloseServiceHandle (hSCManager)
.如果真结束
返回 (hService ≠ 0)

.循环判断首 ()
Count = 列表框_IP列表.取项目数 ()
.如果真 (Count = 0)
信息框 (“列表中没有IP地址,无法继续!”, #警告图标 + #文本右对齐 \ 2, “友情提示”)
跳出循环 ()
.如果真结束
.计次循环首 (Count, i)
Config.LocalList [i] = inet_addr (列表框_IP列表.取项目文本 (i - 1))
.计次循环尾 ()
Config.EnableARP = 选择框_ARP.选中
Config.EnableTCP = 选择框_TCP.选中
Config.DiszblePing = 选择框_Ping.选中
Config.DiszbleUDP = 选择框_UDP.选中
Config.GateWayIP = inet_addr (编辑框_网关IP.内容)
.如果真 (Config.GateWayIP = -1)
信息框 (“网关IP地址错误,无法继续!”, #警告图标 + #文本右对齐 \ 2, “友情提示”)
跳出循环 ()
.如果真结束
.如果真 (取反 (ToByteArrayMAC (编辑框_当前MAC.内容, Config.CurrentMAC)))
信息框 (“当前MAC地址错误,无法继续!”, #警告图标 + #文本右对齐 \ 2, “友情提示”)
跳出循环 ()
.如果真结束
.如果真 (取反 (ToByteArrayMAC (编辑框_网关MAC.内容, Config.GateWayMAC)))
信息框 (“网关MAC地址错误,无法继续!”, #警告图标 + #文本右对齐 \ 2, “友情提示”)
跳出循环 ()
.如果真结束
Buffer = 取空白字节集 (#SIZEOF_CONFIGLIST)
pBuffer = 取变量地址_字节集型_ (Buffer)
_Write_CONFIG_LIST (pBuffer, Config, #SIZEOF_CONFIGLIST)
.如果 (驱动操作.设备控制_ (#SetConfig, pBuffer, #SIZEOF_CONFIGLIST, 0, 0))
信息框 (“应用配置成功!”, #信息图标 + #文本右对齐 \ 2, “友情提示”)
.否则
信息框 (“应用配置失败!”, #警告图标 + #文本右对齐 \ 2, “友情提示”, )
.如果结束

.循环判断尾 (假)