給自己的軟體添加後門

來源:互聯網
上載者:User
軟體彩蛋我想大家都應該聽說過。經典的比如在Excel得某個單元隔裡面OOXX就可以獲得一個賽車遊戲之類。這是一種軟體彩蛋,純屬娛樂。但是更多的“彩蛋”被用作軟體後門。比如我們提供給客戶一個軟體,通常是看不到某些調試用的視窗和工具的;當我們被要求給客戶提供現場支援人員的時候,我們往往希望通過某種隱秘的手段來開啟這些條使用的工具和視窗,這就是後門。這類後門中又以按鍵後門最為常見,下面我們就利用一個已有的第三方函數庫Utilities.dll來構建一個後門系統。 

首先建立一個工程,然後完成對第三方庫Utilities的引用。 

然後開打Form1的代碼編輯視窗,在表單類中添加一個 後門類KeyboardIncantationMonitor -C#private KeyboardIncantationMonitor m_KeyBackDoor = new KeyboardIncantationMonitor(); 

建立一個私人成員函數,並添加兩個後門 -C#private void AddBackDoor()
{
    //! 第一個後門
    do
    {
        //! 申請一個後門暗號
        KeyboardIncantationMonitor.KeysIncantation tInc = m_KeyBackDoor.NewIncantation() as KeyboardIncantationMonitor.KeysIncantation;

        //! 初始化這個暗號為:依次按下 <Esc>HELLO<Enter>
        tInc.AddKey(Keys.Escape);
        tInc.AddKey(Keys.H);
        tInc.AddKey(Keys.E);
        tInc.AddKey(Keys.L);
        tInc.AddKey(Keys.L);
        tInc.AddKey(Keys.O);
        tInc.AddKey(Keys.Enter);

        //! 對上暗號以後的處理常式
        tInc.IncantationCantillatedReport += new IncantationReport(BackdoorHandler_A);

        //! 將這個暗號添加到後門監視器裡面
        m_KeyBackDoor.AddIncantation(tInc);
    }
    while (false);

    //! 第二個後門
    do
    {
        //! 申請一個後門暗號
        KeyboardIncantationMonitor.KeysIncantation tInc = m_KeyBackDoor.NewIncantation() as KeyboardIncantationMonitor.KeysIncantation;

        //! 初始化這個暗號為:依次按下 <Esc>Bye<Enter>
        tInc.AddKey(Keys.Escape);
        tInc.AddKey(Keys.B);
        tInc.AddKey(Keys.Y);
        tInc.AddKey(Keys.E);
        tInc.AddKey(Keys.Enter);

        //! 對上暗號以後的處理常式
        tInc.IncantationCantillatedReport += new IncantationReport(BackdoorHandler_B);

        //! 將這個暗號添加到後門監視器裡面
        m_KeyBackDoor.AddIncantation(tInc);
    }
    while (false);
}

//! 第一個後門的處理常式
void BackdoorHandler_A(IIncantation tInc)
{
    button1.Visible = true;
}

//! 第二個後門的處理常式
void BackdoorHandler_B(IIncantation tInc)
{
    button1.Visible = false;
}

在Form1的建構函式中增加對AddBackDoor方法的調用,這樣我們就把後門加好了 -C#public Form1() 

     InitializeComponent(); 

     //! 加入後門 
     AddBackDoor(); 
}

在什麼地方安插後門呢?依照個人喜好了,不過既然是一個按鍵後門,肯定要選擇一個能接收KeyDown或者KeyUp事件的地方。 
比如我們在Form1上增加一個文字框,將其ReadOnly屬性設定為True,並添加一段文字:“著作權,翻版必究”。並在表單上增加一個按鈕,作為我們示範的對象:普通狀況下,看不到這個按鈕,開啟後門以後,按鈕的visible屬性就變為true,我們就能看見了;我們也可以使用另外一個後門重新將按鈕的visible屬性設定為false,然後就可以交給客戶了。^_^ 

選中剛才所說的文字框控制項,在Property視窗中選擇Event,雙擊KeyDown,進入代碼編輯視窗,並在KeyDown處理常式中加入對後門監視器的處理:也就是把按下的鍵告訴監視器: -C# private void textBox1_KeyDown(object sender, KeyEventArgs e) 
        { 
            //! 告訴後門監視器哪個鍵被按下了 
            m_KeyBackDoor.Append(e.KeyCode); 
        } 

        //在後門處理常式A中將Button的Visible屬性設定為True; 
        //! 第一個後門的處理常式 
        void BackdoorHandler_A(IIncantation tInc) 
        { 
            button1.Visible = true; 
        } 
        //在後門處理常式B中將Button的Visible屬性設定為False; 
        //! 第二個後門的處理常式 
        void BackdoorHandler_B(IIncantation tInc) 
        { 
            button1.Visible = false; 
        }

最後,別忘記把Button的visible屬性設定為False,否則怎麼向我們的客戶隱藏這個按鈕呢? 

運行程式,果然看不到Button,他被隱藏了 
選中寫有“翻版必究”的文字框,依次按下: <Esc> <H> <E> <L> <L> <O> <Enter> 鍵, button1出現了 
依次按下: <Esc> <B> <Y> <E> <Enter> 鍵, button1又消失了 

大功告成。 
無論任何時候你都可以從頭開始輸入後門,不必擔心上次從什麼地方開始的。當然,也不用考慮大小寫。 
Have a good time. 

測試代碼下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.