用Delphi来编写蠕虫病毒浅析

用Delphi来编写蠕虫病毒浅析,第1张

用Delphi来编写蠕虫病毒浅析,第2张

前言:

你可能会想到病毒,你的第一反应可能是用asm或者VBsript写的,而Delphi等高级语言好像写不出来。事实上,并非如此。只要花点时间,还是能写出短小高效的病毒程序,一点也不输那些用汇编写的。

一个病毒程序一开始要短,我们的目标是压缩后控制在30k以下。用过delphi的朋友都知道,如果窗体,类等。被添加到uses中,目标文件将会非常大。所以在我们的程序中,尽量不要使用这些库。我们只用Windows,Winsock,ShellAPI,SysUtils(这个包含了一些常用的函数,比如对文件和字符串的操作。如果您使用自己的程序,目标文件会更小)

首先,我们知道一个病毒程序一般分为以下三个模块:

①保护模块;

②感染模块;

③癫痫模块。

先从这三个模块入手,分别实现它们的代码。

1)保护模块。

通常,我们将自己复制到系统中的一些目录,比如%systemroot%。因此,首先,我们需要获得这些特定目录的路径。sdk为我们提供了类似GetSystemDirectory的功能:

UINT get system directory(
lptstr LP buffer,//返回字符串的缓冲区
UINT uSize //以上缓冲长度
);

相关函数也有GetWindowsDirectory来获取%windows%的路径。

得到系统的目录后,第二步是复制文件。Sdk为我们提供了一个函数副本文件:

BooCopyfile(
LPCTSTR lpexistingfilename,//源文件路径
LPCTSTR lpNewFileName,//目标文件路径
boolbfalifeexists//这是一个标志,如果目标文件已经存在,是否强制覆盖
);

复制完文件后,我们把文件设置为系统和隐藏,这样文件一般是看不到的,除非你选择查看所有文件,显示受保护的文件。类似地,引入一个函数SetFileAttributes:

l setfile attributes(
lpctstr lpfilename,//要设置的文件的文件名
DWORD dwFileAttributes //设置的值。
);

如果我们想在这里将其设置为hidden和system,我们将为第二个参数传递file _ attribute _ hidden+file _ attribute _ system。

以下是最重要的。让文件自动启动并运行。一般来说,我们写注册表。首先,我们使用RegOpenKey函数打开一个密钥。


long regopen key(
HKEY HKEY,//主键,比如HKEY _ local _ machine
lpctstr LP子键,//下面的子键
PHKEY phkResult // deposit函数返回这个打开的键的句柄
)

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用Delphi来编写蠕虫病毒浅析

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情