熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

用Delphi來編寫蠕蟲病毒淺析[1]

2013-11-23 17:36:15  來源: Delphi編程 
前言

  可能大家想到病毒第一反應就是可能是用asm來編寫或者是vbsript而高級語言如delphi就好象不能編寫一樣其實事實並不是這個樣子的只要我們花一些時間照樣可以寫出簡短而高效的病毒程序來一點也不輸那些用匯編寫出來的程序哦

  一個病毒程序首先要短小我們的目標是經過壓縮後控制在k以下用過delphi的朋友都知道如果在uses裡面加入formsclasses等就會使目標文件非常的大所以在我們的程序裡我們要盡可能的不用這些庫我們只用windowswinsockshellapisysutils(這個裡面包含了一些常用的函數比如對文件的操作對字符串的操作如果用自己的程序來代替目標文件會更加的小)

  首先我們知道一個病毒程序一般都分下面三個模塊

  ①保護模塊

  ②感染模塊

  ③發作模塊

  下面我們就從這三個模塊開始分別實現他們的代碼

  一)保護模塊

  一般我們都是把自身拷貝到系統的一些目錄裡比如%systemroot%那麼我們首先要取得這些特定的目錄的路徑sdk裡面給我們提供了一個這樣的函數GetSystemDirectory

UINT GetSystemDirectory(
LPTSTR lpBuffer // 存放返回的字符串的緩沖區
UINT uSize // 上面的緩沖去的長度
);
  相關的函數還有GetWindowsDirectory可以得到%windows%的路徑

  得到了系統的目錄後第二步就是拷貝文件了sdk為我們提供了一個函數copyfile

BOOL CopyFile(
LPCTSTR lpExistingFileName // 源文件的路徑
LPCTSTR lpNewFileName // 目標文件的路徑
BOOL bFailIfExists // 這是一個標志如果目標文件已經存在是否強制覆蓋
);
  拷貝文件完畢後我們來把這個文件設置為系統和隱藏那麼一般情況是看不見該文件的除非選取查看所有文件以及顯示受保護文件 同樣介紹一個函數SetFileAttributes

BOOL SetFileAttributes(
LPCTSTR lpFileName // 需要設置的文件的文件名
DWORD dwFileAttributes // 設置的值
);
  我們這裡要設置為隱藏和系統那麼就為第二個參數傳遞FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM

  下面就是最重要的讓該文件開機自動運行我們一般都是寫注冊表首先用RegOpenKey函數來打開一個鍵

 
LONG RegOpenKey(
HKEY hKey // 主鍵比如HKEY_LOCAL_MACHINE
LPCTSTR lpSubKey // 跟隨的subkey
PHKEY phkResult // 存放函數返回這個打開的鍵的句柄
);
  得到了HKEY後就可以用regsetvalueex來向該鍵寫具體的值了

LONG RegSetvalueEx(
HKEY hKey // 這個就是剛才我們得到的句柄
LPCTSTR lpvalueName // 鍵名的地址
DWORD Reserved // 一般設置為
DWORD dwType // 我們寫的鍵的類型字符串為REG_SZ
CONST BYTE *lpData // 鍵值的地址
DWORD cbData // 寫入的鍵值的長度
);

[]  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/24755.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.