软件彩蛋我想大家都应该听说过。经典的比如在Excel得某个单元隔里面OOXX就可以获得一个赛车游戏之类。这是一种软件彩蛋,纯属娱乐。但是更多的“彩蛋”被用作软件后门。比如我们提供给客户一个软件,通常是看不到某些调试用的窗口和工具的;当我们被要求给客户提供现场技术支持的时候,我们往往希望通过某种隐秘的手段来开启这些条使用的工具和窗口,这就是后门。这类后门中又以按键后门最为常见,下面我们就利用一个已有的第三方函数库Utilities.dll来构建一个后门系统。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Utilities;
namespace BackdoorExample
{
public partial class Form1 : Form
{
private KeyboardIncantationMonitor m_KeyBackDoor = new KeyboardIncantationMonitor();
public Form1()
{
InitializeComponent();
//! 加入后门
AddBackDoor();
}
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;
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
//! 告诉后门监视器哪个键被按下了
m_KeyBackDoor.Append(e.KeyCode);
}
}
}
资源文件列表
Utilities.dll , 44544
BackdoorExample/BackdoorExample/BackdoorExample.csproj , 3950
BackdoorExample/BackdoorExample/Form1.cs , 2402
BackdoorExample/BackdoorExample/Form1.Designer.cs , 2430
BackdoorExample/BackdoorExample/Form1.resx , 5814
BackdoorExample/BackdoorExample/Program.cs , 507
BackdoorExample/BackdoorExample/Properties/AssemblyInfo.cs , 1442
BackdoorExample/BackdoorExample/Properties/Resources.Designer.cs , 2859
BackdoorExample/BackdoorExample/Properties/Resources.resx , 5612
BackdoorExample/BackdoorExample/Properties/Settings.Designer.cs , 1100
BackdoorExample/BackdoorExample/Properties/Settings.settings , 249
BackdoorExample/BackdoorExample/Utilities.dll , 44544
BackdoorExample/BackdoorExample.sln , 935
BackdoorExample/BackdoorExample.suo , 16384
