首页
社区
课程
招聘
[求助]发送ip.id=0的包,id会被重写
发表于: 2016-4-2 18:49 3317

[求助]发送ip.id=0的包,id会被重写

2016-4-2 18:49
3317
    在windows xp sp3下利用原始套接字发送IP包,当设置ip.id =0时,调用sendto函数进行发送后,发现嗅探到的IP包id被重写为随机的id号了。ip.id !=0时,id号不会改变。
      请问有没有好的解决办法?

      [培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

      收藏
      免费 0
      支持
      分享
      最新回复 (1)
      雪    币: 93
      活跃值: (52)
      能力值: ( LV4,RANK:50 )
      在线值:
      发帖
      回帖
      粉丝
      2
      跟了一下sendto的过程,发现时在tcpip.sys中对ip.id做了检查,如下:
      .text:B2D701C5 66 39 5F 04         cmp     [edi+ip_hdr.ident], bx ; if id==0 [rawip]
      .text:B2D701C9 75 22             jnz     short loc_B2D701ED
      .text:B2D701CB 33 C0             xor     eax, eax
      .text:B2D701CD 40               inc     eax
      .text:B2D701CE B9 C0 BE D8 B2       mov     ecx, offset random_id
      .text:B2D701D3 F0 0F C1 01         lock xadd [ecx], eax
      .text:B2D701D7 66 89 47 04         mov     [edi+ip_hdr.ident], ax  # ax -> bx, bx==0
      .text:B2D701DB 8B 7D AC           mov     edi, [ebp+pihdr]
      .text:B2D701DE 66 8B 47 04         mov     ax, [edi+ip_hdr.ident]

      如何id=0,tcpip.sys将取random_id的值作为id,并将random_id++。所以,只要把mov [edi+4], ax -> mov [edi+4], bx,就可以解决了。
      2016-4-4 13:50
      0
      游客
      登录 | 注册 方可回帖
      返回
      //