病毒及流氓軟體自我複製的簡單實現 C

2021-04-12 18:42:27 字數 1321 閱讀 9663

下面我將用

c#簡單的實現乙個能夠自我複製的小小的惡意程式。

程式要實現下面幾個功能。

第一,執行時不出現執行介面,當然,在任務管理器裡,還是可以看到程序的,道行再深的病毒也不可能無跡可尋。

第二,程式在執行目錄下自我複製n份。

第三,採用遞迴複製的方法,即第乙個程式生成第二個程式,第二個程式生成第三個程式,以此類推。

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

35 // 不在工作列顯示

36 this.showintaskbar = false;

37 // 窗體透明

38 this.opacity = 0;

system.

windows

.forms.form類封裝了一般的

windows

視窗程式大部分特性,極大的簡化視窗介面的設計過程,上面這兩個屬性用於隱藏我們的程式的執行狀態,第乙個showintaskbar屬性,設定為否時,程式就不會在狀態列上面顯示。第二個opacity屬性,表示視窗的不透明度,取值在0到100之間。0%的不透明度也就是100%透明了。這樣,在程式執行時,你就看不見窗體了。

/system32或者其他重要的系統目錄中。而且病毒採用了隨機的命名方式或者是模仿系統檔名稱的固定命名方式,以達到隱藏自身和迷惑使用者的目的。

67 if ((file.exists(_file)) && (_count > 0))

68 79  // 貼上

80  filestream _writer = file.open(_target, filemode.openorcreate, fileaccess

最後,我們來完成第三個目標,自我複製並且執行複製好的新程式。前面我們得到了_file程式執行絕對路徑幷包括檔名,這樣,我們就可以開啟並讀取它了。file是檔案操作的靜態方法,它只負責開啟,關閉,建立和刪除檔案,對檔案的讀寫,就要由filestream來操作了。這裡只是整個複製檔案,非常的簡單。病毒的特性是可以附加到別的程式或檔案上,整個過程就比較複雜了。首先,需要非常了解可執行檔案的結構,把原來的可執行檔案分解,並且把自身也進行分解,然後重新組合成乙個新的可執行檔案,但是執行的次序已經改變了,程式開始會先跳轉到病毒**,保證病毒能夠被執行後,再跳轉回正常的程式**,以使病毒能夠得以在隱藏的狀態下執行。84行呼叫了新複製完成的程式。以使得新複製的程式能夠自動執行,並且進行下一次的複製。同樣的道理,現在非常多的軟體都提供了自動更新的功能,它的原理基本也是這樣,

公升級包,主程式呼叫公升級程式,如果有必要,主程式會先退出,公升級程式完成對主程式或者其他檔案的複製更新,然後再重新呼叫主程式。由此可見,計算機的功能是沒有好壞之分的。病毒能夠運用的原理,普通程式當然也能夠利用。水能載舟亦能覆舟就是這個道理。

病毒及流氓軟體自我複製的簡單實現 C

病毒及流氓軟體自我複製的簡單實現 c 最近朋友的電腦中了病毒,讓我跑了三次,費了九牛二虎之力,幾種防毒軟體還是沒有能把病毒全清除掉,最後沒有辦法,只能把資料複製出來,把硬碟重新分割槽了再裝系統,裝上了可以免費使用的antivir,於是乎世界終於清靜。不僅因為windows系統的脆弱,而且因為病毒無休...

病毒及流氓軟體自我複製的簡單實現 C

最近朋友的電腦中了病毒,讓我跑了三次,費了九牛二虎之力,幾種防毒軟體還是沒有能把病毒全清除掉,最後沒有辦法,只能把資料複製出來,把硬碟重新分割槽了再裝系統,裝上了可以免費使用的antivir,於是乎世界終於清靜。不僅因為windows系統的脆弱,而且因為病毒無休止的自我複製和滿硬碟的藏匿,使得我們脆...

病毒及流氓軟體自我複製的簡單實現 C

最近朋友的電腦中了病毒,讓我跑了三次,費了九牛二虎之力,幾種防毒軟體還是沒有能把病毒全清除掉,最後沒有辦法,只能把資料複製出來,把硬碟重新分割槽了再裝系統,裝上了可以免費使用的antivir,於是乎世界終於清靜。不僅因為windows系統的脆弱,而且因為病毒無休止的自我複製和滿硬碟的藏匿,使得我們脆...