使用VC6.0的MFC做一个网络抓包和数据包发送程序,使用的winpcap

使用VC6.0的MFC做一个网络抓包和数据包发送程序,使用的winpcap,第1张

你先确保你的VC6.0的winpcap环境搭配好了再提问吧

这个应该是你的毕业设计吧。我做的是libnet发包,也用到winpcap,你说的要求在winpcap的中文文档里面全部都有,只要把4个它给的搜伍例子结合一下应该自己看最多一个星期就弄好了。

vc6.0的sdk太老了,搭配好winpcap的环境问题很大呀!!!!我就遇到了,比如winpcap调用Windows的API中soket的一个头文件中的一信姿个结构体,但是这个结构体的声明不是winpcap需要的,或者根本就没有,类似的例子很多。

你还是先把环境搭建好吧,我现在用的vs2005在做,环境搭建容易些。

如果你坚持用6.0搭建环境(或者根本就没有搭滑漏绝建)即使别人给你了源代码你也编译过不了,错误一大堆!!!

哥们从头开始吧.......

MFC抓?肆棚那是不太现实的。

有三种方式:燃雹衡

1、写驱动,进入RING0抓IRP;

2、逆向别的应用程序;

3、使用AccessPort。

3最皮做简单,因为下载下来然后监控指定串口就行了。

我刚刚做完这个程序,你太有命了

给你讲讲首先 设置过滤 在pcap_compile函数中的过滤函数写上“ip and tcp”,由于你的http包陪拦也是tcp包ip的意思就是ipv4协议的。

int main(int arg, char **argv)

{

pthread_t saveHost, saveTotal, delLink

char errbuf[PCAP_ERRBUF_SIZE]

//const u_char *pkt_data

uint32_t localnet, netmask

struct bpf_program fcode

int ret

char *dev = eth0

/* 打开设备*/

if((adhandle = pcap_open_live(dev, 640, 1, 1000, errbuf) ) == NULL)

{

fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", dev)

exit(1)

}

if((pcap_lookupnet(dev, &localnet, &netmask, errbuf)) <0)

{

fprintf(stderr, "pcap_lookupnet error : %s\n", errbuf)

exit(1)

}

if((pcap_compile(adhandle, &fcode, "ip and tcp", 0, netmask)) <0)

{

fprintf(stderr, "pcap_compile error:%s\n", pcap_geterr(adhandle))

exit(1)

}

if((pcap_setfilter(adhandle, &fcode)) <0)

{

fprintf(stderr, "pcap_setfilter error:%s\n", pcap_geterr(adhandle))

exit(1)

}

pcap_loop(adhandle, 0, packet_handler, NULL)//回掉函数,处理你抓到的包

pcap_close(adhandle)

return 0

}

我qq230635800 还有不明 问我

忘记了芦悉胡给你介绍数据包了

前14位是mac地址位再20位是ip头位,再后来N位是tcp头位,具体tcp长度是结构题tcphdr中的doff*4就是tcp的头陆圆长度

再往下就是 数据了

具体你就看可以看tcp.h ip.h ethhdr.h 这三个头文件

是关于三个头的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12409582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存