NDIS中间层驱动和Sygate等NAT型代理软件的包处理顺序是如何的?

ganghust 2005-11-23 05:21:22
我用NDIS规范实现了在中间层包过滤的程序,使用NDIS-HOOK方式。NDIS-HOOK 的工作原理是直接替换 NDIS 的函数库中的函数地址,这样只要向 NDIS 的请求就会先经过我自己函数的处理,这样就非常简单,处理完转发给系统函数就可以了。调试发现从本机发送的所有数据包都会经过中间层驱动。现在在本机上装有Sygate服务器代理软件,另外一台主机通过本机共享上网连接,截包发现它通过代理出去的包没有经过中间层驱动,而是直接从本机连接Intenet的接口转发出去了。如果使用WinGate这种应用层的代理软件,共享上网时就会发现所有的包都会经过服务器的中间层驱动.不明白为何会这样,如何让Sygate转发的报文也经过中间层驱动了,我也不是很明白中间层驱动和协议栈中IP层和链路层到底是一个什么顺序关系,Sygate 的NAT转换是在什么时候进行的?
...全文
938 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
狂放之歌 2005-12-26
  • 打赏
  • 举报
回复
HOOK 有个先后顺序问题.如果它比你先"截获"那么他就能决定你能得到什么包!?
而且 sygate /WinGate 这种代理软件 是要做到内核驱动的,所以很可能,它在你之前截获了.
至于为什么 没经过中间层.这可能就是独门绝技了.
ganghust 2005-12-06
  • 打赏
  • 举报
回复
谢谢了。
MapleInHG 2005-11-24
  • 打赏
  • 举报
回复
呵呵,Sygate创始人有个邮箱:Cris2005@sina.com,用中文就行了,他人很好,不知道会不会回答你的问题,呵呵。
ganghust 2005-11-24
  • 打赏
  • 举报
回复
谢谢。你说的问题我已经考虑到了。现在的问题是不是很清楚Sygate的工作机制,它转发的包在IP层就直接通过实际的网卡发送出去了。在NDIS-HOOK中根本就没有发现它传输的报文?是不是还需要更底层的截包?
MapleInHG 2005-11-23
  • 打赏
  • 举报
回复
不是很清楚,下面是一段有关的文字,希望有用,呵呵。当然知道sygate的机理也很重要。

NDIS Hook Driver。这是目前大多数个人防火墙所使用的方法。Hook的概念在Windows9x下非常流行,而且实现也很容易。在Windows9x下,驱动程序(VxD)通过使用Hook_Device_Service可以挂接NDIS所提供的所有服务。在Windows NT/2000下面如何实现Hook呢?有两种不同的思路:

1) 通过修改NDIS.SYS的Export Table。在Windows NT/2000下,可执行文件(包括DLL以及SYS)都是遵从PE(Portable Executable)格式的。所有向其他操作系统组件提供接口的驱动程序都有Export Table,因此只要修改NDIS.SYS的Export Table就可以实现对关键NDIS API的挂接。由于协议驱动程序在系统启动的时候会调用NdisRegisterProtocol来向系统进行协议注册,因此这种方法关键在于修改NDIS.SYS所提供的NdisRegisterProtocol/NdisDeRegisterProtocol/NdisOpenAdapter/NdisCloseAdapter/NdisSend函数的起始地址。我们知道,在用户态模式要修改PE文件格式可以用一些API来实现,而NDIS.SYS位于系统的核心内存区,因此要修改NDIS.SYS就不得不通过写驱动程序来实现,也就要求我们对PE文件格式有比较深入的了解。使用这种方法还要注意驱动程序的加载次序,显然Hook Driver必须在NDIS.SYS被加载之后,而在协议驱动程序如tcpip.sys被加载之前。另外,Windows2000还提供了系统文件保护机制,因此在修改ndis.sys还需要通过修改注册表屏蔽系统文件保护机制。
YOLO医学影像组织结构目标检测数据集 目标类别:['0', '1', '2', '3', 'object'] 中文类别:['其他', '其他', '其他', '其他', '物体'] 训练集:13984 张 验证集:1894 张 测试集:0 张 总计:15878 张 该数据集提供了data.yaml文件,内容如下: train: ../train/images val: ../valid/images test: ../test/images nc: 5 names: ['0', '1', '2', '3', 'object'] 该数据集聚焦于医学影像领域,专为组织结构识别与分析设计,具有高度专业性和临床应用价值。其核心检测目标为人体或生物组织的微观结构特征,适用于病理学研究、影像辅助诊断及医学图像自动化分析场景。数据采集覆盖多种组织形态,为相关算法模训练提供高质量视觉样本。 数据集含训练集13984张、验证集1894张、测试集0张,总计15878张图像。训练集规模充足,可支撑模充分学习各类组织结构特征;验证集比例合理,确保模在未见数据上的泛化能力评估可靠;测试集虽为空,但不影响模开发与验证流程的完整性,整体分布符合工业级目标检测数据集的标准配置。 所有图像均经过专业标注,标注边界清晰、覆盖完整,针对不同组织形态提供了精确的区域标记。标注过程遵循医学影像分析规范,确保每个目标实例的语义一致性与空间准确性,为后续模训练提供了高保真度的监督信号,有效保障了模性能的稳定提升。 该数据集可广泛应用于医疗影像分析系统开发、病理切片自动识别、手术导航辅助系统训练等实际医疗场景。其高质量标注与多样化的组织结构样本,有助于推动人工智能技术在精准医疗、智能诊断和医学教育领域的落地应用,为提升临床效率与诊断准确性提供坚实的数据基础。
内容概要:本文系统性地介绍了2026年8月提出的新优化算法——心率优化算法,并结合Matlab代码实现,深入探讨其在电力系统、智能优化、路径规划、信号处理等多个前沿科研领域的应用。文档涵盖了大量基于Matlab/Simulink的仿真案例,括虚拟电厂中电动汽车V2G充放电优化、深度强化学习(如DDPG、QLearning)在能源调度与机器人控制中的应用、多无人机协同三维路径规划、微电网多时间尺度调度、逆变器阻抗建模与稳定性分析等关键技术课题。同时,文档强调科研中“借力”与“创新”并重的理念,倡导系统性思维与扎实实践相结合,配套提供了丰富的学习资源,括网盘中的完整代码、模与文献资料,助力读者高效复现研究成果。; 适合人群:具备一定Matlab/Simulink编程基础,从事电力系统、自动化控制、人工智能、路径规划、信号处理及相关交叉学科研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为科研工作者提供可复现的算法代码与高保真仿真模,加速论文复现与课题攻关;②支持智能优化算法、强化学习、电力电子控制等新技术的开发与性能验证;③辅助撰写高水平学术论文、完成学位论文或开展实际工程项目研发。; 阅读建议:建议读者按照文档目录结构系统性浏览,优先聚焦与自身研究方向契合的案例,结合网盘提供的完整资源进行代码调试与仿真验证,注重理论推导与编程实践的深度融合,以全面提升科研效率与技术创新能力。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧