最近朋友的电脑中了病毒让我跑了三次费了九牛二虎之力几种杀毒软件还是没有能把病毒全清除掉最后没有办法只能把资料复制出来把硬盘重新分区了再装系统装上了可以免费使用的AntiVir于是乎世界终于清静
不仅因为Windows系统的脆弱而且因为病毒无休止的自我复制和满硬盘的藏匿使得我们脆弱的神经不堪重负面对千疮百孔有着莫名其妙而又千奇百怪的名字文件夹和文件的系统相信大多数人都会选择重装系统病毒和流氓软件总是让人气愤!那么计算机程序怎么实现自我复制呢?其实这非常的简单下面我将用C#简单的实现一个能够自我复制的小小的恶意程序
程序要实现下面几个功能
第一运行时不出现运行界面当然在任务管理器里还是可以看到进程的道行再深的病毒也不可能无迹可寻
第二程序在运行目录下自我复制n份
第三采用递归复制的方法即第一个程序生成第二个程序第二个程序生成第三个程序以此类推
源代码很简单下面来分析一下
// 不在任务栏显示
thisShowInTaskbar = false;
// 窗体透明
thisOpacity = ;
SystemWindowsFormsForm类封装了一般的Windows窗口程序大部分特性极大的简化窗口界面的设计过程上面这两个属性用于隐藏我们的程序的运行状态第一个ShowInTaskbar属性设置为否时程序就不会在状态栏上面显示第二个Opacity属性表示窗口的不透明度取值在到之间%的不透明度也就是%透明了这样在程序运行时你就看不见窗体了
// 默认复制次数
const int TOTAL = ;
int _count = TOTAL;
// 正在运行的程序路径和文件名
string _file = ApplicationExecutablePath;
// 正在运行的程序路径
string _path = ApplicationStartupPath;
// 正在运行的程序文件名
string _name = _fileReplace(stringFormat({}\\ _path) stringEmpty)ToLower();
try
{
_count = intParse(_nameReplace(exe stringEmpty));
_count;
}
catch
{
}
finally
{
}
// 目标文件
string _target = stringFormat({}\\{}exe _path _countToString());
[] []