封包分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Sequence Number (32)
Acknowledgment Number (32)
Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)
Checksum (16) | Urgent Pointer (16)
WPE来分析封包.
一个封包,包含有如下元素,也就是组成部分吧!
1.需要传输的数据(主要的和最重要的部分就是这个,外挂修改的也是这部分)
2.序列号(每个封包必须有自己的序列号,以便到了接收端后可以按照序列号重新组装)
3.IP地址,一般都有这一部分,通过网络解析才知道封包从那里来,到那里去!
当然封包的内容不止这些,但是,我们了解这些就够了。
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
------------------------------------------------------
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
Internet Header Length
标头长度(IHL)。我们从IP封包规格中看到前面的6列为header如果Options和Padding没有设定的话也就只有5列的长度所以这里的长度为“5”我们知道每列有32bit也就是4byte那么5列就是20byte了20这个数值换成16进位就成了0x14所以当封包标头长度为最短的时候这里数值最终会被换算为 0x14 。 让我们看看我们撷取的ICMP封包其中属于IP部份的开头 在这里我们看到的数值是“45”前面的“4”就是版本号数而后面的“5”则是标头长度。 Type of Service
另外的一种意义:
在中国的大部分农村地区传承着农历七月十四鬼节这样的一种说法。
在这个节日里面,人民都要举行隆重的祭祀仪式。以起到怀念祖先,为祖先销灾积福的作用。最为重要的就是,人们在这一天要火化很多的封包(由草纸折叠而成),据说是为了死去的人在阴间有钱用。封包也就是阴间的一种货币单位了。
从上图我们看到的十六进位数值是“003C”换成十进位就是“60”了。 Identification
识别码(ID)。每一个IP封包都有一个16bit的唯一识别码。我们从OSI的网路层级知识里面知道当程式产生的数据要通过网路传送时都会被拆散成封包形式发送当封包要进行重组的时候这个ID就是依据了。
从上图我们可以看到此封包的ID为40973 (将 a00d 换成十进制就知道了)。 Flag
标记(FL)。这是当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。请参考下表 000. 当此值为0的时候表示目前未被使用。
.0.. 当此值为0的时候表示封包可以被分割如果为1则不能被分割。
服务类型(TOS)。这里指的是IP封包在传送过程中要求的服务类型其中一共由8个bit组成其中每个bit的组合分别代表不同的意思 000..... Routine 设定IP顺序预设为0否则数值越高越优先
...0.... Delay 延迟要求0是正常值1为低要求
....0... Throughput 通讯量要求0为正常值1为高要求
Options (Variable) Padding (0-24) Data
.... 在上图中括号之内的数字就是各部件的长度(bit)如果您够细心就会计算得出每一列的总长度都是32bit。下面我们分别对各部件名称解释一下 Version
版本(VER)。表示的是IP规格版本目前的IP规格多为版本4(version 4)所以这里的数值通常为 0x4 (注意封包使用的数字通常都是十六进位的)。
上图中我们看到的数值可不是 20 哦因为这是个十六进位数字要换成十进位才知道 TTL 原来是 32 个跳站。 Protocol
协定(PROT)。这里指的是该封包所使用的网路协定类型例如ICMPDNS等。要注意的是这里使用的协定是网路层的协定这和上层的程式协定(如FTPPOP等)是不同的。您可以从Linux的/etc/protocol这个档案中找到这些协定和其代号此档案也存放于NT的\winnt\system32\drivers\etc目录里面。其内容如下
在后来越来越多的人们开始火化印刷的阴间货币(这不同于封包,但是其意义仍然与封包一致),和纸做的汽车,沙发,椅子,电视,电脑…………
IP封包分析从一直以来讨论至今我们都不断地接触到“封包”这个词相信您也很有兴趣想知道这个“封包”究竟是个什么样的东东吧下面就让我们一起看看一个IP封包究竟包含了那些内容。 撷取IP封包 如果您的机器上面装有 netxray 等封包撷取软体或使用NT的“网路监视器”我们就可以撷取那些进出本机的封包了。 当我们打开撷取功能之后然后使用ping命令随便ping一个地址如。我们可以撷取到如下这些封包
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
rspf 73 RSPF #Radio Shortest Path First.
..0. 当上一个值为0中我们看到这个封包的标记为“0”也就是目前并未使用。
Fragment Offset
分割定位(FO)。当封包被切开之后由于网路情况或其它因素影响其抵达顺序并不会和当初切割顺序一至的。所以当封包进行切割的时候会为各片段做好定位记录所以在重组的时候就能够依号入座了。 因为我们刚才撷取到的封包并没有被切割所以暂时找不到例子参考在上例中我们看到的FO为“0”。
其实我们真正撷取到的封包内容应该是红圈的围在上面和右边的栏目里面的资料是经过程式整理出来的结果。在第一行里面我们看到“00 80 c7 47 8c 9a 48 54 e8 27 75 77”这串数字所代表的分别是目的地和来源地的MAC地址然后“08 00”代表的是一个Ethernet II的IP协定类型。Ethernet II可以说是IEEE802.3的改进版本。(还记得“网路概论”里面关于“逻辑形态”的叙述么)。这里可以说是Datalink网路层所要追踪的资料。 然后接下来的是属于IP封包的内容
Time To Live
延续时间(TTL)。这个TTL我们在许多网路设定上都会碰到当一个物件被赋予TTL值(以秒为单位)之后就会进行计时如果物件在到达TTL值的时候还没被处理的话就会被遗弃。 不过并不是所有的 TTL 都以时间为单位例如 ICMP 协定的 TTL则以封包路由过程中的跳站数目(Hop Count)做单位。TTL 值每经过一个跳站(或被一个 router 处理)之后就会被减低一个数值 。这样当封包在传递过程中由于某些原因而未能抵达目的地的时候就可以避免其一直充斥在网路上面。
Options (0 or more 32 bit words + padding)
DATA
...
稍微注意以下,您可以看到,每行的长度都是32字节!
大家看到了吗?data就是数据,那是最关键的部分,我们使用WPE修改的就是那一部分!
封包 封包
英文名称:Packet
数据要在通讯系统中必须要先经过某些处理,才能在网络当中传递,例如将数据切割为数个区块之后,才能在网络上依照某种通讯协议来传送,这种过程就好像将包裹打包一样,称为分封。
Identification (16) Flags (3) Fragment Offset (13)
Time To Live (8) Protocol (8) Header checksum (16)
Source Address (32)
Destination Address (32)
注意:在传输中,所有数据都是16位或者32位的,所以截获的封包看起来总是怪怪的!
面给一个封包的基本格式,给大家看看(下面是基本封包格式,如果您可以背下来他们的格式,这对您修改游戏是非常有用的!强烈建议您看一些关于封包格式的文章,您就可以很容易地把封包看清楚,很快知道哪个才是真正的数据):
Source Port (16) | Destination Port (16)
hmp 20 HMP # host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # “reliable datagram” protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
.....0.. Reliability 可靠性要求0为正常值1为高要求
......00 Not Used 未使用
在下例中我们可以看到TOS的值为0也就是全部设置为正常值
Total Length
封包总长(TL)。通常以byte做单位来表示该封包的总长度此数值包括标头和数据的总和。
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP')
st 5 ST # ST datagram mode
vmtp 81 VMTP # Versatile Message Transport
ospf 89 OSPFIGP # Open Shortest Path First IGP
ipip 94 IPIP # Yet Another IP encapsulation
encap 98 ENCAP # Yet Another IP encapsulation
请先记着上图的内容我打算在下一节里面在详细讨论每一行的意思。 IP封包格式 首先让我们看看IP封包的格式是怎样的和其组成部份以及各部份的长度如何 Version (4) Internet Header Length (4) Type of Service (8) Total Length (16)
------------------------------------------------------ 在我们这个例子中可以看得出PROT的号码为“01”对照/etc/protocol档案我们可以知道这是一个ICMP协定。 Header Checksum
正如我们所见到的我们撷取到DNS和ICMP的封包了因为需要到DNS解释而ping是一个ICMP协定。您或许知道ICMP封包的type为“Echo Request”和“Echo Reply”分别代表什么意思吧 让我们再深入一点看看DNS封包里面有些什么东东
如果您往上卷回有关“DNS”的文章看看我们用 nslookup 的 debug 模式查找 www.hinet.ne t这个网址时候引一下那里的内容您就知道这个封包说些什么了。 下面让我们再看看ICMP封包里面的内容
Acknowledgment Number (32)
Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)
Checksum (16) | Urgent Pointer (16)
WPE来分析封包.
一个封包,包含有如下元素,也就是组成部分吧!
1.需要传输的数据(主要的和最重要的部分就是这个,外挂修改的也是这部分)
2.序列号(每个封包必须有自己的序列号,以便到了接收端后可以按照序列号重新组装)
3.IP地址,一般都有这一部分,通过网络解析才知道封包从那里来,到那里去!
当然封包的内容不止这些,但是,我们了解这些就够了。
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
------------------------------------------------------
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
Internet Header Length
标头长度(IHL)。我们从IP封包规格中看到前面的6列为header如果Options和Padding没有设定的话也就只有5列的长度所以这里的长度为“5”我们知道每列有32bit也就是4byte那么5列就是20byte了20这个数值换成16进位就成了0x14所以当封包标头长度为最短的时候这里数值最终会被换算为 0x14 。 让我们看看我们撷取的ICMP封包其中属于IP部份的开头 在这里我们看到的数值是“45”前面的“4”就是版本号数而后面的“5”则是标头长度。 Type of Service
另外的一种意义:
在中国的大部分农村地区传承着农历七月十四鬼节这样的一种说法。
在这个节日里面,人民都要举行隆重的祭祀仪式。以起到怀念祖先,为祖先销灾积福的作用。最为重要的就是,人们在这一天要火化很多的封包(由草纸折叠而成),据说是为了死去的人在阴间有钱用。封包也就是阴间的一种货币单位了。
从上图我们看到的十六进位数值是“003C”换成十进位就是“60”了。 Identification
识别码(ID)。每一个IP封包都有一个16bit的唯一识别码。我们从OSI的网路层级知识里面知道当程式产生的数据要通过网路传送时都会被拆散成封包形式发送当封包要进行重组的时候这个ID就是依据了。
从上图我们可以看到此封包的ID为40973 (将 a00d 换成十进制就知道了)。 Flag
标记(FL)。这是当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。请参考下表 000. 当此值为0的时候表示目前未被使用。
.0.. 当此值为0的时候表示封包可以被分割如果为1则不能被分割。
服务类型(TOS)。这里指的是IP封包在传送过程中要求的服务类型其中一共由8个bit组成其中每个bit的组合分别代表不同的意思 000..... Routine 设定IP顺序预设为0否则数值越高越优先
...0.... Delay 延迟要求0是正常值1为低要求
....0... Throughput 通讯量要求0为正常值1为高要求
Options (Variable) Padding (0-24) Data
.... 在上图中括号之内的数字就是各部件的长度(bit)如果您够细心就会计算得出每一列的总长度都是32bit。下面我们分别对各部件名称解释一下 Version
版本(VER)。表示的是IP规格版本目前的IP规格多为版本4(version 4)所以这里的数值通常为 0x4 (注意封包使用的数字通常都是十六进位的)。
上图中我们看到的数值可不是 20 哦因为这是个十六进位数字要换成十进位才知道 TTL 原来是 32 个跳站。 Protocol
协定(PROT)。这里指的是该封包所使用的网路协定类型例如ICMPDNS等。要注意的是这里使用的协定是网路层的协定这和上层的程式协定(如FTPPOP等)是不同的。您可以从Linux的/etc/protocol这个档案中找到这些协定和其代号此档案也存放于NT的\winnt\system32\drivers\etc目录里面。其内容如下
在后来越来越多的人们开始火化印刷的阴间货币(这不同于封包,但是其意义仍然与封包一致),和纸做的汽车,沙发,椅子,电视,电脑…………
IP封包分析从一直以来讨论至今我们都不断地接触到“封包”这个词相信您也很有兴趣想知道这个“封包”究竟是个什么样的东东吧下面就让我们一起看看一个IP封包究竟包含了那些内容。 撷取IP封包 如果您的机器上面装有 netxray 等封包撷取软体或使用NT的“网路监视器”我们就可以撷取那些进出本机的封包了。 当我们打开撷取功能之后然后使用ping命令随便ping一个地址如。我们可以撷取到如下这些封包
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
rspf 73 RSPF #Radio Shortest Path First.
..0. 当上一个值为0中我们看到这个封包的标记为“0”也就是目前并未使用。
Fragment Offset
分割定位(FO)。当封包被切开之后由于网路情况或其它因素影响其抵达顺序并不会和当初切割顺序一至的。所以当封包进行切割的时候会为各片段做好定位记录所以在重组的时候就能够依号入座了。 因为我们刚才撷取到的封包并没有被切割所以暂时找不到例子参考在上例中我们看到的FO为“0”。
其实我们真正撷取到的封包内容应该是红圈的围在上面和右边的栏目里面的资料是经过程式整理出来的结果。在第一行里面我们看到“00 80 c7 47 8c 9a 48 54 e8 27 75 77”这串数字所代表的分别是目的地和来源地的MAC地址然后“08 00”代表的是一个Ethernet II的IP协定类型。Ethernet II可以说是IEEE802.3的改进版本。(还记得“网路概论”里面关于“逻辑形态”的叙述么)。这里可以说是Datalink网路层所要追踪的资料。 然后接下来的是属于IP封包的内容
Time To Live
延续时间(TTL)。这个TTL我们在许多网路设定上都会碰到当一个物件被赋予TTL值(以秒为单位)之后就会进行计时如果物件在到达TTL值的时候还没被处理的话就会被遗弃。 不过并不是所有的 TTL 都以时间为单位例如 ICMP 协定的 TTL则以封包路由过程中的跳站数目(Hop Count)做单位。TTL 值每经过一个跳站(或被一个 router 处理)之后就会被减低一个数值 。这样当封包在传递过程中由于某些原因而未能抵达目的地的时候就可以避免其一直充斥在网路上面。
Options (0 or more 32 bit words + padding)
DATA
...
稍微注意以下,您可以看到,每行的长度都是32字节!
大家看到了吗?data就是数据,那是最关键的部分,我们使用WPE修改的就是那一部分!
封包 封包
英文名称:Packet
数据要在通讯系统中必须要先经过某些处理,才能在网络当中传递,例如将数据切割为数个区块之后,才能在网络上依照某种通讯协议来传送,这种过程就好像将包裹打包一样,称为分封。
Identification (16) Flags (3) Fragment Offset (13)
Time To Live (8) Protocol (8) Header checksum (16)
Source Address (32)
Destination Address (32)
注意:在传输中,所有数据都是16位或者32位的,所以截获的封包看起来总是怪怪的!
面给一个封包的基本格式,给大家看看(下面是基本封包格式,如果您可以背下来他们的格式,这对您修改游戏是非常有用的!强烈建议您看一些关于封包格式的文章,您就可以很容易地把封包看清楚,很快知道哪个才是真正的数据):
Source Port (16) | Destination Port (16)
hmp 20 HMP # host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # “reliable datagram” protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
.....0.. Reliability 可靠性要求0为正常值1为高要求
......00 Not Used 未使用
在下例中我们可以看到TOS的值为0也就是全部设置为正常值
Total Length
封包总长(TL)。通常以byte做单位来表示该封包的总长度此数值包括标头和数据的总和。
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP')
st 5 ST # ST datagram mode
vmtp 81 VMTP # Versatile Message Transport
ospf 89 OSPFIGP # Open Shortest Path First IGP
ipip 94 IPIP # Yet Another IP encapsulation
encap 98 ENCAP # Yet Another IP encapsulation
请先记着上图的内容我打算在下一节里面在详细讨论每一行的意思。 IP封包格式 首先让我们看看IP封包的格式是怎样的和其组成部份以及各部份的长度如何 Version (4) Internet Header Length (4) Type of Service (8) Total Length (16)
------------------------------------------------------ 在我们这个例子中可以看得出PROT的号码为“01”对照/etc/protocol档案我们可以知道这是一个ICMP协定。 Header Checksum
正如我们所见到的我们撷取到DNS和ICMP的封包了因为需要到DNS解释而ping是一个ICMP协定。您或许知道ICMP封包的type为“Echo Request”和“Echo Reply”分别代表什么意思吧 让我们再深入一点看看DNS封包里面有些什么东东
如果您往上卷回有关“DNS”的文章看看我们用 nslookup 的 debug 模式查找 www.hinet.ne t这个网址时候引一下那里的内容您就知道这个封包说些什么了。 下面让我们再看看ICMP封包里面的内容