[開源]Delphi下WinPCap開發基礎 一個簡單的HttpSniffer


Delphi開發WinPcap程序一直是個門檻,這個代碼之前在netexpert發過,但是問“如何用Delphi寫網絡協議分析?”、“Delphi怎么發送ARP包”這類問題的人還是大有人在。Delphi不能開發Sniffer?不能進行底層數據包收發?跨過這條門檻,一切易如反掌。

 轉自:http://www.cnblogs.com/bits/archive/2009/03/15/delphi-winpcap_httpsniffer.html

一直在考慮是否要把這幾個代碼拿出來,因為有些程序危害還比較大(比如ARP沖突攻擊、SYN Flood那幾個),留着也是留着還是拿出來開源得了。另外,雖然網上有個轉換過的WinPcap頭文件,但怎么用怎么不順手。這里是通過Dev-C++寫了一個DLL,通過調用這個DLL操作WinPcap庫(代碼都在里面,很簡單)。

 

這是第一個程序,代碼量很小,算是Sniffer的基礎,源碼見文章末尾。過兩天把另外的幾個也整理出來...

歡迎隨便轉載,希望能普及Delphi WinPcap開發
原文發表在:http://www.netexpert.cn/thread-20671-1-1.html

這次是Sniffer的,下一篇打算發布SYN Flood的(偽造數據包)。代碼中有些地方注釋不全,不過可以先到這里下載之前的版本:http://www.netexpert.cn/thread-20673-1-1.html


一個簡單的Sniffer例子程序,抓取TCP 80端口的數據包,並過濾出POST和GET消息,如圖:

 

打開網卡、設置過濾器,以及HTTP數據包處理部分的代碼如下:

抓包和數據包處理過程

 


 程序用途,捕獲HTTP的GET和POST消息,用於截獲URL的訪問以及表單的提交(比如只監聽POST消息,可以抓到論壇登陸的帳號和密碼)。例如抓到的輸出如下:

一個典型的POST


第二行:POST /chklogin.do HTTP/1.1 可以看到,這里在驗證登陸信息
一般用戶名和密碼都在Cookie中,找到Cookie這行:
Cookie: __utma=257446157.4392135229605150700.1219543473.1219543473.1219543473.1; __utmz=257446157.1219543473.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
username=abcdefg&password=123456&method=login&login_md5=e10adc3949ba59abbe56e057f20f883e&method=login_pw&gameType=&forward=&image.x=58&image.y=14
.
看到了,在 username=abcdefg&password=123456 這里清清楚楚的寫着剛才提交的用戶名是abcdefg,密碼為123456(當然是我隨便輸的)。自己試試一下效果吧。

 

源碼(Source)httpSniffer_src.rar
Linux版的源碼(使用libpcap):httpSniffer_src4Linux.rar

可執行程序:httpSniffer_bin.rar

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM