基於winpcap的抓包分析工具

0x00

這幾天要幫老師做一個基於Winpcap的工具, 然後就開始瞎搞Winpcap了。官方的文檔很給力啊, 而且還有一箇中文版的,中文版 地址請戳這裏示例的代碼也挺不錯的, 可以直接拿來做測試, 但是其中也有出現一些問題

0x01

下面是我在學習中碰到的一些問題

a.

    pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1
    //在執行這條語句時報錯說沒有定義, 然後去官方文檔找這個, 發現
    //在remote-ext.h中有定義了, 但是
    //在頭文件中有這麼幾行
    #ifndef HAVE_REMOTE 
#error Please do not include this file directly. Just  
define HAVE_REMOTE and then include pcap.h 
#endif 
    //於是 就在c中添加#define HAVE_REMOTE , 但是注意這個必須在#include 前添加定義。 

暫時只有那麼點, 如果寫代碼過程中有問題再貼出來

0x02

花了一點時間把老師的項目寫完了,有些東西就不展示了,貼幾個
函數就差不多了

    int  startAnalyst();
int  opendev(); 
int  setfilter(pcap_t * ,pcap_if_t *,pcap_if_t *); 
int  dumpfiles(pcap_t* ,pcap_if_t * , pcap_if_t *); 
int  checknum(int, pcap_if_t *); 
int  doCompose(char *); // this function is get what you send ;  
int  doRead(char *);

int  getReadSubject(char *, char*);  //src ,des   
int  getReadTitle(char *, char *);
int  getReadTo(char *, char *);
int  getReadFrom(char *, char *);

int  getComposeSubject(char *, char *); //src , des 
int  getComposeTitle(char *, char *); //src ,des 
int  getComposeTo(char *, char *);// src , des 
int  getComposeFrom(char *, char *); //src , des
int  catchPackage();  

void printMsg(char *, char *, char *, char *);

另外想說的是,winpcap的官方文檔還是有很多不錯的內容的, 基本上都可以拿來直接用。
我在使用內嵌循環抓包的時候,使用了一個static 數來記錄抓到的包, 因爲只是一個demo,所以只要有一定的數量就可以了。
還有嘛,就是這次聯繫除了學習了一下winpcap的相關內容其實就是在代碼風格上更加有層次感和模塊化了吧。
最後 感覺寫在這前幾行的函數聲明其實可以協商參數名的, 當然,如果只是自己看, 我覺得不寫也沒關係。
另外想要源碼的童鞋可以私信我。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章