- 論壇徽章:
- 0
|
最近一直在騷擾npcomet@LCUC,因?yàn)槲乙恢辈凰佬摹獜膌ibpcap抓取的數(shù)據(jù)包的數(shù)據(jù)鏈路層里,真的就提取不出明文?
心里想:
1. 國(guó)際用的最多的IM的協(xié)議是——MSN;
2. MSN協(xié)議是基于text-mode傳輸?shù)模羌恿嗣艹祝?br />
接著Google,確實(shí)發(fā)現(xiàn)了msniff - simple sniffer for MSN Messenger messages在http://shh.thathost.com/pub-unix/#msniff
msniff依賴的庫(kù):
1. 前面提及的libpcap
2. shhmsg - library for displaying messages.
3. shhopt - library for parsing command line options
其中,shhmsg的源代碼可以仔細(xì)閱讀,可以知道如何解析libpcap抓取的數(shù)據(jù)包的數(shù)據(jù)鏈路層里面的有用數(shù)據(jù);
shhopt其實(shí)可以用Glibc的getopt、getopt_long替換
馬上./msniff ath0 192.168.0.100 1863 > msniff.log
我的網(wǎng)絡(luò)interface是ath0,IP地址是192.168.0.100,pidgin中默認(rèn)的MSN端口是1863
把過(guò)濾機(jī)制中的端口換成其他的IM默認(rèn)的端口,發(fā)現(xiàn)
默認(rèn)內(nèi)容未加密的:MSN、YAHOO
默認(rèn)內(nèi)容加密的:GTALK、QQ
還有些協(xié)議沒(méi)有帳號(hào),就沒(méi)有測(cè)試了
MSniffer從數(shù)據(jù)報(bào)里得到有用數(shù)據(jù)的方法集中在:
- #include <netinet/ether.h>
- #include <netinet/ip.h>
- #include <netinet/tcp.h>
- static void
- packetHandler(u_char *user, const struct pcap_pkthdr *hdr, const u_char *data)
復(fù)制代碼
這個(gè)被pcap_loop(ph, -1, packetHandler, NULL)回調(diào)用的函數(shù)里
注意看const u_char *payload的值獲得的過(guò)程。
有空要仔細(xì)學(xué)習(xí)libpcap、tcpdump的文檔、源代碼。
感謝LCUC的npcomet,他接受到libpcap test的信息,沒(méi)有抓狂 ^_^ |
|