不知道從什么時(shí)候開(kāi)始,同事開(kāi)始在飛秋上發(fā)閃屏振動(dòng)了,后來(lái)變本加厲,成了每日一閃。老閃回去也比較麻煩,作為程序猿呢,有沒(méi)有什么偷懶的辦法呢?(同事負(fù)責(zé)用戶(hù)體驗(yàn),不大懂編程)。然后嘗試了以下思路:
利用UISpy查看飛秋聊天窗口,悲催的發(fā)現(xiàn)找不到發(fā)送閃屏振動(dòng)的按鈕。
準(zhǔn)備使用mouse_event發(fā)送鼠標(biāo)事件來(lái)模擬閃屏振動(dòng)的按下。但是一想,每次閃屏振動(dòng)按鈕所在的位置不一樣,要是移動(dòng)窗口或者改變窗口布局,都得重新設(shè)置坐標(biāo),麻煩,遂棄之。
以前就知道WinPcap和Wireshark,恰好前段時(shí)間又在博客園看到[c#]記一次實(shí)驗(yàn)室局域網(wǎng)的ARP欺騙 - Yosef Gao - 博客園,了解到C#下也有了相關(guān)的解析和發(fā)送工具。果斷開(kāi)始這個(gè)方案。
我是知道飛秋聊天是用UDP,端口默認(rèn)為2425。不知道也沒(méi)關(guān)系,打開(kāi)飛秋->設(shè)置->網(wǎng)絡(luò)設(shè)置,然后你就會(huì)發(fā)現(xiàn),飛秋已經(jīng)明白的告訴我們了。
首先打開(kāi)的WireShark,設(shè)置過(guò)濾條件為udp.port==2425,然后向測(cè)試機(jī)發(fā)送一個(gè)閃屏振動(dòng)試試看。
發(fā)現(xiàn)有兩條消息,其中一條是本機(jī)發(fā)給對(duì)方的,另一條是對(duì)方發(fā)給本機(jī)的。
再發(fā)送幾次閃屏振動(dòng),我們就可以大致猜出飛秋閃屏振動(dòng)報(bào)文的規(guī)律,發(fā)送的報(bào)文格式為1_lbt6_0#128#(發(fā)送方MAC地址,16位)#0#0#0#4001#9:(猜測(cè)應(yīng)該是序號(hào), 具體不清楚):(發(fā)送方用戶(hù)名):(發(fā)送方主機(jī)名)209:,收到的報(bào)文為1_lbt6_0#128#(發(fā)送方MAC地址,16位)#0#0#0#4001#9:(猜測(cè)應(yīng)該是序號(hào), 具體不清楚):(發(fā)送方用戶(hù)名):(發(fā)送方主機(jī)名)210:。將發(fā)送的閃屏振動(dòng)報(bào)文用WinPcap模擬數(shù)據(jù)包,居然在測(cè)試機(jī)上收到了閃屏振動(dòng)(原先還以為猜測(cè)的序號(hào)字段會(huì)有影響)。
向測(cè)試機(jī)發(fā)送一條信息后,發(fā)現(xiàn)有幾條消息。
經(jīng)過(guò)比較報(bào)文長(zhǎng)度和來(lái)源之后,猜測(cè)其他幾條較短的來(lái)自本機(jī)的報(bào)文為發(fā)送正在輸入,停止輸入等消息,而較長(zhǎng)的為發(fā)送的信息。經(jīng)過(guò)驗(yàn)證之后,也確實(shí)如此。而飛秋的信息報(bào)文應(yīng)該是加過(guò)密的,無(wú)法直接從中猜出內(nèi)容。
表情與信息基本類(lèi)似,但是表情貌似是經(jīng)過(guò)壓縮的。
一般文件都會(huì)通過(guò)TCP傳輸,經(jīng)過(guò)驗(yàn)證。發(fā)現(xiàn)果然如此,飛秋要發(fā)送的文件列表是通過(guò)UDP進(jìn)行傳輸,而具體文件內(nèi)容是通過(guò)TCP傳輸。
在UDP傳輸中,本方發(fā)送兩條報(bào)文,對(duì)方發(fā)送兩條報(bào)文。基本本方發(fā)送的第二條報(bào)文可以看到文件名。
在TCP報(bào)文中,除了TCP連接建立的三次握手和連接斷開(kāi)的四次握手以外,在其余的本機(jī)發(fā)送的報(bào)文中,可以清楚的看到報(bào)文的內(nèi)容。
這是文本文件:
這是二進(jìn)制文件:
二進(jìn)制文件在UltraEdit查看:
因?yàn)橹饕d趣在研究閃屏振動(dòng),對(duì)其余功能只是簡(jiǎn)單查看了一下,并未深入研究。
最開(kāi)始做成模擬閃屏振動(dòng)但不需要填寫(xiě)任何報(bào)文信息,但是登錄用戶(hù)名無(wú)法通過(guò)網(wǎng)絡(luò)取得,再加上也可以通過(guò)在發(fā)送報(bào)文字符串中填寫(xiě)其他從WireShark中復(fù)制過(guò)來(lái)的報(bào)文字符串來(lái)模擬其他報(bào)文(比如信息和表情),就做成了這種形式。
要使用PacketDotNet.dll和SharpPcap.dll,需要安裝WinPcap(我是直接安裝了WireShark,里面含有WinPcap)。
博客園:FeiqCheater
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注