相信電腦界的每個(gè)人都痛恨計(jì)算機(jī)病毒,她給我們帶來(lái)了很多麻煩和損失,可你知道編寫(xiě)病毒的方法和過(guò)程嗎?在此我僅以VB編寫(xiě)為例,揭開(kāi)她的面紗。
用VB編寫(xiě)病毒需要考慮到如下幾點(diǎn):
* 感染主機(jī)
首先染毒文件運(yùn)行后先要判斷主機(jī)是否以感染病毒,也就是判斷病毒主體文件是否存在,如果不存在則將病毒主體拷貝到指定位置(如:
將病毒文件拷貝到c:\Windows\system\),可用filecopy語(yǔ)句實(shí)現(xiàn);如果病毒已感染主機(jī)則結(jié)束判斷。
例如,判斷C:\windows\system\Killer.exe是否存在,如果有則退出判斷,如果沒(méi)有則證明本機(jī)未感染病毒,立即拷入病毒文件。
病毒源文件名為game.exe
聲明部分:
以下是引用片段:
""定義 FileExists% 函數(shù)
public success%
Function FileExists%(fname$)
On Local Error Resume Next
Dim ff%
ff% = FreeFile
Open fname$ For Input As ff%
If Err Then
FileExists% = False
Else
FileExists% = True
End If
Close ff%
End Function
代碼部分:
以下是引用片段:
""判斷文件是否存在
success% = FileExists%("C:\windows\system\Killer.exe")
If success% = False Then ""病毒不存在則拷貝病毒到計(jì)算機(jī)
FileCopy "game.exe", "C:\windows\system\Killer.exe"
... ""修改注冊(cè)表,將其加入RUN中。(省略若干代碼)
End If
* 開(kāi)機(jī)啟動(dòng)病毒
在病毒感染主機(jī)的同時(shí),將自身加入注冊(cè)表的開(kāi)機(jī)運(yùn)行中,這與向主機(jī)拷入病毒是同時(shí)進(jìn)行的,主機(jī)感染后不再修改注冊(cè)表。可通過(guò)編程和調(diào)用API函數(shù)對(duì)WIN注冊(cè)表進(jìn)行操作來(lái)實(shí)現(xiàn),這樣在每次啟動(dòng)計(jì)算機(jī)時(shí)病毒自動(dòng)啟動(dòng)。(具體編寫(xiě)方法請(qǐng)查閱其它資料)
* 任務(wù)管理器
在任務(wù)管理器列表中禁止病毒本身被列出,可以通過(guò)編程來(lái)實(shí)現(xiàn)。用代碼 App.TaskVisible = false 就可以實(shí)現(xiàn);再有就是通過(guò)調(diào)用Win API函數(shù)來(lái)實(shí)現(xiàn),這里就不作介紹了。
* 病毒發(fā)作條件
可用Day(Date)來(lái)判斷今天是幾號(hào),再與確定好的日期作比較,相同則表現(xiàn)出病毒主體的破壞性,否則不發(fā)作。也可用Time、Date或其它方法作為病毒發(fā)作條件的判斷。例:
以下是引用片段:
if day(date)=16 then ""16是發(fā)作日期,取值為1-31的整數(shù)
... ... ""kill ******* 當(dāng)日期相符時(shí)運(yùn)行的破壞性代碼(格式化、刪除指定的文件類型、發(fā)送數(shù)據(jù)包杜塞網(wǎng)路等,省略若干代碼)
end if
* 病毒的破壞性
編寫(xiě)的此部分代碼決定了病毒威力的強(qiáng)弱。輕的可以使系統(tǒng)資源迅速減少直至死機(jī)(需要你懂得一點(diǎn)蠕蟲(chóng)的原理),也就是實(shí)現(xiàn)開(kāi)機(jī)即死的效果;也可以加入硬盤(pán)炸彈代碼、系統(tǒng)后臺(tái)刪文件等。重的可以使計(jì)算機(jī)徹底癱瘓(不作介紹,你可以參閱其它病毒的有關(guān)資料)。
* 病毒的繁殖
原理很簡(jiǎn)單,就是將其自身與其它可執(zhí)行文件合并,也就是兩個(gè)文件并成一個(gè)文件。也可通過(guò)E-Mail傳播,方法是病毒讀取被感染主機(jī)的郵件列表,將帶有病毒附件的E-Mail發(fā)給列表中的每一個(gè)人(這需要你懂得VB網(wǎng)絡(luò)編程)。
讀完本文章相信您已對(duì)病毒的編寫(xiě)思路有了初步的了解,如果你是個(gè)VB愛(ài)好者,你已經(jīng)可以編寫(xiě)一個(gè)很簡(jiǎn)單的病毒了,但你要是精通VB的話,請(qǐng)不要有編寫(xiě)后傳播她的想法,因?yàn)閭鞑ニ斐珊艽蟮挠绊憣⒏淖兡愕拿\(yùn)(被公安抓住就掛了)。
用VB編寫(xiě)病毒需要考慮到如下幾點(diǎn):
* 感染主機(jī)
首先染毒文件運(yùn)行后先要判斷主機(jī)是否以感染病毒,也就是判斷病毒主體文件是否存在,如果不存在則將病毒主體拷貝到指定位置(如:
將病毒文件拷貝到c:\Windows\system\),可用filecopy語(yǔ)句實(shí)現(xiàn);如果病毒已感染主機(jī)則結(jié)束判斷。
例如,判斷C:\windows\system\Killer.exe是否存在,如果有則退出判斷,如果沒(méi)有則證明本機(jī)未感染病毒,立即拷入病毒文件。
病毒源文件名為game.exe
聲明部分:
以下是引用片段:
""定義 FileExists% 函數(shù)
public success%
Function FileExists%(fname$)
On Local Error Resume Next
Dim ff%
ff% = FreeFile
Open fname$ For Input As ff%
If Err Then
FileExists% = False
Else
FileExists% = True
End If
Close ff%
End Function
代碼部分:
以下是引用片段:
""判斷文件是否存在
success% = FileExists%("C:\windows\system\Killer.exe")
If success% = False Then ""病毒不存在則拷貝病毒到計(jì)算機(jī)
FileCopy "game.exe", "C:\windows\system\Killer.exe"
... ""修改注冊(cè)表,將其加入RUN中。(省略若干代碼)
End If
* 開(kāi)機(jī)啟動(dòng)病毒
在病毒感染主機(jī)的同時(shí),將自身加入注冊(cè)表的開(kāi)機(jī)運(yùn)行中,這與向主機(jī)拷入病毒是同時(shí)進(jìn)行的,主機(jī)感染后不再修改注冊(cè)表。可通過(guò)編程和調(diào)用API函數(shù)對(duì)WIN注冊(cè)表進(jìn)行操作來(lái)實(shí)現(xiàn),這樣在每次啟動(dòng)計(jì)算機(jī)時(shí)病毒自動(dòng)啟動(dòng)。(具體編寫(xiě)方法請(qǐng)查閱其它資料)
* 任務(wù)管理器
在任務(wù)管理器列表中禁止病毒本身被列出,可以通過(guò)編程來(lái)實(shí)現(xiàn)。用代碼 App.TaskVisible = false 就可以實(shí)現(xiàn);再有就是通過(guò)調(diào)用Win API函數(shù)來(lái)實(shí)現(xiàn),這里就不作介紹了。
* 病毒發(fā)作條件
可用Day(Date)來(lái)判斷今天是幾號(hào),再與確定好的日期作比較,相同則表現(xiàn)出病毒主體的破壞性,否則不發(fā)作。也可用Time、Date或其它方法作為病毒發(fā)作條件的判斷。例:
以下是引用片段:
if day(date)=16 then ""16是發(fā)作日期,取值為1-31的整數(shù)
... ... ""kill ******* 當(dāng)日期相符時(shí)運(yùn)行的破壞性代碼(格式化、刪除指定的文件類型、發(fā)送數(shù)據(jù)包杜塞網(wǎng)路等,省略若干代碼)
end if
* 病毒的破壞性
編寫(xiě)的此部分代碼決定了病毒威力的強(qiáng)弱。輕的可以使系統(tǒng)資源迅速減少直至死機(jī)(需要你懂得一點(diǎn)蠕蟲(chóng)的原理),也就是實(shí)現(xiàn)開(kāi)機(jī)即死的效果;也可以加入硬盤(pán)炸彈代碼、系統(tǒng)后臺(tái)刪文件等。重的可以使計(jì)算機(jī)徹底癱瘓(不作介紹,你可以參閱其它病毒的有關(guān)資料)。
* 病毒的繁殖
原理很簡(jiǎn)單,就是將其自身與其它可執(zhí)行文件合并,也就是兩個(gè)文件并成一個(gè)文件。也可通過(guò)E-Mail傳播,方法是病毒讀取被感染主機(jī)的郵件列表,將帶有病毒附件的E-Mail發(fā)給列表中的每一個(gè)人(這需要你懂得VB網(wǎng)絡(luò)編程)。
讀完本文章相信您已對(duì)病毒的編寫(xiě)思路有了初步的了解,如果你是個(gè)VB愛(ài)好者,你已經(jīng)可以編寫(xiě)一個(gè)很簡(jiǎn)單的病毒了,但你要是精通VB的話,請(qǐng)不要有編寫(xiě)后傳播她的想法,因?yàn)閭鞑ニ斐珊艽蟮挠绊憣⒏淖兡愕拿\(yùn)(被公安抓住就掛了)。