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);

            }
        }
    }
}

運行截圖

003

10 Replies to “C# 實現簡單IIS”

  1. 你用抓包软件抓一下就知道了,就是ascii码的字节数组,可以直接Encoding.xxx.GetString()转换成字符串,然后分析一下格式就行了,很简单。

发表评论

电子邮件地址不会被公开。 必填项已用*标注