C 中病毒基本實現方法

2021-04-17 17:53:43 字數 2066 閱讀 7695

程式要實現下面幾個功能

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

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

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

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

// 不在工作列顯示

this.showintaskbar = false;

// 窗體透明

this.opacity = 0;

system.

windows

.forms.form

類封裝了一般的

windows

視窗程式大部分特性,極大的簡化視窗介面的設計過程,上面這兩個屬性用於隱藏我們的程式的執行狀態,第乙個

showintaskbar

屬性,設定為否時,程式就不會在狀態列上面顯示。第二個

opacity

屬性,表示視窗的不透明度,取值在0到

100之間。

0%的不透明度也就是

100%

透明了。這樣,在程式執行時,你就看不見窗體了。

// 預設複製次數

const int total = 100;

int _count = total;

// 正在執行的程式路徑和檔名

正在執行的程式路徑

正在執行的程式檔名

string _name = _file.replace(string.format("//", _path), string.empty).tolower();

trycatch

finally

// 目標檔案

string _target = string.format("//.exe", _path, _count.tostring("000"));

類提供了獲取程式執行絕對路徑幷包括檔名的屬性和程式執行絕對路徑的檔名屬性,竟然不直接提供乙個檔名的屬性,好奇怪。正規的擷取檔名的方法應該根據

"/"來判斷,這裡採用了替換的方法,大家可以思考一下如果用

substring

怎麼實現。55和

56行,如果檔名不是數字,那麼從

100.exe

開始生成,如果你執行了

10000.exe

的檔案,那麼狠糟糕,你可能需要登出一下當前使用者來終止程式執行,當然,讓它執行也不會有多大影響。最後,

65行,我們把目標鎖定在程式的當前目錄下。病毒和流氓軟體就沒有那麼客氣了,經常它可能會選擇磁碟根目錄、

c:/winodws

、c:/

windows

/system32

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

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

// 貼上

filestream _writer = file.open(_target, filemode.openorcreate, fileaccess.readwrite, fileshare.none);

_writer.write(_buffer, 0, _buffer.length);

_writer.close();

// 執行剛複製完成的程式

最後,我們來完成第三個目標,自我複製並且執行複製好的新程式。

前面我們得到了

_file

程式執行絕對路徑幷包括檔名,這樣,我們就可以開啟並讀取它了。

file

是檔案操作的靜態方法,它只負責開啟,關閉,建立和刪除檔案,對檔案的讀寫,就要由

filestream

來操作了。

這裡只是整個複製檔案,非常的簡單。病毒的特性是可以附加到別的程式或檔案上,整個過程就比較複雜了

。首先,需要非常了解可執行檔案的結構,把原來的可執行檔案分解,並且把自身也進行分解,然後重新組合成乙個新的可執行檔案,但是執行的次序已經改變了,程式開始會先跳轉到病毒**,保證病毒能夠被執行後,再跳轉回正常的程式**,以使病毒能夠得以在隱藏的狀態下執行。

84

C 中 set 基本方法

set 集合 常用方法 方法功能 insert 插入乙個元素 erase 刪除乙個元素 count 判斷元素是否在set中 size 獲取元素大小 clear 清空set具有和數學中 集合 類似的屬性,set由不重複的資料組成,插入 查詢 刪除 和查詢的時間複雜度都為o lgn 而陣列雖然插入的時間...

Windows PE(檔案型)病毒C 實現

原本打算採用組合語言實現,但是考慮到本人win32彙編基礎實在不過關,除錯起來痛苦不斷啊,於是還是焦急的改用了c 但是編寫pe病毒最好還是採用彙編來編寫的,原因如下 隨著windows 時代的到來,不僅僅給我們帶來華麗的介面,更多的是給我們提供了 保護機制 何為 保護機制 通過乙個小故事來了解 從前...

C 中查詢方法的實現

a.搜尋的儲存過程 create procedure searchdata search varchar 255 asselect id,a,b,c from table where a like search orb like search orc like search go private v...