程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 利用WinPcap模擬網絡包偽造飛秋閃屏報文,winpcap報文

利用WinPcap模擬網絡包偽造飛秋閃屏報文,winpcap報文

編輯:C#入門知識

利用WinPcap模擬網絡包偽造飛秋閃屏報文,winpcap報文


起因

不知道從什麼時候開始,同事開始在飛秋上發閃屏振動了,後來變本加厲,成了每日一閃。老閃回去也比較麻煩,作為程序猿呢,有沒有什麼偷懶的辦法呢?(同事負責用戶體驗,不大懂編程)。然後嘗試了以下思路:

UI自動化

利用UISpy查看飛秋聊天窗口,悲催的發現找不到發送閃屏振動的按鈕。

模擬鼠標事件

准備使用mouse_event發送鼠標事件來模擬閃屏振動的按下。但是一想,每次閃屏振動按鈕所在的位置不一樣,要是移動窗口或者改變窗口布局,都得重新設置坐標,麻煩,遂棄之。

偽造網絡報文

以前就知道WinPcap和Wireshark,恰好前段時間又在博客園看到[c#]記一次實驗室局域網的ARP欺騙 - Yosef Gao - 博客園,了解到C#下也有了相關的解析和發送工具。果斷開始這個方案。

飛秋報文數據猜想

飛秋網絡傳輸

我是知道飛秋聊天是用UDP,端口默認為2425。不知道也沒關系,打開飛秋->設置->網絡設置,然後你就會發現,飛秋已經明白的告訴我們了。

1

閃屏振動

首先打開的WireShark,設置過濾條件為udp.port==2425,然後向測試機發送一個閃屏振動試試看。

發現有兩條消息,其中一條是本機發給對方的,另一條是對方發給本機的。

1

1

再發送幾次閃屏振動,我們就可以大致猜出飛秋閃屏振動報文的規律,發送的報文格式為1_lbt6_0#128#(發送方MAC地址,16位)#0#0#0#4001#9:(猜測應該是序號, 具體不清楚):(發送方用戶名):(發送方主機名)209:,收到的報文為1_lbt6_0#128#(發送方MAC地址,16位)#0#0#0#4001#9:(猜測應該是序號, 具體不清楚):(發送方用戶名):(發送方主機名)210:。將發送的閃屏振動報文用WinPcap模擬數據包,居然在測試機上收到了閃屏振動(原先還以為猜測的序號字段會有影響)。

信息

向測試機發送一條信息後,發現有幾條消息。

1

經過比較報文長度和來源之後,猜測其他幾條較短的來自本機的報文為發送正在輸入,停止輸入等消息,而較長的為發送的信息。經過驗證之後,也確實如此。而飛秋的信息報文應該是加過密的,無法直接從中猜出內容。

表情

表情與信息基本類似,但是表情貌似是經過壓縮的。

文件

一般文件都會通過TCP傳輸,經過驗證。發現果然如此,飛秋要發送的文件列表是通過UDP進行傳輸,而具體文件內容是通過TCP傳輸。

在UDP傳輸中,本方發送兩條報文,對方發送兩條報文。基本本方發送的第二條報文可以看到文件名。

1

在TCP報文中,除了TCP連接建立的三次握手和連接斷開的四次握手以外,在其余的本機發送的報文中,可以清楚的看到報文的內容。

這是文本文件:

1

這是二進制文件:

1

二進制文件在UltraEdit查看:

1

說明

因為主要興趣在研究閃屏振動,對其余功能只是簡單查看了一下,並未深入研究。

代碼實現

軟件界面

1

最開始做成模擬閃屏振動但不需要填寫任何報文信息,但是登錄用戶名無法通過網絡取得,再加上也可以通過在發送報文字符串中填寫其他從WireShark中復制過來的報文字符串來模擬其他報文(比如信息和表情),就做成了這種形式。

注意事項

要使用PacketDotNet.dll和SharpPcap.dll,需要安裝WinPcap(我是直接安裝了WireShark,裡面含有WinPcap)。

下載鏈接

博客園:FeiqCheater

趣事

最新情況

進展

挑戰

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved