網路嗅探器

2021-09-08 07:40:30 字數 2809 閱讀 7305

網路嗅探器:把網絡卡設定成混雜模式,並可實現對網路上傳輸的資料報的捕獲與分析。

原理:

通常的套接字程式只能響應與自己mac位址相匹配的 或者是 廣播形式發出的資料幀,對於其他形式的資料幀網路介面採取的動作是直接丟棄

為了使網絡卡接收所有經過他的封包,要將其設定成混雜模式,通過原始套接字來實現。

設定混雜模式:

建立原始套接字,

繫結到乙個明確的本地位址,

向套接字傳送sio_rcvall控制命令,

接收所有的ip包

**實現步驟:

1 建立原始套接字

2 繫結到明確位址

3 這是sio_rcvall控制**

4 進入迴圈,呼叫recv函式接收經過本地網絡卡的ip封包。

主程式**如下

void

main()

}closesocket(sraw);

}

程式接收到ip封包後,呼叫自定義的decodeippacket進行解包。取出封包中的協議頭,向使用者列印出協議資訊。

解析ip頭**

void decodeippacket(char *pdata)

}

解析tcp頭**如下:取出埠號,輸出

void decodetcppacket(char *pdata)

}

vs下完整**:

initsock.h:

#include #pragma comment(lib, "ws2_32")    //

鏈結到ws2_32.lib

class

cinitsock

}~cinitsock()

};

protoinfo.h:

////

protoinfo.**件

/*定義協議格式

定義協議中使用的巨集 */

#ifndef __protoinfo_h__

#define __protoinfo_h__

#define ethertype_ip 0x0800

#define ethertype_arp 0x0806typedef

struct _etheader //

14位元組的以太頭

etheader, *petheader;

#define arphrd_ether 1

//arp協議opcodes

#define arpop_request 1 //

arp 請求

#define arpop_reply 2 //

arp 響應

typedef

struct _arpheader //

28位元組的arp頭

arpheader, *parpheader;

//協議

#define proto_icmp 1

#define proto_igmp 2

#define proto_tcp 6

#define proto_udp 17typedef

struct _ipheader //

20位元組的ip頭

ipheader, *pipheader;

//定義tcp標誌

#define tcp_fin 0x01

#define tcp_syn 0x02

#define tcp_rst 0x04

#define tcp_psh 0x08

#define tcp_ack 0x10

#define tcp_urg 0x20

#define tcp_ace 0x40

#define tcp_cwr 0x80typedef

struct _tcpheader //

20位元組的tcp頭

tcpheader, *ptcpheader;

typedef

struct

_udpheader

udpheader, *pudpheader;

#endif

//__protoinfo_h__

#include "

../common/initsock.h

"#include

"../common/protoinfo.h

"#include

#include

#pragma comment(lib, "advapi32.lib")cinitsock thesock;

void decodetcppacket(char *pdata)

}void decodeippacket(char *pdata)

}void

main()

}closesocket(sraw);

}

執行結果

xingoo 閱讀(

...)

編輯收藏

網路嗅探器 JunkieTheSniffer

junkiethesniffer 是一款實時的資料報嗅探器和分析器,其模組化的設計來完成多種不同的任務。junkiethesniffer 非常適用於幫助網路管理員和分析員。junkie的功能結合於tcpdump和wireshark,不同於tcpdump的是能夠任何深度協議的解析,不同於wiresha...

Python sniffer 網路嗅探器

import socket import threading import time activedegree dict flag 1 defmain global activedegree global glag 獲取本機ip位址 host socket.gethostbyname socket....

網路嗅探器 網路大典

嗅探器是一種監視網路資料執行的軟體裝置,協議分析器既能用於合法網路管理也能用於竊取網路資訊。網路運作和維護都可以採用協議分析器 如監視網路流量 分析資料報 監視網路資源利用 執行網路安全操作規則 鑑定分析網路資料以及診斷並修復網路問題等等。非法嗅探器嚴重威脅網路安全性,這是因為它實質上不能進行探測行...