最近朋友的電腦中了病毒讓我跑了三次費了九牛二虎之力幾種殺毒軟件還是沒有能把病毒全清除掉最後沒有辦法只能把資料復制出來把硬盤重新分區了再裝系統裝上了可以免費使用的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());
[] []
From:http://tw.wingwit.com/Article/program/net/201311/15416.html