socket,UDP傳送ARP包 c 實現

2021-06-21 07:12:03 字數 1232 閱讀 1239

內容可能和網上很多大神寫的類似,我也沒有什麼創新的地方,全當寫日記了,學了網路程式設計和計算機系統之後,覺得對ip資料報有了些了解,所以想嘗試一下能不能寫出區域網arp攻擊工具出來.以下是思路1.先了解arp攻擊 的原理,

攻擊物件是我舍友,我想要讓他不能正常上網,所以給他傳送arp閘道器欺騙包,告訴閘道器的mac在2b-2b-2b-2b-2b-2b那裡(肯定是不存在的啦),

他上網的時候由於找不到正確的閘道器,所以就上不了網

2.偽造資料報

資料報結構如上

所以就按圖填充,

u_char buf=;//填充,讓資料報達到60位元組+自動crc4位元組

資料報的意思大概是:告訴目的mac使用者(我舍友),ip為115.155.60.254(閘道器)那個傢伙的mac在2b-2b-2b-2b-2b-2b那裡,下次上網記得找ta哦 

3.了解怎麼傳送

當然使用socket傳送,一般的socket是工作在傳輸層的,此時無論你怎麼填充資料,最後資料都會跑到資料報的data裡面去;

4.關鍵**

char* name;                                //網絡卡名字

char errbuf[pcap_errbuf_size];

pcap_t *fp=null;                     //網絡卡物件

pcap_if_t *alldevs;

pcap_findalldevs(&alldevs,errbuf);

name=alldevs->next->name;            //乙太網網絡卡名字,我電腦這裡第乙個是無線網絡卡,第二個是乙太網,所以name選了第二個

fp=pcap_open(name,100,pcap_openflag_promiscuous,1000,null,errbuf); //開啟網絡卡

pcap_sendpacket(fp, buf, sizeof(buf));//傳送

pcap_freealldevs(alldevs); //及時釋放

pcap_close(fp); //關閉網絡卡

實在是不會用**功能,弄了半個小時了,排版就是排不好,不弄了,就這樣吧

結果圖:

socket udp傳送資料和接受資料

用 python3 傳送的資料必須是 bytes 二進位制 型別 import socket 匯入 socket defmain 建立乙個udp套接字 udp socket socket.socket socket.af inet,socket.sock dgram 從鍵盤獲取資料 send dat...

socket UDP廣播的傳送和接收示例

如果網路中兩個主機上的應用程式要相互通訊,其一要知道彼此的ip,其二要知道程式可監聽的埠。因為同一主機上的程式使用網路是通過埠號來區分的。1.初始化網路庫 2.建立sock dgram型別的socket。3.繫結套接字。4.傳送 接收資料。5.銷毀套接字。6.釋放網路庫。專門用於同時向網路中所有工作...

c 通過傳送arp包獲取ip等資訊

利用dns類和wmi規範獲取ip及mac位址 在c 程式設計中,要獲取主機名和主機ip位址,是比較容易的.它提供的dns類,可以輕鬆的取得主機名和ip位址.示例 string strhostname dns.gethostname 得到本機的主機名 iphostentry ipentry dns.g...