日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手教你玩转ARP包(一)

發布時間:2024/4/11 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你玩转ARP包(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://blog.csdn.net/piggyxp/article/details/19606

???

?????????首先要感謝網絡安全資深專家盧湖川博士以及VC網絡版的limin朋友提供的資料以及幫助^_^

經常看到論壇有人問起關于數據包的截獲、分析等問題,幸好本人也對此略有所知,所以就想寫一系列的文章來詳細深入的探討關于數據包的知識,,我希望通過這一系列的文章,能使得關于數據包的知識得以普及,所以這系列的每一篇文章我都會有由淺入深的解釋、詳細的分析、以及編碼步驟,另外附上帶有詳細注釋的源碼(為了照顧大多數朋友,我提供的都是MFC的源碼)

不過由于也是初學者,疏漏之處還望不吝指正。

本文凝聚著筆者心血,如要轉載,請指明原作者及出處,謝謝!^_^

?

OK,. Let’s go !??Have fun! q^_^p

?

第一篇?????????手把手教你玩轉ARP

?? 目錄:

??? 一.????關于ARP協議的基礎知識

???? 1.????????ARP的工作原理

???? 2.????????ARP包的格式

作者:

????CSDN??VC/MFC?網絡編程?PiggyXP??^_^

?

一.?????????????關于ARP協議的基礎知識

1ARP的工作原理

本來我不想在此重復那些遍地都是的關于ARP的基本常識,但是為了保持文章的完整性以及照顧初學者,我就再啰嗦一些文字吧,資深讀者可以直接跳過此節。

?

我們都知道以太網設備比如網卡都有自己全球唯一的MAC地址,它們是以MAC地址來傳輸以太網數據包的,但是它們卻識別不了我們IP包中的IP地址,所以我們在以太網中進行IP通信的時候就需要一個協議來建立IP地址與MAC地址的對應關系,以使IP數據包能發到一個確定的地方去。這就是ARP(Address Resolution Protocol,地址解析協議)。

?

講到此處,我們可以在命令行窗口中,輸入

???? arp –a

來看一下效果,類似于這樣的條目

210.118.45.100????00-0b-5f-e6-c5-d7????dynamic

就是我們電腦里存儲的關于IP地址與MAC地址的對應關系,dynamic表示是臨時存儲在ARP緩存中的條目,過一段時間就會超時被刪除(xp/2003系統是2分鐘)。

?

這樣一來,比如我們的電腦要和一臺機器比如210.118.45.1通信的時候,它會首先去檢查arp緩存,查找是否有對應的arp條目,如果沒有,它就會給這個以太網絡發ARP請求包廣播詢問210.118.45.1的對應MAC地址,當然,網絡中每臺電腦都會收到這個請求包,但是它們發現210.118.45.1并非自己,就不會做出相應,而210.118.45.1就會給我們的電腦回復一個ARP應答包,告訴我們它的MAC地址是xx-xx-xx-xx-xx-xx,于是我們電腦的ARP緩存就會相應刷新,多了這么一條:

210.118.45.1???xx-xx-xx-xx-xx-xx???dynamic

?

為什么要有這么一個ARP緩存呢,試想一下如果沒有緩存,我們每發一個IP包都要發個廣播查詢地址,豈不是又浪費帶寬又浪費資源?

?????而且我們的網絡設備是無法識別ARP包的真偽的,如果我們按照ARP的格式來發送數據包,只要信息有效計算機就會根據包中的內容做相應的反應.

?

試想一下,如果我們按照ARP響應包的相應的內容來刷新自己的ARP緩存中的列表,嘿嘿,那我們豈不是可以根據這點在沒有安全防范的網絡中玩些ARP包的小把戲了?在后面的文章里我就手把手來教你們如何填充發送ARP包,不過先別急,我們再繼續學點基礎知識^_^

?

2.ARP包的格式

?

?????既然我們要來做一個我們自己的ARP包,當然首先要學習一下ARP包的格式。

?

?????從網絡底層看來,一個ARP包是分為兩個部分的,前面一個是物理幀頭,后面一個才是ARP幀

?????????首先,物理幀頭,它將存在于任何一個協議數據包的前面,我們稱之為DLC Header,因為這個幀頭是在數據鏈路層構造的,并且其主要內容為收發雙方的物理地址,以便硬件設備識別。?

DLC Header

字段

長度(Byte)

默認值

備注

接收方MAC

6

?

廣播時,為?ff-ff-ff-ff-ff-ff

發送方MAC

6

?

?

Ethertype

2

0x0806

0x0806是ARP幀的類型值

???????????????????????????圖1?物理幀頭格式

?

?????圖1是需要我們填充的物理幀頭的格式,我們可以看到需要我們填充的僅僅是發送端和接收端的物理地址罷了,是不是很簡單呢?

??????接下來我們看一下ARP幀的格式.?

ARP Frame

字段

長度(Byte)

默認值

備注

硬件類型

2

0x1

以太網類型值

上層協議類型

2

0x0800

上層協議為IP協議

MAC地址長度

1

0x6

以太網MAC地址長度為?6

IP地址長度

1

0x4

IP地址長度為?4

操作碼

2

?

0x1表示ARP請求包,0x2表示應答包

發送方MAC

6

?

?

發送方IP

4

?

?

接收方MAC

6

?

?

接收方IP

4

?

?

填充數據

18

?

因為物理幀最小長度為64字節,前面的42字節再加上4個CRC校驗字節,還差18個字節

?????????????????????????????圖2 ARP幀格式

?

我們可以看到需要我們填充的同樣也只是MAC,IP,再加上一個1或2的操作碼而已。

???? ..................

?

??? =======================================================================?

暈,本來想一口氣發完,沒想到這么點字就到了64k限額了,不知道是不是彩色字和表格的關系,沒辦法,只好把文章掰成四、五瓣來發了-_-b,下次再說吧

?

請期待下文 : )

?

????????????????????????????????????????????????????????????????????????????????????????????????-------??? Finished at? 2004-05-29 19:41

??????????????????????????????????????????????????????????????????????????????????????????????? -------??? Made In???? DLUT | DIP

總結

以上是生活随笔為你收集整理的手把手教你玩转ARP包(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。