网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月10日漏签0天
红客吧 关注:138,525贴子:688,252
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回红客吧
>0< 加载中...

TC写的,病毒扫描修复程序源代码.

  • 只看楼主
  • 收藏

  • 回复
  • 狐狸爱刺猬
  • 路过
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define VALLEN 2   
#include"stdio.h"   
#include"dir.h"   
#include"string.h"   
#include"dos.h"   
FILE *fp;   
struct ffblk ffb,dirment;   
char driver,curdiver,path[MAXDIR],curpath[MAXDIR];   
unsigned char curval[VALLEN],saveval[VALLEN];   
int p,status=0;   
void pathm(void);   
void dirm(void);   
void scan(void);   
void log(void);   
main(int argc,char *argv[])   
{   
if(!stricmp(argv[2],"/b")||!stricmp(argv[2],"/B"))   
status=0;   
else if(!stricmp(argv[2],"/s")||!stricmp(argv[2],"/S"))   
status=1;   
curdriver=getdisk();   
getcwd(curpath,MAXDIR);   
driver=toupper(argv[1][0])-'A';   
setdisk(driver);   
chdir(argv[1]);   
strcpy(dirment.ff_name,argv[1]);   
pathm();   
setdisk(curdriver);   
chdir(curpath);   
exit(0);   
}   

void pathm()   
{   
dirm();   
getcwd(path,MAXDIR);   
p=findfirst("*.*",%dirment,0x3f);   
if(!p&&dirment.ff_name[0]=='.')   
{   
p=findnext(&dirment);   
p=findnext(&dirment);   
}   
while(!p)   
{   
if((dirment.ff_attrib&0x10)==FA_DIREC)   
{   
chdir(dirment.ff_name);   
dirm();   
chdir(path);   
}   
p=findnext(&dirment);   
}   
}   

void dirm()   
{   
int done;   
printf("Scanning directory %s\n",dirment.ff_name);   
done=findfirst("*.*",&ffb,0);   
while(!done)   
{   
if(strstr(ffb.ff_name,".COM")||strstr(ffb.ff_name,".EXE"))   
{   
fp=fopen(ffb.ff_name,"rb+");   
switch(status)   
{   
case 0:log();break;   
case 1:scan();break;   
}   
}   
done=findnext(&ffb);   
}   
}   

void scan()   
{   
int i;   
printf("Scanning %s\n",ffb.ff_name);   
fseek(fp,1,SEEK_SET);   
fread(curval,VALLEN,1,fp);   
fseek(fp,VALLEN,SEEK_END);   
fread(saveval,VALLEN,1,fp);   
for(i=0;i<VALLEN;i++)   
if(curval[i]!=saveval[i])   
{   
printf("File %s was changed!\n",ffb.ff_name);   
break;   
}   
fclose(fp);   
}   

void log()   
{   
fseek(fp,1,SEEK_SET);   
fread(curval,VALLEN,1,fp);   
fseek(fp,0,SEEK_END);   
fwrite(curval,VALLEN,1,fp);   
fclose(fp);   
printf("%s loginned!\n",ffb.ff_name);   
}   

程序设计:Kevin'W.Y.J


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回红客吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示