网络嗅探器源代码

合集下载

网络嗅探器的设计与实现

网络嗅探器的设计与实现

摘要:随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。

Internet 的安全已经成为亟待解决的问题。

多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。

嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。

网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。

键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.关键词: Internet;网络嗅探器;网络数据包;网络报文;目录1 引言 (1)1.1 开发背景 (1)1.2 开发意义 (1)2 系统分析 (2)2.1 设计概述 (2)2.1.1 实现目标 (2)2.1.2 开发环境 (2)2.2 开发相关技术简介 (2)2.2.1 C# 语言简介 (2)2.2.2 嗅探技术简介 (3)2.2.3 TCP/IP 协议 (4)2.2.4 数据包简介 (6)2.3 可行性分析 (7)3 详细设计 (8)3.1 设计原理 (8)3.2 功能说明 (11)3.3 系统实施 (11)3.4 系统测试 (13)4 论文总结 (16)5 参考文献 (17)6 致谢 (17)第一章引言1.1开发背景随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。

但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。

计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。

Internet的安全已经成为亟待解决的问题。

多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。

嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。

在vs2008MFC下开发基于winpcap的网络嗅探器(IP,TCP,UDP)

在vs2008MFC下开发基于winpcap的网络嗅探器(IP,TCP,UDP)

课程设计Ⅰ设计报告题目:基于Winpcap的网络嗅探器的实现学号:姓名:学院:专业班级:指导教师:设计时间:指导老师评语:评定成绩: 签名: 日期:目录1 概述 (3)1.1课程设计的目的 (3)1.2设计任务与要求 (3)1.3开发环境 (3)2系统设计的基本概念与原理 (3)2.1IP协议基本知识 (3)2.2TCP协议基本知识 (6)2.3UDP协议基本知识 (9)2.4 WINPCAP基本知识 (9)2.5 WINPCAP基本原理 (14)2.6MFC编程框架 (16)3 基于WINPCAP的单文档网络嗅探器的设计与分析 (19)3.1系统设计实现的基本原理与过程 (19)3.2系统功能设计 (21)3.3系统架构设计 (22)3.4子系统与模块设计 (23)3.4.1网络嗅探器设置模块 (23)3.4.2网络数据包的捕获模块 (23)3.4.3解析和显示模块 (23)4 系统详细设计与实现 (24)4.1数据结构的设计 (24)4.2全局变量与函数的声明 (25)4.3嗅探器界面设计 (25)4.4嗅探器捕获模块的设计与实现 (26)4.5网络数据包捕获模块的设计与实现 (31)4.6解析和显示模块的设计与实现 (32)4.6.1列表视图初始化设置 (32)4.6.2从读取离线数据包并在列表视图中显示 (33)4.6.2响应用户鼠标消息,解析对应行的数据包信息。

(36)5 系统调试与运行 (38)5.1 WINPCAP函数库的安装 (38)5.2 SNIFFER网络嗅探器的测试与运行 (38)6 课程设计总结 (39)参考文献 (40)1 概述1.1 课程设计的目的目的:设计一个GUI程序,实现IP、TCP、UDP数据包的捕获和解析。

通过编程了解各类数据报的结构,掌握网络编程的基本原理和方法。

1.2 设计任务与要求本课程设计的基本内容是捕获IP,TCP,UDP数据包,通过解析数据包,理解和掌握各类数据包的结构(1)设计一个GUI程序,完成局域网数据包的捕获和IP、TCP、UDP数据包的解析;(2)捕获几个网络数据报,给出实例并分析各数据包各字段的含义;(3)说明基于Winpcap编程的基本原理、程序的总体框架,绘制每个函数的详细设计流程图。

网络嗅探器Sniffer软件源代码浅析(2)

网络嗅探器Sniffer软件源代码浅析(2)
维普资讯
第2 卷 8
p 2 ‘ 8
第1 期






2 0年 1 02 月
J n a y2 0 a u r 0 2
Co p t rEn i e rn m u e gn e i g

安全 技术 ・
文章编号: 00 32( 0) —06 2 10- 48 02 1 15 - 2 0 —0
i mo u a z d c di g a r 0 h c i nd t e o h r s h w o u t t o f a lt ee t a d m a p a e t e fa s o t s d l r e o n nd t r r c e k ng a h t e i o t s he i ̄ c l o s l c n ni nl t h g fne wor nt rac i l l ki er e F nn l . i e a o h re ovi gdie to f nier s f ar i I weg v u t e v l n y r c i n o s fe o t w ede i n. sg
_
5 # n l e< e £ . i cud B Vi h> 6 u l e< e i e tn h .i cud n tn ti - > 7.i cod u l  ̄‘_ p /n th r a i e . > 8.i l e<u s d. > # ncud nit h 9.i l e” e de s h‘ # ncud h a r . ’
1 . c a u e[5 3 I 4 h r f r6 5 5; b
1, sre sc a 5 t e t o k ddr ; r n f om; 1 丘

实验七 网络嗅探

实验七 网络嗅探

实验七网络嗅探【实验目的】1.了解FTP、HTTP等协议明文传输的特性;2.了解局域网内的监听手段;3.掌握Ethereal嗅探器软件的使用方法;4.掌握对嗅探到的数据包进行分析的基本方法,并能够对嗅探到的数据包进行网络状况的判断。

【实验环境】两台以上装有Windows 2000/XP/2003操作系统的计算机。

【实验原理】(1)嗅探原理网络监听是一种常用的被动式网络攻击方法,能帮助入侵者轻易获得用其他方法很难获得的信息,包括用户口令、账号、敏感数据、IP地址、路由信息、TCP套接字号等。

管理员使用网络监听工具可以监视网络的状态、数据流动情况以及网络上传输的信息。

嗅探器(Sniffer)是利用计算机的网络接口截获发往其他计算机的数据报文的一种技术。

它工作在网络的底层,将网络传输的全部数据记录下来。

嗅探器可以帮助网络管理员查找网络漏洞和检测网络性能。

嗅探器可以分析网络的流量,以便找出所关心的网络中潜在的问题。

不同传输介质网络的可监听性是不同的。

一般来说,以太网(共享式网络)被监听的可能性比较高,因为以太网(共享式网络)是一个广播型的网络。

微波和无线网被监听的可能性同样比较高,因为无线电本身是一个广播型的传输媒介,弥散在空中的无线电信号可以被很轻易地截获。

在以太网中,嗅探器通过将以太网卡设置成混杂模式来捕获数据。

因为以太网协议工作方式是将要发送的数据包发往连接在一起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。

但是,当主机工作在监听模式下,无论数据包中的目标地址是什么,主机都将接收(当然自己只能监听经过自己网络接口的那些包)。

在Internet上有很多使用以太网协议的局域网,许多主机通过电缆、集线器连在一起,当同一网络中的两台主机通信的时候,源主机将写有目的主机地址的数据包直接发向目的主机。

但这种数据包不能在IP层直接发送,必须从TCP/IP协议的IP层交给网络接口,也就是数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息。

计算机网络课程设计实验报告

计算机网络课程设计实验报告

计算机网络课程设计报告姓名:学号:班级:指导老师:湖南科技大学计算机科学与工程学院2013年6月实验一1。

实验名称:网络聊天程序的设计与实现2。

实验目的:通过本实验能够了解socket通信的原理并在此基础上编写一个聊天程序了解TCP/IP的基础知识,发现TCP与UDP的优缺点以及在网络通信的应用.3.实验原理:从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。

当网络的边缘部分中的两个主机使用网络的两个主机使用网络的核心部分进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。

从IP层来说,通信的两端是两个主机,IP数据报的首部明确的标志了这两个主机的IP地址.但是严格的讲,两个主机进行通信就是两个主机中的应用进程互相通信。

根据应用程序的不同需求,运输层需要有两种不同的运输协议,即是面向连接的TCP和无连接的UDP。

在使用这两个协议时运输层向高层用户屏蔽了下面的网络核心的细节,它使应用进程看见的就是好像在两个运输层实体间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别.当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。

但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道.由于我在课程设计中采用的是UDP协议进行通信的,这里就只简述一下一些关于UDP的内容,UDP在传送数据之前不需要先建立连接。

远地主机的运输层在收到UDP报文后,不需要给出任何确认。

虽然UDP不提供可靠的交付,但在某些情况下UDP却是一种最有效的工作方式.为此当我们使用UTP协议使两个计算机中的进程要互相通信,不仅必需知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。

sniffer功能和使用详解

sniffer功能和使用详解

Sniffer功能和使用详解一Sniffer介绍Sniffer,中文翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。

使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。

当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击。

将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。

Sniffer技术常常被黑客们用来截获用户的口令,据说某个骨干网络的路由器网段曾经被黑客攻入,并嗅探到大量的用户口令。

但实际上Sniffer技术被广泛地应用于网络故障诊断、协议分析、应用性能分析和网络Sniffer的分类如果Sniffer运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。

二sniffer proSniffer软件是NAI公司推出的功能强大的协议分析软件。

Sniffer Pro - 功能●捕获网络流量进行详细分析●利用专家分析系统诊断问题●实时监控网络活动●收集网络利用率和错误等使用Sniffer捕获数据时,由于网络中传输的数据量特别大,如果安装Sniffer的计算机内存太小,会导致系统交换到磁盘,从而使性能下降。

如果系统没有足够的物理内存来执行捕获功能,就很容易造成Sniffer系统死机或者崩溃。

因此,网络中捕获的流量越多,建议Sniffer系统应该有一个速度尽可能快的计算机。

1. Sniffer Pro计算机的连接要使Sniffer能够正常捕获到网络中的数据,安装Sniffer的连接位置非常重要,必须将它安装在网络中合适的位置,才能捕获到内、外部网络之间数据的传输。

如果随意安装在网络中的任何一个地址段,Sniffer就不能正确抓取数据,而且有可能丢失重要的通信内容。

一般来说,Sniffer应该安装在内部网络与外部网络通信的中间位置,如代理服务器上,也可以安装在笔记本电脑上。

当哪个网段出现问题时,直接带着该笔记本电脑连接到交换机或者路由器上,就可以检测到网络故障,非常方便。

网络嗅探器源代码

网络嗅探器源代码

#include <winsock2.h> /*windows socket的头文件,系统定义的*/ #include <windows.h>#include <ws2tcpip.h>#include <stdio.h>#include <stdlib.h>#pragma comment(lib,"ws2_32.lib") /*链接API相关连的Ws2_32.lib静态库*/#define MAX_HOSTNAME_LAN 255#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)#define MAX_ADDR_LEN 16struct ipheader {unsigned char ip_hl:4; /*header length(报头长度)*/unsigned char ip_v:4; /*version(版本)*/unsigned char ip_tos; /*type os service服务类型*/unsigned short int ip_len; /*total length (总长度)*/unsigned short int ip_id; /*identification (标识符)*/unsigned short int ip_off; /*fragment offset field(段移位域)*/unsigned char ip_ttl; /*time to live (生存时间)*/unsigned char ip_p; /*protocol(协议)*/unsigned short int ip_sum; /*checksum(校验和)*/unsigned int ip_src; /*source address(源地址)*/unsigned int ip_dst; /*destination address(目的地址)*/}; /* total ip header length: 20 bytes (=160 bits) */typedef struct tcpheader {unsigned short int sport; /*source port (源端口号)*/unsigned short int dport; /*destination port(目的端口号)*/unsigned int th_seq; /*sequence number(包的序列号)*/unsigned int th_ack; /*acknowledgement number(确认应答号)*/ unsigned char th_x:4; /*unused(未使用)*/unsigned char th_off:4; /*data offset(数据偏移量)*/unsigned char Flags; /*标志全*/unsigned short int th_win; /*windows(窗口)*/unsigned short int th_sum; /*checksum(校验和)*/unsigned short int th_urp; /*urgent pointer(紧急指针)*/}TCP_HDR;typedef struct udphdr {unsigned short sport; /*source port(源端口号)*/unsigned short dport; /*destination port(目的端口号)*/unsigned short len; /*udp length(udp长度)*/unsigned short cksum; /*udp checksum(udp校验和)*/}UDP_HDR;void main(){SOCKET sock;WSADATA wsd;DWORD dwBytesRet;unsigned int optval = 1;unsigned char *dataudp,*datatcp;int i,pCount=0,lentcp, lenudp;SOCKADDR_IN sa,saSource, saDest;struct hostent FAR * pHostent;char FAR name[MAX_HOSTNAME_LAN];char szSourceIP[MAX_ADDR_LEN], szDestIP[MAX_ADDR_LEN],RecvBuf[65535] = {0};struct udphdr *pUdpheader;struct ipheader *pIpheader;struct tcpheader *pTcpheader;WSAStartup(MAKEWORD(2,1),&wsd);if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP))==SOCKET_ERROR) exit(1);gethostname(name, MAX_HOSTNAME_LAN);pHostent = gethostbyname(name);sa.sin_family = AF_INET;sa.sin_port = htons(6000);memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);bind(sock, (SOCKADDR *)&sa, sizeof(sa)); /*bind()设定自己主机的IP地址和端口号*/if ((WSAGetLastError())==10013)exit(1);WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);pIpheader = (struct ipheader *)RecvBuf;pTcpheader = (struct tcpheader *)(RecvBuf+ sizeof(struct ipheader ));pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ));while (1){memset(RecvBuf, 0, sizeof(RecvBuf));recv(sock, RecvBuf, sizeof(RecvBuf), 0);saSource.sin_addr.s_addr = pIpheader->ip_src;strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);saDest.sin_addr.s_addr = pIpheader->ip_dst;strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MAX_ADDR_LEN);lentcp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct tcpheader)));lenudp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr)));if((pIpheader->ip_p)==IPPROTO_TCP&&lentcp!=0){printf("*******************************************\n");pCount++;datatcp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct tcpheader);printf("-TCP-\n");printf("\n目的IP地址:%s\n",szDestIP);printf("\n目的端口:%i\n",ntohs(pTcpheader->dport));printf("datatcp address->%x\n",datatcp);printf("size of ipheader->%i\n",sizeof(struct ipheader));printf("size of tcpheader->%i\n",sizeof(struct tcpheader));printf("size of the hole packet->%i\n",ntohs(pIpheader->ip_len));printf("\nchar Packet%i [%i]=\"",pCount,lentcp-1);for (i=0;i<lentcp;i++){printf("\\x%.2x",*(datatcp+i));if (i%10==0)printf("\"\n\"");}printf("\";\n\n\n");for (i=0;i<lentcp;i++){if( *(datatcp+i)<=127&&*(datatcp+i)>=20)printf("%c",*(datatcp+i));elseprintf(".");}printf("\n\n*******************************************\n");}if((pIpheader->ip_p)==IPPROTO_UDP&&lentcp!=0){pCount++;dataudp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr);printf("-UDP-\n");printf("\n目的IP地址:%s\n",szDestIP);printf("\n目的端口:%d\n",ntohs(pTcpheader->dport));printf("UDP数据地址:%x\n",dataudp);printf("IP头部长度:%i\n",sizeof(struct ipheader));printf("UDP头部长度:%i\n",sizeof(struct udphdr));printf("包的大小:%i\n",ntohs(pIpheader->ip_len));printf("\nchar Packet%i [%i]=\"",pCount,lenudp-1);for (i=0;i<lenudp;i++){printf("\\x%.2x",*(dataudp+i));if (i%10==0)printf("\"\n\"");}printf("\";\n\n\n");for (i=0;i<lenudp;i++){if( *(dataudp+i)<=127&&*(dataudp+i)>=20)printf("%c",*(dataudp+i));elseprintf(".");}printf("\n\n*******************************************\n");}}}。

破解在线视频无法下载的方法

破解在线视频无法下载的方法

当你看到很精彩的视频你想不想把他保存起来以后继续欣赏呢?或者是做成MP4格式放到手机里??但是目前绝大部分的视频网站由于版权、带宽等原因不提供视频下载服务,甚至想方设法把这些视频资源藏起来。

所以你无法把它们保存到自己的电脑上。

我们要怎么样才能把别人的视频文件保存到自己的电脑上呢?下面教你几招保存视频文件~~让我们来突破封锁,把在线视频搬回家,想看就看!一、WMV、ASF等格式的网络视频1、右键属性法。

第一步:打开在线视频网页,在网页播放器内点击鼠标右键,然后选择“属性”就能看到类似http://..../*.WMV”这样的地址,这就是视频地址了。

第二步:复制视频地址用下载软件下载。

如果右键被禁用,在浏览器地址栏中键入“:alert(document.oncontextmenu='')”(输入时不要输入双引号),此时会弹出个对话框,点击“确定”按钮,然后再对着你的目标视频点击鼠标右键就可以看到弹出菜单了!2、HTML源代码查询法(此方法同样适用rm格式的视频的下载。

)如果对方网站没有加密或隐藏视频资源的URL地址,就能用这个方法找到URL地址。

操作如下:第一步:在视频的播放页面,点击鼠标右键,选择“查看源文件”,系统自动用记事本程序打开网页源文件。

第二步:执行“编辑→查找”命令,然后在查找对话框中输入“.wma”,进行查找。

第三步:复制类似"http://..../*.rm"的地址或者*.rm的文件名,然后在下载软件中进行下载,对后者,需要根据当前网页的地址补全文件地址,一般是当前网页的地址加文件地址,就是这个文件的url地址。

3、迅雷法:(“网际快车”同样适用)第一步:安装并运行最新版本的迅雷,执行“工具→配置”打开配置面板,选择“监视”项,勾选右边“浏览器”下的三项。

第二步:打开在线视频网页,把鼠标移动到视频的播放页面上,会有一个“下载”字样的图标,点击即可。

linux tcpdump

linux tcpdump

Linux 网络数据采集分析工具Tcpdump Tcpdump简介:在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。

sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。

对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。

对于网络程序员来说,通过sniffer工具来调试程序。

用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。

由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。

所以,今天我们就来看看Linux中强大的网络数据采集分析工具——TcpDump。

用简单的话来定义tcpdump,就是:dump the traffice on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。

顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。

它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。

Wireshark介绍

Wireshark介绍

WiresharkWireshark(前称Ethereal)是一个网络封包分析软件。

网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

网络封包分析软件的功能可想像成"电工技师使用电表来量测电流、电压、电阻" 的工作- 只是将场景移植到网络上,并将电线替换成网络线。

在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。

Ethereal 的出现改变了这一切。

在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其程式码,并拥有针对其源代码修改及客制化的权利。

Ethereal是目前全世界最广泛的网络封包分析软件之一。

软件简介Wireshark使用目的以下是一些使用Wireshark目的的例子:网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识当然,有的人也会“居心叵测”的用它来寻找一些敏感信息……Wireshark不是入侵侦测软件(Intrusion DetectionSoftware,IDS)。

对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。

然而,仔细分析Wireshar k撷取的封包能够帮助使用者对于网络行为有更清楚的了解。

Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。

Wireshark本身也不会送出封包至网络上。

官方:/网络流量分析是指捕捉网络中流动的数据包,并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题,它是网络和系统管理人员进行网络故障和性能诊断的有效工具。

通常,人们把网络分析总结为四种方式:基于流量镜像协议分析,基于 SNMP 的流量监测技术,基于网络探针( Probe )技术和基于流( flow )的流量分析。

第3章: 网络嗅探

第3章: 网络嗅探


2 PING方法 1)假设可疑主机的ip地址为192.168.10.10,MAC地 址为AA-BB-CC-DD-EE-EE,检测者和可疑者主机在同 一网段。 2)稍微改动可疑主机的MAC地址,假设改为AA-BBCC-DD-EE-EF. 3) 向可疑主机发送一个PING包,包含它的IP和改动的 MAC地址。 4)没有运行嗅觉器的主机将不会理会该帧,不回应。 如果看到了回应,那就说明可疑主机确实在运行嗅探 器程序。
第三章 网络嗅探
3.1 嗅探器概述
3.1.1 网络嗅探器简介绍 Sniffer(嗅探器) 是一种在网络上常用的收集有用信息的软件,可以用来监 视网络的状态,数据流动情况以及网络上传输的信息。 分析用户的敏感的数据: 账号,密码,商业机密信息。 FTP,Telent,SMTP,POP协议的密码都是用明文传输的。 嗅探器目的是破坏信息的保密性。 定义:Sniffer是利用计算机网络接口截获目的地为其他计算机的数 据报文的一种工具。


诱骗方法 故意透露一下无用权限的密码账号,如 果被黑客监听到,一旦黑客窃取口令, 他将试用这些信息登陆。那么标准的入 侵检测系统审计程序将记录这些信息, 从而发出警告。

6.网络带宽出现反常 如果某台机器长时间的占用较大带宽, 这台机器就有可能在监听。

7.网络通信丢包率高 通过一些网络管理软件,可疑看到信息 包的传送情况,最简单的是PING命令。 它会告诉你丢掉了百分之多少的包。如 果你的网络结构正常,而又有20%-30% 数据包丢失以致数据包无法顺畅流到目 的地。就有可能有人在监听,这是由于 嗅探器拦截数据包所导致的。
局域网介质访问方式划分
共享式局域网与交换式局域网。 共享式局域网: 典型设备是集线器(Hub),该设备把一个端口 接收到的信号向所有其他端口发出去。 A 发送到B的信息可以被所有的机器接收

网络嗅探工具wireshark在网络安全中的应用

网络嗅探工具wireshark在网络安全中的应用

网络与信息安全课程设计网络嗅探工具wireshark在网络安全中的应用学生姓名:宋琪学号: 20134088130专业年级: 13级信息与计算科学指导教师:信息技术学院二〇一五年12月日网络嗅探wireshark工具应用摘要随着网络技术的发展和网络应用的普及,越来越多的信息资源放在了互联网上,网络的安全性和可靠性显得越发重要。

因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也越来越迫切。

网络嗅探器具有两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。

本文对网络嗅探技术进行简要分析,了解wireshark抓包软件的一部分功能,并用wireshark抓包软件来作为网络数据包的捕获工具,对相应的数据包进行捕获,并对所抓到数据包进行简要的分析。

关键词:网络嗅探器;数据包捕获;数据包分析;目录第一章引言 (4)1.1 网络安全的现状 (4)1.1.1 计算机网络安全的问题 (4)1.1.2 网络安全机制及技术措施 (4)1.2本课题的研究意义 (6)1.3本文研究的内容 (6)第二章网络嗅探器的基本原理 (7)2.1网络嗅探器概述 (7)2.2 嗅探器实现基础 (7)第三章数据包的捕获 (9)3.1 wireshark抓包软件的解析 (9)3.2 Wireshark嗅探器对ICMP协议数据包的捕获以及分析 (10)3.2.1 ICMP协议的原理 (10)3.2.2 利用网络嗅探工具开始捕获ICMP协议的数据包 (10)3.2.3 对所抓到的数据包的分析 (12)3.3 Wireshark嗅探器对DHCP协议数据包捕获及分析 (13)3.3.1 DHCP 协议的原理 (13)3.3.2利用Wireshark嗅探器抓捕DHCP协议的数据包并分析 (14)3.3.3 分析所抓到的数据包 (17)3.4用wireshark实现和分析三次握手 (24)3.5 FTP协议数据包的捕获 (26)3.5.1 FTP原理 (26)3.5.2实验准备 (26)3.5.3 FTP协议数据包的捕获 (30)总结 (32)参考文献 (32)第一章引言1.1 网络安全的现状1.1.1 计算机网络安全的问题随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。

嗅探与反嗅探——linsniffer和neped源代码分析

嗅探与反嗅探——linsniffer和neped源代码分析
— _
连 接 的 局 域 网 . 这 种 技 术 就 不 管 用 了 , 而 要 用 一 种 i 骗 的 技 术 。 本 文 要 研 究 的 l s i e 和 n p d是 针 p欺 i nf r n f ee 对前 一种情 况。 对于 i p欺 骗 . 在 后 继 的 文 章 中 会 有 所 分析 。 Lnnf r 一 种 工 作 在 l u is i e 是 f i x平 台 的 简 单 而 实 用 n 的 TCP嗅 探 器 . 它 使 网 卡 工 作 在 “混 杂 ” 模 式 下 . 截 获用于 建立连 接的 S YN 包 . 并 把 这 种 包 经 过 简 单 分 析 后 . 存 入 一 个 tp 1 g文 件 中 。 该 程 序 的 原 作 者 c .o
2 {
3 s p n n f” t 0 )/ =o e i t(e h ” ; 建 立 s c e . 设 置 “ t 0”为 混 okt eh
只 会 改 进 你 的 应 用 . 而 不 能 让 它 们 由 不 可 能 而 变 得 可 能。
对 于 中 间 件 和 厂 商 的 正 确 选 择 . 是 同 无 线 通 讯 领 域 紧 密 相 关 的 . 它 将 会 保 护 你 的 投 资 。 一 些 无 线 移 动 中间件 服 务器 允许你 开 发独 立于无 线 设备 的应 用 , 从 而 允 许 你 将 开 发 的 重 点 放 在 业 务 规 则 和 快 速
}vci it m;
其 中 . eh ra k t 据 结 构 用 来 描 述 一 个 完 整 的 tep c e 数 以 太 网 TCP包 ,v c i 用 来 保 存 从 TCP包 中 提 取 的 itm 包信息。
再 来 看其 主 函 数 :
1man it r c c a ag ) i( g . h r na r v

网络嗅探器

网络嗅探器

网络嗅探器网络嗅探器是一种通过监听互联网上的数据流量来提取有价值信息的软件工具。

它通常用于网络安全、网络监控、网络调试等应用场景。

在本文中,我们将介绍网络嗅探器的原理、工作方式、应用场景和安全风险。

一、网络嗅探器的原理网络嗅探器主要依赖于三个基本原理:ARP协议、IP协议和TCP协议。

ARP是地址解析协议,它将网络层的IP地址映射到数据链路层的MAC地址。

当数据帧从一台计算机去往另一台计算机时,它需要知道目标计算机的MAC地址。

ARP就是解决这个问题的协议。

IP协议是Internet协议的简称,它定义了互联网的地址规范和路由规则。

IP协议将数据分成若干个数据包(也称IP 包),每个包包含源IP地址、目标IP地址和数据。

当一个数据包到达路由器时,路由器会查找路由表,确定数据包应该向哪条路径发送。

TCP协议是传输控制协议的简称,它定义了可靠的、有序的、基于连接的数据传输。

TCP将数据分成若干个数据段(也称TCP段),每个段包含序号、确认号、数据和控制信息。

TCP会对数据的发送和接收进行可靠性检查,确保数据的完整性和顺序性。

基于以上三个原理,网络嗅探器可以捕获和解析网络数据包,提取其中的有用信息。

它可以截获数据包并提取其中的源IP地址、目标IP地址、源端口号、目标端口号、协议类型、数据内容等信息。

一般而言,网络嗅探器可以支持以下类型的协议:1. ARP协议2. IP协议3. ICMP协议4. TCP协议5. UDP协议6. HTTP协议7. FTP协议二、网络嗅探器的工作方式网络嗅探器通常有两种工作方式:混杂模式和非混杂模式。

混杂模式是一种特殊的工作模式,它允许网络嗅探器能够监听所有经过网络接口的数据包,不论它们是否是目标接口的地址。

非混杂模式是一种相对保守的工作模式,它只能监听目标接口的网络数据包。

因此,在非混杂模式下,网络嗅探器通常需要在网络接口上设置一个过滤器,以保证它只截获有用的数据包,从而提高效率。

Ettercap介绍网络嗅探,中间人攻击

Ettercap介绍网络嗅探,中间人攻击

Ettercap介绍⽹络嗅探,中间⼈攻击概要ettercap [ OPTIONS ] [ Target1 ] [ TARGET2 ]TARGET的格式为MAC / IP / IPv6 / PORT,其中IP和PORT可以是范围当IP有多个的时候,可以⽤“,”分隔不同的C段ip,可以⽤“-”表⽰连续的ip,可以⽤“;”分隔不同表达形式的ip。

(例如/192.168.0.1-30,40,50/20,22,25)描述Ettercap最初是交换局域⽹(甚⾄显然是“拥挤的”局域⽹)的嗅探器,但在开发过程中,它获得了越来越多的功能,从⽽使其转变为强⼤⽽灵活的中间⼈攻击⼯具。

它⽀持许多协议(甚⾄是加密协议)的主动和被动解剖,并包括许多⽤于⽹络和主机分析的功能(例如OS指纹)。

两个主要的嗅探选项:UNIFIED,此⽅法嗅探通过电缆传递的所有数据包。

您可以选择是否将接⼝置于混杂模式(-p选项)。

未定向到运⾏ettercap的主机的数据包将使⽤第3层路由⾃动转发。

因此,您可以使⽤从其他⼯具发起的mitm攻击,并让ettercap修改数据包并为您转发。

BRIDGED,它使⽤两个⽹络接⼝,并在执⾏嗅探和内容过滤时将流量从⼀个转发到另⼀个。

这种嗅探⽅法完全是秘密的,因为⽆法找到有⼈在电缆中间。

您可以将此⽅法视为第1层的mitm攻击。

您将位于两个实体之间的电缆中间。

不要在⽹关上使⽤它,否则它将把您的⽹关变成⽹桥。

提⽰:您可以使⽤内容过滤引擎丢弃不应通过的数据包。

这样,ettercap可以⽤作嵌⼊式IPS;)UBIFIED常⽤,参数 -M(M是MITM的⾸字母,为中间⼈攻击的缩写) BRIDGED在同⼀设备下的两块⽹卡之间进⾏路由转发功能在Ettercap中默认关闭内核ip_forwarding始终由ettercap禁⽤。

这样做是为了防⽌转发数据包两次(⼀次通过ettercap,⼀次通过内核)。

这是⽹关上的⼀种⼊侵⾏为。

因此,我们建议您仅在启⽤UNOFFENSIVE MODE的情况下在⽹关上使⽤ettercap。

tcpdump编译

tcpdump编译

tcpdump编译
TCPdump是一个基于命令行的网络数据嗅探器工具。

它可以拦截和分析传输在计算机网络上的数据包,并可用于网络故障排除、安全分析等。

在Linux系统中,我们可以使用源代码进行编译安装。

以下是TCPdump的编译步骤:
1. 下载TCPdump的源代码压缩包,可以从官方网站上下载。

2. 解压缩源代码:
```
$ tar xvf tcpdump-4.9.2.tar.gz
```
3. 进入源代码所在目录:
```
$ cd tcpdump-4.9.2
```
4. 运行configure脚本检查依赖关系:
```
$ ./configure
```
如果提示缺少依赖库,则需要先安装相应的依赖库。

5. 运行make命令进行编译:
```
$ make
```
6. 运行make install命令安装TCPdump:
```
$ sudo make install
```
至此,TCPdump的编译安装已完成。

我们可以通过命令行运行
TCPdump来嗅探网络数据包。

注意:在编译过程中,可能会出现各种错误。

针对不同的错误,需要根据具体的提示信息进行排查。

另外,在使用TCPdump进行网络嗅探时,应遵循相关法律法规和道德规范。

网络嗅探器的设计与实现

网络嗅探器的设计与实现

网络攻防技术实验报告嗅探器的设计与实现姓名:张梦学号:一、嗅探器的设计原理嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。

但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。

而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。

显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。

二、嗅探器的开发基础1、嗅探器的实现目标(1)实现网络嗅探器的界面。

(2)实现抓取数据包的功能。

(3)实现暂停抓取数据包功能。

(4)实现清空列表功能。

2、嗅探器的技术支持简介(1)TCP/IP协议分析TCP/IP 是供已连接因特网的计算机进行通信的通信协议。

TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。

TCP/IP是一个四层的分层体系结构。

高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。

这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。

低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。

网络上的网关计算机根据信息的地址来进行路由选择。

即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。

TCP/IP使用客户端/服务器模式进行通信。

TCP/IP 通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。

TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。

正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。

许多用户熟悉使用TCP/IP协议的高层应用协议。

开发基于winPcap的嗅探器

开发基于winPcap的嗅探器

网络安全课程设计报告(2015-2016 第一学期)题目开发基于winPcap的嗅探器专业学号姓名指导教师日期评分分细评分项优秀良好中等差遵守机房规章制度实验原理分析与设计课题功能实现情况设计验收与答辩课程设计报告书写简短评语教师签名:年月日评分等级备注开发基于winPcap的嗅探器一、实验目的开发一个winpcap的嗅探器,用它来捕获所有流经网卡的数据包,并进行分析。

二、实验环境操作系统:Windows 2000/XP编程环境:Visual c++6.0附加库:Winpcap三、实验内容和要求内容:所开发的程序可以输出本机所有网卡的信息和捕获流经网卡的数据包并能够过滤出IP、TCP、UDP、ICM P等数据包要求:掌握基于WinPcap的网络编程模式。

理解并能应用WinPcap设计并实现网络数据包的捕获与解析。

四、实验原理和步骤原理:我们所要做的嗅探器是一种常用的网络数据收集软件,它是在广播式网络环境下利用计算机网络接口截获目的地为其它计算机的数据报文的一种工具。

在以太网中,信息是以明文的形式在网络上传输 ,当将网络适配器设置为混杂模式时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。

IEEE802.3标准的以太网采用的是持续CSMA的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。

运用这一原理使信息捕获系统能够拦截我们所要的信息,这是捕获数据包的物理基础。

首先,抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包,这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。

这个部分是系统依赖的,在Winpcap的解决方案里它被认为是一个设备驱动,称作NPF(Netgroup PacketFilter)。

Winpcap提供了两个不同的库:Packet.dll和Wpcap.dll。

网络嗅探器的实现

网络嗅探器的实现

- - -.网络嗅探器的设计与实现Design and implementation of network sniffer摘要网络嗅探器无论是在网络平安还是在黑客攻击方面均扮演了很重要的角色。

通过使用网络嗅探器可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析。

此分析结果可供网络平安分析之用,但如为黑客所利用也可以为其发动进一步的攻击提供有价值的信息。

可见,嗅探器实际是一把双刃剑。

虽然网络嗅探器技术被黑客利用后会对网络平安构成一定的威胁,但嗅探器本身的危害并不是很大,主要是用来为其他黑客软件提供网络情报,真正的攻击主要是由其他黑软来完成的。

而在网络平安方面,网络嗅探手段可以有效地探测在网络上传输的数据包信息,通过对这些信息的分析利用是有助于网络平安维护的。

本设计是网络嗅探器的设计与实现,介绍一种在Visual C++下用C语言和网络数据包分析开发工具来实现捕获并分析在网络上传输的数据包的简单方法。

本程序实现的根本功能:指定局域网内的任一ip地址,能分析包的类型,构造,流量的大小。

附加功能:输出目的ip地址,目的端口,udp数据地址,ip头部长度,udp头部长度,数据包大小。

关键词:网络嗅探器数据包捕获分析网络协议WinPcap编程接口多线程目录摘要1关键词11 网络嗅探概述41.1 网络嗅探的背景41.2 相关的网络知识51.3 嗅探器设计原理51.4 嗅探器的具体实现92 附录〔源代码〕13小结16参考资料16网络嗅探概述1.1 网络嗅探的背景网络嗅探是指利用计算机的网络接口截获目的地为其它计算机的数据报文的一种手段。

网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。

嗅探器也是很多程序人员在编写网络程序时抓包测试的工具,因为我们知道网络程序都是以数据包的形式在网络中进展传输的,因此难免有协议头定义不对的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <winsock2.h> /*windows socket的头文件,系统定义的*/ #include <windows.h>#include <ws2tcpip.h>#include <stdio.h>#include <stdlib.h>#pragma comment(lib,"ws2_32.lib") /*链接API相关连的Ws2_32.lib静态库*/#define MAX_HOSTNAME_LAN 255#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)#define MAX_ADDR_LEN 16struct ipheader {unsigned char ip_hl:4; /*header length(报头长度)*/unsigned char ip_v:4; /*version(版本)*/unsigned char ip_tos; /*type os service服务类型*/unsigned short int ip_len; /*total length (总长度)*/unsigned short int ip_id; /*identification (标识符)*/unsigned short int ip_off; /*fragment offset field(段移位域)*/unsigned char ip_ttl; /*time to live (生存时间)*/unsigned char ip_p; /*protocol(协议)*/unsigned short int ip_sum; /*checksum(校验和)*/unsigned int ip_src; /*source address(源地址)*/unsigned int ip_dst; /*destination address(目的地址)*/}; /* total ip header length: 20 bytes (=160 bits) */typedef struct tcpheader {unsigned short int sport; /*source port (源端口号)*/unsigned short int dport; /*destination port(目的端口号)*/unsigned int th_seq; /*sequence number(包的序列号)*/unsigned int th_ack; /*acknowledgement number(确认应答号)*/ unsigned char th_x:4; /*unused(未使用)*/unsigned char th_off:4; /*data offset(数据偏移量)*/unsigned char Flags; /*标志全*/unsigned short int th_win; /*windows(窗口)*/unsigned short int th_sum; /*checksum(校验和)*/unsigned short int th_urp; /*urgent pointer(紧急指针)*/}TCP_HDR;typedef struct udphdr {unsigned short sport; /*source port(源端口号)*/unsigned short dport; /*destination port(目的端口号)*/unsigned short len; /*udp length(udp长度)*/unsigned short cksum; /*udp checksum(udp校验和)*/}UDP_HDR;void main(){SOCKET sock;WSADATA wsd;DWORD dwBytesRet;unsigned int optval = 1;unsigned char *dataudp,*datatcp;int i,pCount=0,lentcp, lenudp;SOCKADDR_IN sa,saSource, saDest;struct hostent FAR * pHostent;char FAR name[MAX_HOSTNAME_LAN];char szSourceIP[MAX_ADDR_LEN], szDestIP[MAX_ADDR_LEN],RecvBuf[65535] = {0};struct udphdr *pUdpheader;struct ipheader *pIpheader;struct tcpheader *pTcpheader;WSAStartup(MAKEWORD(2,1),&wsd);if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP))==SOCKET_ERROR) exit(1);gethostname(name, MAX_HOSTNAME_LAN);pHostent = gethostbyname(name);sa.sin_family = AF_INET;sa.sin_port = htons(6000);memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);bind(sock, (SOCKADDR *)&sa, sizeof(sa)); /*bind()设定自己主机的IP地址和端口号*/if ((WSAGetLastError())==10013)exit(1);WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);pIpheader = (struct ipheader *)RecvBuf;pTcpheader = (struct tcpheader *)(RecvBuf+ sizeof(struct ipheader ));pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ));while (1){memset(RecvBuf, 0, sizeof(RecvBuf));recv(sock, RecvBuf, sizeof(RecvBuf), 0);saSource.sin_addr.s_addr = pIpheader->ip_src;strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);saDest.sin_addr.s_addr = pIpheader->ip_dst;strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MAX_ADDR_LEN);lentcp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct tcpheader)));lenudp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr)));if((pIpheader->ip_p)==IPPROTO_TCP&&lentcp!=0){printf("*******************************************\n");pCount++;datatcp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct tcpheader);printf("-TCP-\n");printf("\n目的IP地址:%s\n",szDestIP);printf("\n目的端口:%i\n",ntohs(pTcpheader->dport));printf("datatcp address->%x\n",datatcp);printf("size of ipheader->%i\n",sizeof(struct ipheader));printf("size of tcpheader->%i\n",sizeof(struct tcpheader));printf("size of the hole packet->%i\n",ntohs(pIpheader->ip_len));printf("\nchar Packet%i [%i]=\"",pCount,lentcp-1);for (i=0;i<lentcp;i++){printf("\\x%.2x",*(datatcp+i));if (i%10==0)printf("\"\n\"");}printf("\";\n\n\n");for (i=0;i<lentcp;i++){if( *(datatcp+i)<=127&&*(datatcp+i)>=20)printf("%c",*(datatcp+i));elseprintf(".");}printf("\n\n*******************************************\n");}if((pIpheader->ip_p)==IPPROTO_UDP&&lentcp!=0){pCount++;dataudp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr);printf("-UDP-\n");printf("\n目的IP地址:%s\n",szDestIP);printf("\n目的端口:%d\n",ntohs(pTcpheader->dport));printf("UDP数据地址:%x\n",dataudp);printf("IP头部长度:%i\n",sizeof(struct ipheader));printf("UDP头部长度:%i\n",sizeof(struct udphdr));printf("包的大小:%i\n",ntohs(pIpheader->ip_len));printf("\nchar Packet%i [%i]=\"",pCount,lenudp-1);for (i=0;i<lenudp;i++){printf("\\x%.2x",*(dataudp+i));if (i%10==0)printf("\"\n\"");}printf("\";\n\n\n");for (i=0;i<lenudp;i++){if( *(dataudp+i)<=127&&*(dataudp+i)>=20)printf("%c",*(dataudp+i));elseprintf(".");}printf("\n\n*******************************************\n");}}}。

相关文档
最新文档