本帖最后由 282858734 于 2014-5-23 13:30 编辑
前言:
感谢Shark恒在我第一篇文章发表后第二天就加了精华,我这里教程不算讲的最好,但是肯定实用。
实在是工作太忙,家里事情也比较多,每期更新都比较慢,还望海涵哈,今天出第二课教程,新版火警去后门程序,相信大家已经迫不及待了吧! 首先大家先了解一下什么是后门程序? 后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。
当然火警的后门主要功能就是帮作者的账号抢购,他先抢购,然后才是你的账号去抢购,作者的抢购过程是隐蔽的,你看不到,我们目的就是为了去除作者的抢购后门,真正做到我们自己的账号抢购,提高我们的抢购成功率! 注意:0520版本和0513版本基本类似,除了抢购地址每期都在变之外,其他代码仍然没有大的变动。 -------------------------------------------------------------------------------------------------------------------完美分割线---------------------------------------------------------------------------------------------- 下面进入正题:还是老办法,使用.NET Reflector 8.1软件加载xiaomi0513.exe文件大家自己动手找到下面我的截图部分
未去除后门前的代码:[C#] 纯文本查看 复制代码 private List<UserSekillVM> (int A_0)
{
this.++;
List<UserSekillVM> list = new List<UserSekillVM>();
if (A_0 != 0)
{
string[] strArray = BA.(CJ.(PrivateImplementationDetailz.
("VQBBAGMAZwBCAHQAQQBFAGsAQQBiAHcAQgB3AEEASABRAEEAYwBnAEEAQQBjAGcAQgBHAEEARwAwAEEAYgB3AEIAbABBAEYATQA9AGcAYwAyAEIARwBBAA==")) +
PrivateImplementationDetailz.("OgA=") + A_0).Split(new char[] { '\n' });
int num = 0;
foreach (string str in strArray)
{
if (!string.IsNullOrEmpty(str))
{
string[] strArray3 = str.Split(new char[] { '\r' });
UserSekillVM item = new UserSekillVM {
Account = strArray3[0].Trim(),
Password = strArray3[1].Trim(),
Status = PrivateImplementationDetailz.("SQBtAHAAbwByAHQAZQBkAA==")
};
list.Add(item);
num++;
}
}
}
return list;
}
那我们该怎么解决,有点C语言基础的人都能想到的,那我们无非就是不让后门程序执行,只需要在代码this.++;前加上一句代码,给A_0赋值等于0不就不会执行下面程序了吗?那我们就来试试吧。 1、打开菜单栏ToolS选择Reflexil v1.6
2、右击第000行选择Create New命令
3、如下图选择下拉框我们找到Ldc.i4.0,先定义一个数值0,然后我们将它赋值给A_0变量
4、点击Insert before select按钮插入一行如图,
5、继续在第001行重复上一步操作
6、在OpCode里找到starg.s, Operand type里找到Parameter reference申明一个变量 Operand插入A_0变量, 最后点击Insert before select按钮如图。 7、添加完之后保存重新编辑好的程序,重新打开我们编辑好的程序看看是不是已经改好了,验证一下!
8、去后门代码如下:[C#] 纯文本查看 复制代码 private List<UserSekillVM> (int A_0)
{
A_0 = 0;
this.++;
List<UserSekillVM> list = new List<UserSekillVM>();
if (A_0 != 0)
{
string[] strArray = BA.(CJ.(PrivateImplementationDetailz.
("VQBBAGMAZwBCAHQAQQBFAGsAQQBiAHcAQgB3AEEASABRAEEAYwBnAEEAQQBjAGcAQgBHAEEARwAwAEEAYgB3AEIAbABBAEYATQA9AGcAYwAyAEIARwBBAA==")) +
PrivateImplementationDetailz.("OgA=") + A_0).Split(new char[] { '\n' });
int num = 0;
foreach (string str in strArray)
{
if (!string.IsNullOrEmpty(str))
{
string[] strArray3 = str.Split(new char[] { '\r' });
UserSekillVM item = new UserSekillVM {
Account = strArray3[0].Trim(),
Password = strArray3[1].Trim(),
Status = PrivateImplementationDetailz.("SQBtAHAAbwByAHQAZQBkAA==")
};
list.Add(item);
num++;
}
}
}
return list;
}
恩没问题了,我们改好了,这样我们就去除后门了,至于是否还有其他后门大家在去找找,还有别的方法可以去后门,比如直接删除代码等方法,大家自己去试试吧。上期点击率还不到10000,说明大家还是对我的教程不满意,这期如果能超过10000,我下期就出破解授权教程哈,还有大家多多回复,有什么问题直接说明,本来就是互相交流学习,只看不回复的会让我没有心情,没有动力继续写下去了!就这样吧~再见
|