linux下怎么用socket做一个抓包并解包程序

linux下怎么用socket做一个抓包并解包程序,第1张

我给你一个更高端的 #include #include #include #include #include #include #define M 8888 struct qun { int cy[5]}struct haoyou { int py[5]}struct rizhi { int geren[5]}int main() { struct qun group[5]={0}struct haoyo...

你用SOCK_RAW的模式建立原始套接字然后接收包。

剩下的就全是分析内容的事情了。。。。最多再用一下多线程。

用到linux下socket编程的最基本知识, 以及对网络协议细节的了解。 前者随便找本socket编程的书就很详细了, 后者你因该懂。

——————

例如, 你需要include以下这些头:

stdio.h,stdlib.h, unistd.h, sys/socket.h, sys/types.h, netinet/if_ether.h, netinet/in.h,

然后建立socket的时候用

socket(PF_PACKET,SOCK_RAW,htons(ETH_P_IP)),这样就能用这个socket来监听以太网的包。

然后循环调用recvfrom函数来听这个socket的接受到的数据, 再分析就好了。

如果要嗅探别人机器的包, 就要用ARP欺骗了。。呵呵

tcpdump抓包用的是PF_PACKET协议族,你把你的socket也用这个创建下试试。

例如:

socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)


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

原文地址:https://54852.com/yw/7409869.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存