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

Windows_XP_SP2_SP3_TCPIP并发连接数修改器 Windows XP SP2/SP3 TCPIP并发连接数修改器,解除Windows XP SP2/SP3连接数为10的限制。 立即下载

WINDOWS XP SP2修改了TCPIP.SYS,增加了对于RAW SOCKET的发送和伪造源地的限制,详情如下 :

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

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

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

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

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

来自微软的说明:

//What new functionality is added to this feature in Windows XP Service Pack 2?
//Restricted traffic over raw sockets
//Detailed description
  A very small number of Windows applications make use of raw IP sockets, which provide an industry-standard way for applications to create TCP/IP packets with fewer integrity and security checks by the TCP/IP stack. The Windows implementation of TCP/IP still supports receiving traffic on raw IP sockets. However, the ability to send traffic over raw sockets has been restricted in two ways:
//
//TCP data cannot be sent over raw sockets.
//
//UDP datagrams with invalid source addresses cannot be sent over raw sockets. The IP source address for any outgoing UDP datagram must exist on a network interface or the datagram is dropped.
//
//Why is this change important? What threats does it help mitigate?
//
//This change limits the ability of malicious code to create distributed denial-of-service attacks and limits the ability to send spoofed packets, which are TCP/IP packets with a forged source IP address.
// 

这个限制是能过一些判断和跳转实现的,跳转的地方如下:

汇编代码来自对于WINDOWS XP SP2的 反汇编,这段代码使RAW SOCKET的SENTO失败:

.text:00034007                         loc_34007:                              ; CODE XREF: IPTransmit(x,x,x,x,x,x,x,x,x,x)+213C4j
.text:00034007 8B 45 B4                                mov     eax, [ebp+var_4C]
.text:0003400A 89 50 0C                                mov     [eax+0Ch], edx
.text:0003400D 8B 45 B4                                mov     eax, [ebp+var_4C]
.text:00034010 88 58 1C                                mov     [eax+1Ch], bl
.text:00034013 8B 4D AC                                mov     ecx, [ebp+var_54]
.text:00034016 8A 41 09                                mov     al, [ecx+9]     ; <---开始判断类型

.text:00034019 3C 06                                   cmp     al, 6
.text:0003401B 0F 84 A9 14 00 00                       jz      pos_to_drop_skip_packet <--这里改为jmp 0003405D 即可绕过这个限制.
.text:00034021 3C 04                                   cmp     al, 4
.text:00034023 0F 84 A1 14 00 00                       jz      pos_to_drop_skip_packet
.text:00034029 3C 29                                   cmp     al, 29h
.text:0003402B 0F 84 99 14 00 00                       jz      pos_to_drop_skip_packet
.text:00034031 FF 71 0C                                push    dword ptr [ecx+0Ch]
.text:00034034 E8 D6 CD FD FF                          call    _GetAddrType@4  ; GetAddrType(x)
.text:00034039 84 C0                                   test    al, al
.text:0003403B 74 20                                   jz      short loc_3405D ; <---不检查,直接执行
.text:0003403D 8B 45 AC                                mov     eax, [ebp+var_54]
.text:00034040 FF 70 10                                push    dword ptr [eax+10h]
.text:00034043 E8 C7 CD FD FF                          call    _GetAddrType@4  ; GetAddrType(x)
.text:00034048 3C 03                                   cmp     al, 3
.text:0003404A 0F 85 7A 14 00 00                       jnz     pos_to_drop_skip_packet
.text:00034050 8B 45 8C                                mov     eax, [ebp+var_74]
.text:00034053 F6 40 0C 20                             test    byte ptr [eax+0Ch], 20h
.text:00034057 0F 84 6D 14 00 00                       jz      pos_to_drop_skip_packet
.text:0003405D
.text:0003405D                         loc_3405D:                              ; CODE XREF: IPTransmit(x,x,x,x,x,x,x,x,x,x)+213FDj
.text:0003405D 8B 45 AC                                mov     eax, [ebp+var_54] ; <---不检查,直接执行
.text:00034060 0F B6 00                                movzx   eax, byte ptr [eax]
.text:00034063 83 E0 0F                                and     eax, 0Fh
.text:00034066 C1 E0 02                                shl     eax, 2
.text:00034069 8B F0                                   mov     esi, eax
.text:0003406B 83 FE 14                                cmp     esi, 14h
.text:0003406E 89 B5 64 FF FF FF                       mov     [ebp+var_9C], esi
.text:00034074 0F 82 50 14 00 00                       jb      pos_to_drop_skip_packet
.text:0003407A 76 67                                   jbe     short loc_340E3
.text:0003407C 6A 10                                   push    10h             ; Priority
.text:0003407E 8D 46 EC                                lea     eax, [esi-14h]
.text:00034081 68 54 43 69 77                          push    77694354h       ; Tag
.text:00034086 33 FF                                   xor     edi, edi
.text:00034088 50                                      push    eax             ; NumberOfBytes
.text:00034089 47                                      inc     edi
.text:0003408A 53                                      push    ebx             ; PoolType
.text:0003408B 89 7D 80                                mov     [ebp+var_80], edi
.text:0003408E 89 45 88                                mov     [ebp+Length], eax
.text:00034091 FF 15 AC F2 04 00                       call    ds:__imp__ExAllocatePoolWithTagPriority@16 ; ExAllocatePoolWithTagPriority(x,x,x,x)
.text:00034097 3B C3                                   cmp     eax, ebx
.text:00034099 89 45 A8                                mov     [ebp+VirtualAddress], eax
.text:0003409C 75 0C                                   jnz     short loc_340AA
.text:0003409E BE FE 2A 00 00                          mov     esi, 2AFEh
.text:000340A3 56                                      push    esi
.text:000340A4 57                                      push    edi
.text:000340A5 E9 3C 14 00 00                          jmp     loc_354E6

另外如果你要发送伪造的源地址,你需要关闭WINDOWS XP的个人防火墙方可.

顺便做些对比: window 2003 sp1 对应代码如下:

text:0003A088 F7 D0                                         not     eax
.text:0003A08A 66 89 41 0A                                   mov     [ecx+0Ah], ax
.text:0003A08E 38 1D B0 CC 08 00                             cmp     _RunningOnWorkstation, bl  <---如果是工作站上运行的话也会有限制,不过你是server的话就没有问题....试过了,确实没有问题
.text:0003A094 74 46                                         jz      short loc_3A0DC
.text:0003A096 8B 4D AC                                      mov     ecx, [ebp+var_54]
.text:0003A099 8A 41 09                                      mov     al, [ecx+9]
.text:0003A09C 3C 06                                         cmp     al, 6
.text:0003A09E 74 2C                                         jz      short loc_3A0CC
.text:0003A0A0 3C 04                                         cmp     al, 4
.text:0003A0A2 74 28                                         jz      short loc_3A0CC
.text:0003A0A4 3C 29                                         cmp     al, 29h
.text:0003A0A6 74 24                                         jz      short loc_3A0CC
.text:0003A0A8 FF 71 0C                                      push    dword ptr [ecx+0Ch]
.text:0003A0AB E8 0B A5 FE FF                                call    _GetAddrType@4  ; GetAddrType(x)
.text:0003A0B0 84 C0                                         test    al, al
.text:0003A0B2 74 28                                         jz      short loc_3A0DC
.text:0003A0B4 8B 45 AC                                      mov     eax, [ebp+var_54]
.text:0003A0B7 FF 70 10                                      push    dword ptr [eax+10h]
.text:0003A0BA E8 FC A4 FE FF                                call    _GetAddrType@4  ; GetAddrType(x)
.text:0003A0BF 3C 03                                         cmp     al, 3
.text:0003A0C1 75 09                                         jnz     short loc_3A0CC
.text:0003A0C3 8B 45 84                                      mov     eax, [ebp+var_7D+1]
.text:0003A0C6 F6 40 0C 20                                   test    byte ptr [eax+0Ch], 20h
.text:0003A0CA 75 10                                         jnz     short loc_3A0DC
.text:0003A0CC
.text:0003A0CC                               loc_3A0CC:                              ; CODE XREF: _IPTransmit(x,x,x,x,x,x,x,x,x,x)+13E69j
.text:0003A0CC                                                                       ; _IPTransmit(x,x,x,x,x,x,x,x,x,x)+13E6Dj ...
.text:0003A0CC FF 05 AC 04 06 00                             inc     dword_604AC
.text:0003A0D2 BE 2A 2B 00 00                                mov     esi, 2B2Ah
.text:0003A0D7 E9 C6 00 00 00                                jmp     loc_3A1A2
.text:0003A0DC                               ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:0003A0DC
.text:0003A0DC                               loc_3A0DC:                              ; CODE XREF: _IPTransmit(x,x,x,x,x,x,x,x,x,x)+13E5Fj
.text:0003A0DC                                                                       ; _IPTransmit(x,x,x,x,x,x,x,x,x,x)+13E7Dj ...
.text:0003A0DC 8B 45 AC                                      mov     eax, [ebp+var_54]
.text:0003A0DF 66 8B 95 36 FF FF FF                          mov     dx, [ebp-0CAh]
.text:0003A0E6 33 C9                                         xor     ecx, ecx
.text:0003A0E8 8A 08                                         mov     cl, [eax]
.text:0003A0EA 66 89 50 02                                   mov     [eax+2], dx
.text:0003A0EE 8B 45 84                                      mov     eax, [ebp+var_7D+1]
.text:0003A0F1 8A 40 0A                                      mov     al, [eax+0Ah]
.text:0003A0F4 8B 55 AC                                      mov     edx, [ebp+var_54]
.text:0003A0F7 88 42 01                                      mov     [edx+1], al
.text:0003A0FA 8B 45 AC                                      mov     eax, [ebp+var_54]
.text:0003A0FD 66 89 58 0A                                   mov     [eax+0Ah], bx
.text:0003A101 83 E1 0F                                      and     ecx, 0Fh
.text:0003A104 8B C1                                         mov     eax, ecx
.text:0003A106 C1 E0 02                                      shl     eax, 2
.text:0003A109 50                                            push    eax
.text:0003A10A FF 75 AC                                      push    [ebp+var_54]
.text:0003A10D 53                                            push    ebx
.text:0003A10E FF 15 38 01 06 00                             call    _tcpxsum_routine ; tcpxsum(x,x,x)
.text:0003A114 8B 4D AC                                      mov     ecx, [ebp+var_54]
.text:0003A117 8B 75 8C                                      mov     esi, [ebp+var_74]
.text:0003A11A F7 D0                                         not     eax
.text:0003A11C 66 89 41 0A                                   mov     [ecx+0Ah], ax
.text:0003A120 E9 D8 C4 FE FF                                jmp     loc_265FD
.text:0003A125                               ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:0003A125
.text:0003A125                               loc_3A125:                              ; CODE XREF: _IPTransmit(x,x,x,x,x,x,x,x,x,x)+13FE2j
.text:0003A125 33 F6                                         xor     esi, esi
.text:0003A127
.text:0003A127                               loc_3A127:                              ; CODE XREF: _IPTransmit(x,x,x,x,x,x,x,x,x,x)+13FEDj
.text:0003A127 56                                            push    esi             ; int
.text:0003A128 6A 01                                         push    1               ; P
.text:0003A12A FF 75 B4                                      push    [ebp+var_4C]    ; BytesCopied
.text:0003A12D E8 EC B8 FE FF                                call    _FreeIPPacket@12 ; FreeIPPacket(x,x,x)
.text:0003A132 39 5D B0                                      cmp     [ebp+var_50], ebx
.text:0003A135 0F 84 F4 0C FE FF                             jz      loc_1AE2F
.text:0003A13B FF 75 B0                                      push    [ebp+var_50]
.text:0003A13E E9 85 03 00 00                                jmp     loc_3A4C8

WIN2003 ENT原版:

text:00023BB0 loc_23BB0:                              ; CODE XREF: SendRSTFromTCB(x,x)+42A7j
.text:00023BB0                 mov     eax, [ebp+4]
.text:00023BB3                 mov     [eax+0Ch], edx
.text:00023BB6                 mov     eax, [ebp+4]
.text:00023BB9                 mov     [eax+1Ch], bl
.text:00023BBC                 mov     eax, [ebp+Packet]
.text:00023BBF                 movzx   eax, byte ptr [eax]
.text:00023BC2                 and     eax, 0Fh
.text:00023BC5                 shl     eax, 2
.text:00023BC8                 cmp     eax, esi
.text:00023BCA                 mov     [ebp+arg_54], eax
.text:00023BCD                 jb      loc_2F98C
.text:00023BD3                 ja      loc_23A81
.text:00023BD9
.text:00023BD9 loc_23BD9:                              ; CODE XREF: SendRSTFromTCB(x,x)-7C01j
.text:00023BD9                 mov     eax, [ebp+arg_58]
.text:00023BDC                 mov     eax, [eax+14h]
.text:00023BDF                 mov     esi, [ebp+arg_54]
.text:00023BE2                 push    10h             ; Priority
.text:00023BE4                 push    [ebp+var_4C]    ; int
.text:00023BE7                 add     eax, esi
.text:00023BE9                 sub     [ebp+arg_5C], eax
.text:00023BEC                 call    _TcpipBufferVirtualAddress@8 ; TcpipBufferVirtualAddress(x,x)
.text:00023BF1                 cmp     eax, ebx
.text:00023BF3                 jz      loc_2F9DB
.text:00023BF9                 mov     ecx, [ebp+var_4C]
.text:00023BFC                 mov     edi, [ecx]
.text:00023BFE                 mov     ecx, [ecx+14h]
.text:00023C01                 sub     ecx, esi
.text:00023C03                 jz      loc_2F9CB
.text:00023C09                 push    ecx             ; Length
.text:00023C0A                 add     eax, esi
.text:00023C0C                 push    eax             ; VirtualAddress
.text:00023C0D                 push    _BufferPool     ; PoolHandle
.text:00023C13                 lea     eax, [ebp+Buffer]
.text:00023C19                 push    eax             ; Buffer
.text:00023C1A                 lea     eax, [ebp+Status]
.text:00023C1D                 push    eax             ; Status
.text:00023C1E                 call    ds:__imp__NdisAllocateBuffer@20 ; NdisAllocateBuffer(x,x,x,x,x)
.text:00023C24
.text:00023C24 loc_23C24:                              ; CODE XREF: SendRSTFromTCB(x,x)+4321j
.text:00023C24                                         ; SendRSTFromTCB(x,x)+432Dj
.text:00023C24                 cmp     [ebp+Status], ebx
.text:00023C27                 jnz     loc_2FA12
.text:00023C2D                 mov     eax, [ebp+MemoryDescriptorList]
.text:00023C30                 mov     ecx, [ebp+var_4C]
.text:00023C33                 mov     [eax+1Ch], ecx
.text:00023C36                 mov     eax, [ebp+Buffer]
.text:00023C3C                 mov     ecx, [ebp+arg_58]
.text:00023C3F                 mov     [ecx], eax
.text:00023C41                 mov     [eax], edi
.text:00023C43                 mov     edi, [ebp+Packet]
.text:00023C46                 mov     [ecx+14h], ebx
.text:00023C49                 cmp     [edi+4], bx
.text:00023C4D                 jnz     short loc_23C71
.text:00023C4F                 xor     eax, eax
.text:00023C51                 inc     eax
.text:00023C52                 mov     ecx, offset _IPIDCacheLine
.text:00023C57                 lock xadd [ecx], eax
.text:00023C5B                 mov     [edi+4], ax
.text:00023C5F                 mov     edi, [ebp+Packet]
.text:00023C62                 mov     ax, [edi+4]
.text:00023C66                 mov     ch, al
.text:00023C68                 mov     cl, ah
.text:00023C6A                 mov     [edi+4], cx
.text:00023C6E                 mov     edi, [ebp+Packet]
.text:00023C71
.text:00023C71 loc_23C71:                              ; CODE XREF: SendRSTFromTCB(x,x)-7A93j
.text:00023C71                 mov     eax, [ebp+arg_5C]
.text:00023C74                 add     esi, eax
.text:00023C76                 mov     ax, si
.text:00023C79                 mov     esi, [ebp+MemoryDescriptorList]
.text:00023C7C                 mov     ch, al
.text:00023C7E                 mov     cl, ah
.text:00023C80                 mov     eax, [ebp+arg_68]
.text:00023C83                 mov     [edi+2], cx
.text:00023C87                 mov     al, [eax+0Ah]
.text:00023C8A                 mov     ecx, [ebp+Packet]
.text:00023C8D                 mov     [ecx+1], al
.text:00023C90                 mov     eax, [ebp+Packet]
.text:00023C93                 mov     [eax+0Ah], bx
.text:00023C97                 jmp     loc_13544
.text:00023C97 ; END OF FUNCTION CHUNK FOR _SendRSTFromTCB@8
.text:00023C9C ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00023C9C ; START OF FUNCTION CHUNK FOR _IPTransmit@40
.text:00023C9C
.text:00023C9C loc_23C9C:                              ; CODE XREF: IPTransmit(x,x,x,x,x,x,x,x,x,x)+5Fj
.text:00023C9C                 cmp     [ebp+50h+arg_C], 0FFFFh
.text:00023CA3                 jg      loc_2F3EA
.text:00023CA9                 jmp     loc_1330F
.text:00023CAE ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00023CAE
.text:00023CAE loc_23CAE:                              ; CODE XREF: IPTransmit(x,x,x,x,x,x,x,x,x,x)+1B5j
.text:00023CAE                 mov     eax, [ebp+50h+arg_8]
.text:00023CB1                 mov     esi, [eax]
.text:00023CB3                 lea     eax, [ebp+50h+var_54]
.text:00023CB6                 push    eax
.text:00023CB7                 push    _IpHeaderPool
.text:00023CBD                 mov     [ebp+50h+var_D4], ebx
.text:00023CC3                 mov     [ebp+50h+var_9C], esi
.text:00023CC6                 call    _MdpAllocate@8  ; MdpAllocate(x,x)
.text:00023CCB                 cmp     eax, ebx
.text:00023CCD                 mov     [ebp+50h+var_98], eax
.text:00023CD0                 jz      loc_26B4C
.text:00023CD6                 push    10h             ; Priority
.text:00023CD8                 push    esi             ; int
.text:00023CD9                 call    _TcpipBufferVirtualAddress@8 ; TcpipBufferVirtualAddress(x,x)
.text:00023CDE                 jmp     loc_23B63


如果你修改了tcpip.sys,记得也把它的checksum修正一下.

Win CE与Windows XP Socket通讯范例 Win CE与Windows XP Socket通讯范例 这是2010/01的项目 立即下载

相关推荐

Office XP SP2(补丁2)ACCESS XP

微软针对Office XP 的 Serice Pack 2(补丁2)

Windows下底层数据包发送实战

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

weixin_30386713的博客 913

XP_SP2_TCPIP_Patch.exe

内存检测软件<br>系统维护类

raw socket应用笔记

AF_INET:能看到网络层数据。AF_PACKET:能看到链路层数据。AF_INET + SOCK_STREAM:获取基于TCP协议的应用层数据(不能获取TCP头部信息)。AF_INET + SOCK_DGRAM:获取基于UDP协议的应用层数据(不能获取UDP头部信息)。AF_INET + SOCK_RAW:获取基于IP协议的传输层数据(不能获取IP头部信息),获取IP头部信息需要开启IP_HDRINCL特性。

OnlyLove_的博客 1178

【Kingbase人大金仓】授权文件更换

本文介绍了金仓数据库授权文件更换的步骤:1.通过ksql或客户端工具查询数据库版本;2.在官网下载对应版本的license.bat文件;3.替换前先备份原授权文件(使用tar命令压缩),再用新文件覆盖原文件。注意事项包括:版本号需严格对应,授权文件通常位于安装目录下,可使用find命令查找具体位置。操作需谨慎,建议先备份原文件以便恢复。

qq_34463511的博客 3459

高速PCB设计中串扰的成因、影响与实战控制策略

在高速数字电路与硬件系统设计中,信号完整性是确保系统稳定可靠的核心基础。其核心原理在于,当信号在传输线上传播时,会伴随产生电场与磁场,若相邻导线距离过近,便会通过电磁场耦合产生不期望的能量转移,即串扰。这一现象会直接导致信号波形畸变、时序偏移和噪声裕量降低,严重影响系统性能。从技术价值看,深入理解并有效控制串扰,是提升数据传输速率、保障系统稳定性和降低误码率的关键。其应用场景广泛覆盖了从高速SerDes链路、DDR内存接口到高精度模拟电路等几乎所有现代电子系统。本文聚焦于高速PCB设计中的串扰问题,系统剖析

weixin_27625589的博客 575

Socket RAW的限制

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

敬事 1690

ChatGPT Windows桌面版:从安全下载到高效配置的全流程指南

WebView封装技术是将网页应用转化为独立桌面程序的核心方法,它通过嵌入浏览器内核实现跨平台功能复用。其原理在于利用Electron或Tauri等框架,将Web内容打包进原生应用外壳,同时注入系统级API调用能力。这项技术的工程价值在于显著提升了Web应用的系统集成度和用户体验,使其能够支持全局快捷键、独立进程和本地数据存储等原生特性。在AI助手深度集成工作流的应用场景中,这种封装模式解决了浏览器多标签页切换繁琐、会话管理不便等痛点。本文以ChatGPT桌面客户端为例,详细解析了基于开源项目的安全下载路径

weixin_30437847的博客 482

WSAStartup

WSAStartup 百科名片 WSAStarup,是Windows SocKNDs Asynchronous的启动命令、Windows下的网络编程接口软件 Winsock1 或 Winsock2 里面的一个命令。 目录 WSAStartup 函数定义 注释 返回值 错误代码 展开 WSAStartup 函数定义

小小世界的专栏 976

国密SKF库数字签名全解析:SM2签名与验证的详细实现

本文详细解析了基于国密SKF库实现SM2数字签名与验证的全过程。内容涵盖SKF库环境搭建、设备初始化、PIN码验证、SM2签名生成以及纯软件与SKF库两种验证方式的详细实现,为开发者提供了一份实用的国密算法开发指南。

weixin_29303701的博客 323

自托管AI邮件助手imap-mcp:安全连接Claude与个人邮箱的完整指南

在AI助手日益普及的今天,如何安全地让AI访问个人邮箱数据成为关键挑战。传统方法如直接暴露IMAP/SMTP凭证存在严重安全隐患,而第三方SaaS服务则涉及隐私泄露风险。Model Context Protocol (MCP) 作为一种新兴的标准化协议,为AI工具安全接入提供了解决方案。其核心价值在于实现数据源与AI助手间的安全、标准化交互,特别适用于处理敏感信息的场景。imap-mcp正是基于MCP协议构建的自托管邮件网关,它通过多层安全机制(包括主密钥加密和OAuth令牌哈希化)保护用户凭证,让用户能在

weixin_28295799的博客 655

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

 http://www.opencjk.org/~scz/windows/200701091750.txtA: scz@nsfocus.com 2007-01-09 17:50现在已经是众所周知,XP SP2对raw socket做了一些限制,最引人注目的有两条:1) 不能通过raw socket发送TCP报文。做此尝试时会得到10004号错误。2) 不能通过raw socket发送伪造源IP的U

1745

RV1126B SDK移植实战:从DDR配置到USB烧写全解析

本文详细解析了RV1126B SDK移植的核心实战流程,重点攻克了DDR初始化失败与USB烧写两大难题。文章从理解启动流程入手,提供了DDR配置错误的排查步骤、SDK编译配置要点,并深入讲解了USB烧写的完整操作与常见问题解决方案,旨在帮助开发者高效完成系统移植与稳定运行。

weixin_29164497的博客 542

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

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

6509

YOLOv8的二次创新 | 结合iRMB与EMA打造全新的iEMA机制,提升动态检测性能【附保姆级代码】

YOLOv8继承了YOLO系列的轻量化和高效检测特性,同时通过改进的架构设计使得其在实时场景下具有更高的检测精度。然而,随着检测需求的增加,尤其是在动态目标检测和长时间序列检测中,YOLOv8的鲁棒性依然可以提升。通过iEMA机制的引入,我们将在这些方面进行进一步优化。iRMB模块是我们对传统Residual Block的进一步改进。通过多层特征提取,iRMB能够捕捉更多层次的特征信息,并通过引入轻量化的残差结构,提升计算效率。

一键难忘的博客 3085

PCL 基于视椎体裁剪点云

PCL 基于视椎体裁剪点云

dayuhaitang1的博客 4083

关于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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

伪造IP包,禁止TCP连接

大家是否想过在局域网内如何禁止别人访问web server,pop3,ftp等。那么如何禁止呢?大家都知道TCP是面向连接的,连接时有三次握手,之后才能确认连接成功。那么我们就应该能在第一次握手之后伪造一个服务方的握手返回,从而达到TCP连接不成功,无法访问某端口。程序如下: void DeCodeIP(buf,iBufSize) //解析侦听到的IP数据包{IPHEADER * pIPhdr;T

1844

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

XP sp2对socket函数的影响

使用socket开发 的网络应用系统,在XP上运行的一向很好。现在移到新的机器上,新机器XP升级到sp2上,结果网络应用系统的服务器程序频繁出错,很奇怪。后来经过跟踪发现,在新的环境中,recv函数发生了错误,虽然recv函数是阻塞的,但新的MSDN上说,recv及send函数在一些情况下会立即返回,并设置错误为WSAEWOULDBLOCK.。下面是Microsoft的MSDN的 WSAAsync

firststp的专栏 1349

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

xp的网络编程代码

//接收端 #include #include #pragma comment(lib,"Ws2_32.lib")    //连接库 void main(){     //加载嵌套字库     WORD wVersionRequested;

655

linux raw限制端口访出,使用Linux raw socket时需要注意的一些问题

本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。作者:gfree.wind@gmail.com博客:linuxfocus.blog.chinaunix.net一般情况下,我们使用raw socket都是用于发送icmp包或者自己定义的包。最近我想用raw socket自己去...

weixin_39997443的博客 690
上一篇: raw socket 编程
下一篇: 关于windows xp sp2和windows 2003 sp1的最大连接数限制分析
aerror
博客等级 码龄23年 392粉丝 193原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值