怎么在数据包发出之前修改包的源地址? 怎么在数据包发出之前修改包的源地址?比如我的机子的地址是192.168.0.1 我想发的包的源地址变为 192.168.5.4怎么办?请大虾指教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有几种方法:1 用原始套结字;但这种方式受操作系统的限制,好像windowsxp已经禁止了原始套结字发送假ip;2 通过自己写驱动可以做到,协议驱动就可;3 使用wincap组件,这个组件是微软在协议驱动层上提供的类库,直接调用它的函数应该就可以。 提供两个方法:1. HOOK API, Hook mssock.dll 的连接、发送和接收函数,然后自己实现,改变目标地址。2. Arp欺骗,可以用wincap发送arp欺骗包,让机器将主机192.168.5.4 的MAC地址绑定到192.168.0.1,这样发送到192.168.0.1的数据实际上都发送到主机192.168.5.4 了。 用Winpcap,想发什么包发什么包,不过MAC、IP头,TCP/UDP头都要自己填充,checksum要自己算 4楼的回答很好,因为我也想问这个改变目标地址的方法.不过你说的方法路游器能过滤掉吗?另外8楼说的checksum怎么算? USHORT checksum(USHORT* buffer,int size) { unsigned long cksum=0; while(size>1) { cksum+=*buffer++; size-=sizeof(USHORT); } if(size) { cksum+=*(UCHAR*)buffer; } cksum=(cksum>>16)+(cksum&0xffff); cksum+=(cksum>>16); return (USHORT)(~cksum); } 初学者请教下exe文件能不能作为资源使用。 请教interface关键字 关于画橡皮筋的问题 我在单文件档里用了CSplitterWnd 添加是对话框,为什么对话框显不不出来? nlc文件用什么打开?在哪里下载? 求用delphi编写的语法分析程序,使用LL(1)分析法 Nt下如何实现控制台程序的重定向? 为什么连pCommand->ActiveConnection=NULL;这句也会出错? 如何实现窗体控件的准确定位!!!! 有没有哪个使用过ODBC读取foxbase的dbf文件? 如何获取线程弹出的对话框的字符串并销毁这个线程呢? VC中出现的问题,请大家帮帮忙?
1 用原始套结字;但这种方式受操作系统的限制,好像windowsxp已经禁止了原始套结字发送假ip;
2 通过自己写驱动可以做到,协议驱动就可;
3 使用wincap组件,这个组件是微软在协议驱动层上提供的类库,直接调用它的函数应该就可以。
1. HOOK API, Hook mssock.dll 的连接、发送和接收函数,然后自己实现,改变目标地址。
2. Arp欺骗,可以用wincap发送arp欺骗包,让机器将主机192.168.5.4 的MAC地址绑定到192.168.0.1,这样发送到192.168.0.1的数据实际上都发送到主机192.168.5.4 了。
USHORT checksum(USHORT* buffer,int size)
{
unsigned long cksum=0;
while(size>1)
{
cksum+=*buffer++;
size-=sizeof(USHORT);
} if(size)
{
cksum+=*(UCHAR*)buffer;
}
cksum=(cksum>>16)+(cksum&0xffff);
cksum+=(cksum>>16); return (USHORT)(~cksum);
}