做一些ERP软件或者OA 又或者CRM 的时候 总需要给自己留个“后门” 这个后门 只是方便部署之后DEBUG。 相信大家也都明白!
案例 .NET程序 某仓库管理软件。。
环境: 因为公司项目问题,发现了一个问题。我们公司某OA程序 在部署之后会有一个有一个DEBUG的功能,本身这是一很NB的想法,不过 在实现的过程中出现了一个BUG!
程序默认了一个 最大权限用户 Sys*** 木哦人口令 888*** (咳咳 别乱猜,不是你们想的那样。)这个账号拥有比系统管理员更高权限(主要是方便 我们为客户DEBUG)!但是,采用登录的办法 总觉得欠妥。一旦个别客户 捣乱,那个。。咳咳。。
Form1的构造函数里面
在From_Load 时间后 我们尝试一下 MessageBox.Show(); 一下!
猜想 如果 有A 这个字符 那么就会弹出超级管理员! 至于权限模块 大家按照自己的方法来做。
那如何调用呢?
双击 运行程序 OK! 如何以“后门”的形式打开呢? CMD 程序目录 XX.EXE - A OK了。。(当然这个过程 是不能让客户看见的!需要封装)
其实这里只是运用了一个 窗体程序运行 参数传递。但是以这种形式 效果明显比 在登录的时候 输入咋们事先写好的后门账号来 要保险 和高端的多!
------------------------------------------------
以上过程 纯属是一个思路。大家不喜勿喷。
案例 .NET程序 某仓库管理软件。。
环境: 因为公司项目问题,发现了一个问题。我们公司某OA程序 在部署之后会有一个有一个DEBUG的功能,本身这是一很NB的想法,不过 在实现的过程中出现了一个BUG!
程序默认了一个 最大权限用户 Sys*** 木哦人口令 888*** (咳咳 别乱猜,不是你们想的那样。)这个账号拥有比系统管理员更高权限(主要是方便 我们为客户DEBUG)!但是,采用登录的办法 总觉得欠妥。一旦个别客户 捣乱,那个。。咳咳。。
针对方法:
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] str) //这里多了一个参数
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(str));//这里传递 参数
}
}
默认源代码应该是这样:
static class Program
{
/// <summary>
/// 应用程序的主入口点。 // 默认建立程序是这样的!
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
OK
Form1的构造函数里面
public string msg = "";
public Form1(string[] str) // 这里添加了一个参数。 主要是 前面匿名类生成的时候 我们手动写了一个参数 这里做接受
{
InitializeComponent();
foreach (string i in str)
{
if (i == "A")
{
msg = "超级管理员";
}
}
}
默认的是这样的
public Form1()
{
InitializeComponent();
}
在From_Load 时间后 我们尝试一下 MessageBox.Show(); 一下!
猜想 如果 有A 这个字符 那么就会弹出超级管理员! 至于权限模块 大家按照自己的方法来做。
那如何调用呢?
双击 运行程序 OK! 如何以“后门”的形式打开呢? CMD 程序目录 XX.EXE - A OK了。。(当然这个过程 是不能让客户看见的!需要封装)
其实这里只是运用了一个 窗体程序运行 参数传递。但是以这种形式 效果明显比 在登录的时候 输入咋们事先写好的后门账号来 要保险 和高端的多!
------------------------------------------------
以上过程 纯属是一个思路。大家不喜勿喷。