去除XP SP2对raw socket的一些限制

Socket接受数据超时 Socket接受数据超时,采用Callable 接口实现 立即下载
 http://www.opencjk.org/~scz/windows/200701091750.txt

A: scz@nsfocus.com 2007-01-09 17:50

现在已经是众所周知,XP SP2对raw socket做了一些限制,最引人注目的有两条:

1) 不能通过raw socket发送TCP报文。做此尝试时会得到10004号错误。

2) 不能通过raw socket发送伪造源IP的UDP报文。

另有一条就不太引人注目:

3) 不能通过raw socket发送IP碎片。做此尝试时会得到10004号错误。

不知微软在哪次对2000 SP4的修补中实现了类似上述第三条的限制,只是要宽松一些:

3) 不能通过raw socket发送全部IP碎片,只有第一个碎片可被发送出去。试图发送
   后续碎片时会得到10004号错误。

尚未在2003 SP1上测试第三条限制。

微软做这些限制时,有两种方案,一种是完全没有实现相关代码,另一种是在全功能
代码中增加一些判断语句。想了想,第二种可能居多,最后事实证明确实如此。

微软在tcpip.sys中固化了这些限制,没有注册表项对之调整。

曾在"12.3 XP SP2对raw socket所做的改动"中提过,可以考虑剁了tcpip.sys,但不
推荐。

为了调整XP SP2并发半开出连接上限,已经硬剁了tcpip.sys。对于我们来说,硬剁
tcpip.sys面临的诸多风险中最大的就是BSOD,便如杀人是要偿命的。杀一个人是死,
杀两个人也是死,索性全家上下三代都给杀了图个痛快。基于这种信念,我一直奇怪
外界流传的现成工具为何只剁了ActiveOpenProgressThreshold,按说这帮人也不是
什么善主,在其本机使用raw socket是很正常的需求啊。以前多在*nix上做点事,
root想怎么用raw socket就怎么用,如今早已背叛了*nix,手头*nix的测试环境甚少
启用。最近工作机被迫升级至XP SP2后,被这些限制搞得很不爽。剁掉tcpip.sys的
这些限制已经成了心病。

下面以英文版XP SP2上的5.1.2600.2892版tcpip.sys为例进行介绍。用自己熟悉的16
进制编辑工具按如下说明进行修改(已包含对校验和的修改):

> fc /b tcpip.sys.old tcpip.sys
00000130: 65 BA
00000131: F8 FD
0002403A: 8A EB
0002403B: 41 45
0004F5A2: 0A FE
0004F5A3: 00 FF
0004F5A4: 00 FF

将临时目录里修改好的tcpip.sys严格地按如下顺序复制到相应目录:

%systemroot%/ServicePackFiles/i386/
%systemroot%/system32/dllcache/
%systemroot%/system32/drivers/

在资源管理器里确认%systemroot%/system32/drivers/tcpip.sys未因SFC而被自动恢
复成某个早期版本。重启OS使之生效。

剁了tcpip.sys之后用sendto()发送所有IP碎片均不会返回10004号错误。第一个IP碎
片肯定可以发送出去,但后续IP碎片会被XP SP2 PFW默默丢弃,用户态程序得不到任
何提示,伪造源IP的报文也会被PFW默默丢弃。关闭PFW后这些问题都得到解决。PFW
的限制与tcpip.sys本身的限制是两回事,是两层不同的限制。PFW的限制可以热取消,
tcpip.sys本身的限制是固化的,无法正常取消。总之,关闭PFW再测试raw socket。

实测表明,用IP碎片可以对2003 SP1进行syn-flood攻击,当指定正确的源IP时,可以
收到SYN+ACK或RST。

顺便说一句,这个版本的tcpip.sys不允许用raw socket发送IP-ENCAP、IPv6报文,
剁了之后这些限制一并绕过。
uniapp - 详细解决 H5 网页报错 Uncaught Error: Async component timed out after ? ms.(移动端h5页面白屏或加载缓慢失败,超时报错处理) uni-app,vue3,网页,h5,移动端,手机H5页面,浏览器,报错,uniapp报错,Asynccomponenttimedoutafter,如何解决这个问题,vue3Asynccomponenttimedoutafter,异步组件超时了怎么办,async,详细解决方案,AsyncComponents异步组件,导致页面打不开了,白屏什么也不显示,网页载入非常慢卡顿,vue3网站报错,超时,nuxt3,详细解决方案,浏览器控制台报错,爆红并且页面卡住了,依旧报错,找不到异步组件的报错 阅读详情

相关推荐

从Demo到产品:基于ADAU1452的ANC方案,硬件选型、性能优化与避坑指南

本文详细解析了基于ADAU1452的主动降噪(ANC)方案从Demo到产品的实现路径,涵盖硬件选型、性能优化与实战避坑指南。重点探讨了ADAU1452与ADAU1466的性能差异、编解码器选型策略,以及MFXLMS算法优化技巧,为工程师提供从理论验证到量产落地的系统级解决方案。

weixin_30542079的博客 451

Windows Socket 最大连接数

Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。 Windows 下单机的TCP连接数受多个参数影响: 最大TCP连接数 [HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] TcpNumConnections = 0x00fffffe (Default =...

weixin_30321709的博客 536

基于大模型的自动驾驶智能体:Agent-Driver架构、训练与实战指南

自动驾驶系统正从传统的模块化流水线向以智能体为核心的新范式演进。其核心原理在于将车辆视为一个能够与环境持续交互的自主决策智能体,通过多模态感知、记忆管理和基于大模型的推理能力,实现对复杂交通场景的理解与应对。这一技术价值在于利用大模型的常识推理和泛化能力,有望解决传统方法在长尾场景下面临的挑战。在应用场景上,智能体驱动架构特别适合处理动态交互密集、需高层语义理解的城区驾驶、无保护转弯及突发状况应对。本文聚焦的Agent-Driver项目,正是这一方向的典型实践,它通过融合视觉、语言大模型与强化学习,构建了一

weixin_28729843的博客 529

WinXP SP2的socket限制

 不能在SOCK_RAW上的socket发送数据包.居然有这样的限制,怪不得总是发送错误呢,现在只好针对TCP和UDP的数据包,分别建立相应的SOCK_STREAM,和SOCK_DGRAM的套接字来发送.但是出现两个错误:1.对TCP包,当目的地址为本机地址时, connect出错.(TCP,照例先connect然后用send)2.对UDP包,当源地址为本机地址时,sendto失败

花蘑菇练级 1177

带有验证码的爆破(包含Burp suite工具爆破)

关于含有验证码爆破的一些总结!

weixin_43960066的博客 8693

FPGA远程升级避坑实录:用STARTUPE2原语搞定Flash时钟,K7325T实测有效

本文深入解析了FPGA远程升级中的STARTUPE2原语应用,特别针对K7325T芯片的Flash时钟问题提供了实测有效的解决方案。通过详细的原语工作机制、Vivado工程实现步骤及调试技巧,帮助工程师规避常见陷阱,提升远程升级的可靠性和效率。

weixin_42558093的博客 141

网络通信socket连接数上限

socket accept()返回的socket描述符的端口和listen描述符端口是一样的吗? as you know,一个socket是由一个五元组来唯一标示的,即(协议,server_ip, server_port, client_ip, client_port)。只要该五元组中任何一个值不同,则其代表的socket就不同。这里忽略协议的区别,在同一协议的基础上,服务...

weixin_30642029的博客 277

Redhawk-SC输入件配置中的5个常见错误及解决方法

本文针对Redhawk-SC功耗与可靠性签核工具,深入剖析了输入件配置中工艺文件错配、DEF文件路径、时序文件格式、电源网络模型及宏模型处理这5个最常见且棘手的错误。文章提供了资深工程师验证过的实战解决方案与检查清单,旨在帮助用户规避风险,提升配置效率与分析准确性,确保芯片签核流程的顺利进行。

earth的博客 233

WinXP SP2系统解除TCP最大并发连接数限制为10的方法

修改TCP/IP的最大连接并发数、突破TCP/IP连接限制、突破SP2对TCP并发连接数的限制、解除SP2的TCP/IP最大并发连接数限制、破解SP2最大并发连接   众所周知,为了防范蠕虫病毒的传播和攻击,Windows XP SP2将并发线程最多限制为10个。SP2利用Messages动态链接库,来实时监控每个进程的并发线程数目,一旦它发现某进程的线程数超过10个,就会屏蔽掉部分线程。SP2这...

martian6125 's blog! 681

从零构建高精度电子秤:HX711与STM32的时序通信陷阱与实战避坑指南

本文详细解析了使用STM32F103C8T6与HX711模块构建高精度电子秤的通信时序陷阱与实战解决方案。重点探讨了微秒级延迟实现、数据读取算法、校准方法和滤波优化,帮助开发者避开常见通信问题,提升电子秤的测量精度和稳定性。

data3的博客 782

华为OD机考双机位C卷 - 采购订单 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 采购订单 。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 426

关于socket对象在xp下的一个诡异问题

1.因公司需求装了几台xp老机器;结果各种奇诡谲闪烁的情况出现了。socket通信线程里:2.在主线程构造函数中:创建 socket对象 QUdpSocket s1 = new QUdpSocket(this);s1 -> bind(QUdpSOcket:: reuseaddressHint, port_recv);  //recv和send是同一个端口; 61103.在 ::run() 里...

qq_32520245的博客 1043

hive get_json_object解析json结果为null咋办?

最近一位开发的同学在使用get_json_object函数对json数据解析的时候,出现了结果为null的问题,问题原因是sql语法导致的,那么今天就来详细介绍一下解析json函数的用法!最后还是提醒小伙伴们,在开发过程中,一定要注意sql语法格式的书写,避免一些意想不到的结果!

笑看风云路的博客 2308

关于windows xp sp2/sp3 中tcpip.sys对于Raw socket的限制

WINDOWS XP SP2修改了TCPIP.SYS,增加了对于RAW SOCKET的发送和伪造源地的限制,详情如下 :1) 不能通过raw socket发送TCP报文。做此尝试时会得到10004号错误。2) 不能通过raw socket发送伪造源IP的UDP报文。3) 不能通过raw socket发送IP碎片。做此尝试时会得到10004号错误。不知微软在哪次对2000 SP4的修补中实现了类

aerror的专栏 5954

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

关于 Windows XP SP2 对 raw socket 的影响

winxp sp2 不支持 raw socket 的事情,在这个地方http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx#XSLTsection127121120120找到了这样一段Restricted traffic over raw socketsDetailed descriptionA ve

1649

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Socket RAW的限制

socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP); socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); 第一句是错的,应该使用第二句。 参见: https://d...

敬事 1690

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

XP SP2对raw socket所做的改动

http://www.opencjk.org/~scz/windows/200609051043.txtQ:在XP SP2上raw socket发包,得到10004号错误:A blocking operation was interrupted by a call to WSACancelBlockingCall.A: microsoftXP SP2仍支持raw socket的接收,但raw so

1765

MSDN: Limitations on Raw Sockets

On Windows 7, Windows Vista, Windows XP with Service Pack 2 (SP2), and Windows XP with Service Pack 3 (SP3), the ability to send traffic over raw sockets has been restricted in several ways:

schoolers的专栏 1129

关于raw socket 在windows 平台的使用

原文摘自 codeproject Raw Sockets and Windows关于raw socket 在windows 平台的使用 First of all, it must be understood very clearly that raw sockets is not a feature of the network API (although it must be pr...

weixin_30726161的博客 926

raw socket遇上windows

最近很长一段时间内又捡起了大学时丢下的网络协议,开始回顾网络协议编程,于是linux系统成了首选,它让我感到了无比的自由,可以很通透的游走于协议的各层。 最初写了个ARP欺骗程序,很成功的欺骗了win7与虚机内的windows 2003之间的通讯,感觉linux系统在网络接口这一块确实很自由,后来基于ARP原理继续写了个ARP扫描器,感觉也还不错。同时对于网络编程来说,编...

weixin_33961829的博客 335

Windows下底层RAW数据包发送实战

1、简介   所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP、UDP等包,这些传输层数据包已经能满足绝大部分需求,但是有些时候还是需要发送底层数据包的(例如SYN扫描),那么如何发送呢?   本文记录了我试图实现的过程中遇到的一些问题以及解决办法,需要注明:①本文只考虑Windows上的实现  ②本文主...

6509

Windows XP服务包解析与系统优化实战指南

Windows服务包(Service Pack)是操作系统功能演进和安全加固的重要载体,通过集成关键补丁和功能更新来提升系统稳定性。以Windows XP为例,其SP2引入的硬件级DEP(数据执行保护)技术利用CPU的NX位特性,有效防范缓冲区溢出攻击,成为操作系统安全史上的里程碑。在系统优化方面,合理调整注册表参数如DisablePagingExecutive和LargeSystemCache可显著提升性能,而服务管理中的Remote Registry服务配置则直接影响系统安全性。这些技术不仅适用于老旧系

caodaoxi的专栏 526

使用socket函数的一些常见错误

1.socket SOCKET socket( int af, int type, int protocol ); af(地址族):常为AF_INET 使用AF_ISO等其他地址族标识,而非AF_INET。 返回:-1。错误:10047(使用了与请求的协议不兼容的地址) type(socket类型):通常为SOCK_STREAM或SOCK_DGRAM头文件中定义的只有如下几种标准类型: #define SOCK_STREAM 1 #define SOCK_DGRAM 2 #define...

顺其自然~专栏 5734

第四章 Winsock高级问题

 Winsock编程常见问答第四章 Winsock高级问题原文:http://tangentsoft.net/wskfaq/advanced.html 译者:jovia   时间:2010年4月2日 4.1 Winsock支持原始套接字吗?是的,Winsock支持原始套接字,但存在一些限制。例如:SOCKET sd = socket(AF_INET, SOC

jovia的专栏 1521

伪造 UDP 包源 IP 地址

Raw sockets 方式 raw socket 可通过参数 IPV6_HDRINCL 或 IP_HDRINCL 自定义IP头——伪造UDP报文源IP就全靠它了。 限制:从xp sp2之后的所有非服务器版本的windows,都不能发送TCP,并且也不能伪造UDP的源地址。 这里使用 dpkt 做 UDP/IP 包的组装: class SyslogSenderRawScoket: ...

weixin_30247781的博客 1659
上一篇: XP SP2对raw socket所做的改动
下一篇: 汇编与C配合
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值