C# 實現簡單IIS
還記得Many QQ的網頁遠程控制麼?我猜也應該是這麼實現的。
公司的軟件到處都要輸賬號密碼,即使有之前的熱鍵自動輸入,新的項目管理軟件用WPF實現,所以用按鍵自動輸輸入有點麻煩,主要還是WPF沒有“控件”,無法捕獲到密碼框的句柄,做後台發送有點麻煩。
So,我從數據通信方面著手,監聽下發送的數據包和服務器地址,再使用數據包重定向軟件,將軟件的數據全部轉到自己弄的軟件上,嘿嘿,強制返回成功登錄的信息,配合發送按鍵,即使我輸錯密碼也能照常登錄,那麼基於這個就可以無障礙登錄其他同事的賬號。可惜他不是用域名解析而是直接指定IP地址,要是用域名解析,就可以不用數據包重定向軟件,直接改Hosts…..
簡單的東東不說了,上IIS部分代碼。
using System; using System.IO; using System.Net; namespace Last { class Program { static void Main(string[] args) { byte[] sendData = null; HttpListener listener = new HttpListener(); //這裡有兩種寫法 //不綁定IP地址,內外網均可訪問 listener.Prefixes.Add("http://+:80/"); //綁定IP地址 //listener.Prefixes.Add("http://127.0.0.1:80/"); listener.Start(); while (true) { var context = listener.GetContext(); HttpListenerRequest request = context.Request; Console.WriteLine(string.Format("{0} {1}", request.HttpMethod, request.Url.AbsolutePath)); sendData = System.Text.Encoding.Default.GetBytes("<b>404 ,你懂的<b>...."); context.Response.Close(sendData, true); } } } }
運行截圖
我是用tcpclient实现的,收字节数组分析格式,然后回送字节数组。说实话我还不知道有httplistener这个东西。
tcpclient這種好像有點複雜?就像某聊天軟件那樣十六進制…..
那返回的包是什麼格式呢?
你用抓包软件抓一下就知道了,就是ascii码的字节数组,可以直接Encoding.xxx.GetString()转换成字符串,然后分析一下格式就行了,很简单。
有空試下tcp的
用httplistener重构了远程监控功能,有兴趣来试一下没?我的主页有入口。
要是挂在80端口的話基本看不出是程序模擬出來,好有“云”的感覺。
可以自己写页面,然后把manyqq2程序当作后台,搞一个挂机平台出来。其他可玩性还有不少呢。
後臺數據交互做成json怎麼樣?這樣可以在任意平臺編寫客戶端,同時也提供網頁版。
部分数据交互是json格式,获取消息和获取好友列表因为是之前写好的,就没改,后期有计划改掉。
還要去做獲取好友列表?這個不需要了吧