首页
社区
课程
招聘
[求助]WinpCap 修改UDP包头
发表于: 2010-10-12 11:36 5822

[求助]WinpCap 修改UDP包头

2010-10-12 11:36
5822
winpCap 修改UDP包头的源地址

内网和本机测试都通过了, 到了真实网络IP的UDP上, 没更改掉IP.,  
例如想模拟 1.1.1.1 向某端口发UDP包

szLMAC 网卡MAC
szGMAC 为网关 MAC
SendARP 成功, pEth->ether_dhost会更改为内网地址.
否则 pEth->ether_dhost 为网关MAC

typedef struct tagEthHdr
        {
                u_char   ether_dhost[MAC_ALEN];   
                u_char   ether_shost[MAC_ALEN];   
                u_short  ether_type;
        }EthHdr;

void FixMAC(ULONG sip, ULONG dip,EthHdr* pEth)
{
        pEth->ether_type = htons( 0x0800);
        memcpy( pEth->ether_shost,szLMAC,MAC_ALEN);

        if(dip == m_sip){ // 本机到本机,ok               
                memcpy( pEth->ether_dhost,szLMAC,MAC_ALEN);
        }
        else
        {
                ULONG nMacSize = MAC_ALEN;
                long destIP = htonl(dip);
                SendARP( htonl(destIP),NULL,pEth->ether_dhost,&nMacSize);
                if( !nMacSize)
                        memcpy( pEth->ether_dhost,szGMAC,MAC_ALEN);
                         // 本机到局域网,ok
        }
}

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
SYN, UDP部分代码
2010-10-12 11:40
0
游客
登录 | 注册 方可回帖
返回
//