病毒及流氓軟件自我復制的簡單實現(xiàn)(C#)

2010-08-28 10:51:27來源:西部e網(wǎng)作者:

  最近朋友的電腦中了病毒,讓我跑了三次,費了九牛二虎之力,幾種殺毒軟件還是沒有能把病毒全清除掉,最后沒有辦法,只能把資料復制出來,把硬盤重新分區(qū)了再裝系統(tǒng),裝上了可以免費使用的AntiVir,于是乎世界終于清靜。
  不僅因為Windows系統(tǒng)的脆弱,而且因為病毒無休止的自我復制和滿硬盤的藏匿,使得我們脆弱的神經(jīng)不堪重負,面對千瘡百孔,有著莫名其妙而又千奇百怪的名字文件夾和文件的系統(tǒng),相信大多數(shù)人都會選擇重裝系統(tǒng)。病毒和流氓軟件總是讓人氣憤!那么,計算機程序怎么實現(xiàn)自我復制呢?其實這非常的簡單。下面我將用C#簡單的實現(xiàn)一個能夠自我復制的小小的惡意程序。

  程序要實現(xiàn)下面幾個功能。

  第一,運行時不出現(xiàn)運行界面,當然,在任務管理器里,還是可以看到進程的,道行再深的病毒也不可能無跡可尋。

  第二,程序在運行目錄下自我復制n份。

  第三,采用遞歸復制的方法,即第一個程序生成第二個程序,第二個程序生成第三個程序,以此類推。

  源代碼很簡單,下面來分析一下:

35 // 不在任務欄顯示
36 this.ShowInTaskbar = false;
37 // 窗體透明
38 this.Opacity = 0;


  System.Windows.Forms.Form類封裝了一般的Windows窗口程序大部分特性,極大的簡化窗口界面的設計過程,上面這兩個屬性用于隱藏我們的程序的運行狀態(tài),第一個ShowInTaskbar屬性,設置為否時,程序就不會在狀態(tài)欄上面顯示。第二個Opacity屬性,表示窗口的不透明度,取值在0到100之間。0%的不透明度也就是100%透明了。這樣,在程序運行時,你就看不見窗體了。


44 // 默認復制次數(shù)
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"));

 

關鍵詞:C#

贊助商鏈接: