windows抓包簡單的實現

2021-06-10 05:09:29 字數 1292 閱讀 9523

因為要自己分析包內容,所以首先得自己定義ip頭結構體和其他協議頭(當然不能隨便定義,要按照它要求的格式)

定義ip頭:

// 20位元組的ip頭;

typedef struct _ip_header

ip_header, *pip_header;

定義協議頭,這裡只有tcp頭和ucp頭:

// 8個位元組的udp頭;

typedef struct _ucp_header

udp_header, *pudp_header;

// 20個位元組的tcp頭;

typedef struct _tcp_header

tcp_header, *ptcp_header;

因為要分析抓到的包的ip頭和其他協議頭,所以不能用一般應用層的套接字,只能用原始套接字:

建立原始套接字,繫結到本地ip(這個一定要),並設定接收所有包

// 建立原始套接字;

socket s = socket( af_inet, sock_raw, ipproto_ip );

// 獲得使用者名稱;

char szhostname[32];

gethostname(szhostname, sizeof(szhostname));

// 獲得本地ip位址;

hostent* phost;

phost = gethostbyname(szhostname);

sockaddr_in sin;

sin.sin_family = af_inet;

sin.sin_port = 0;

memcpy( &sin.sin_addr.s_un.s_addr, phost->h_addr_list[0], phost->h_length );

printf( "繫結到ip:%s", inet_ntoa(sin.sin_addr) );

bind( s, (lpsockaddr)&sin, sizeof(sin) );

// 設定接受所有包;

dword dwvalue = 1;

ioctlsocket( s, sio_rcvall, &dwvalue );

然後接收資料

char buf[1024*10];

int iret;

while ( true )

}

解析封包的時候就是利用所定義的ip頭和各種協議頭來分析

libpcap抓包簡單例子

include include include include include void tcp packet callback unsigned char argument,const struct pcap pkthdr pcap header,const unsigned char packe...

windows電腦使用Charles抓包

1.電腦安裝charles軟體 2.電腦安裝charles證書 開啟charles,help ssl proxying install charles root certificate 3.設定 勾選 enable ssl proxying 設定埠號,預設88 4.手機安裝證書 安卓手機 設定 ip...

Fiddler實現手機的抓包

fiddler是我最喜愛的工具,幾乎每天都用,我已經用了8年了。至今我也只學會其中大概50 的功能。fiddler絕對稱得上是 神器 任何乙個搞it的人都得著的。小弟我立志,一定要把fiddler的所有的功能和用法都寫出來。寫成乙個完整系列的教程。fiddler不但能截獲各種瀏覽器發出的http請求...