正文

具有破坏性的C程序2007-03-28 11:41:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lingdlz/24344.html

分享到:

论坛上一网友出的,原帖: 请问大家如何编一个一发现D盘的exe文件就自动删除的程序??做这个东西不是为了破坏,而是为了学校机房的安全,不让学生在下面搞破坏,本人对编程一无所知,哪位好心人士能提供代码或者程序.谢谢   /* 自己以前写过类似的程序,所以发了十几分钟写了个基本上满足LZ   需要的程序.但是真正用于机房还差点,首先应该有个计时器,隔段   时间扫描一遍D盘而不是不停的扫描,其次应该驻留在内存自动运行   而不是放在谁都可以关闭它的地方。不过要我实现所有的这些功能   呵呵…… 总要意思一下吧 !   运行该程序D盘下的所有系统文件,系统目录以及隐藏文件,隐藏目录   只读文件,只读目录会被修改。      注意请在调试时创建临时目录,否则如果D盘下的所有.exe文件被删   除与作者无关 ,使用该程序造成的一切损失与作者无关 。   正常退出该程序请输入 e     编译环境 VC++6.0*/#include <stdio.h>#include <io.h>#include <string.h>#include <direct.h>#include <conio.h>#include <stdlib.h>#define FILE_ATTRIBUTE_DIRECTORY 0x00000010#define FILE_ATTRIBUTE_FILE 0x00000020void    DeleteFile(char *fname){    char *p;    // 如果是.exe文件则删除    p = strstr(fname,".exe");    if((size_t)(p - fname ) == strlen(fname) - 4){        printf("找到匹配文件 %s\n",fname);        if(remove(fname))            printf("文件: %s 删除失败 !\n",fname);        else                        printf("删除文件: %s 完成\n",fname);    }}char    cmd[_MAX_PATH];void    MyDeleteFile(){    struct    _finddata_t  FileInfo;    long    lHandle = 0L;     if((lHandle = _findfirst("*",&FileInfo)) == -1L){        _findclose(lHandle);         return ;     }    do{        // 去除隐藏,系统,只读 属性        sprintf(cmd,"attrib -s -r -h %s",FileInfo.name);        system(cmd);        if( FileInfo.attrib == FILE_ATTRIBUTE_FILE)            DeleteFile(FileInfo.name);        else if(FileInfo.attrib == FILE_ATTRIBUTE_DIRECTORY){             if( FileInfo.name[0] != '.') {                 _chdir(FileInfo.name);                  MyDeleteFile();                _chdir("..");             }        }    }while(!_findnext(lHandle,&FileInfo));    _findclose(lHandle); }int    main(){    if(_chdir("d:\\"))        exit(1);    while(1){        while(!kbhit())            MyDeleteFile();        if(getch() == 'e')            break;    }    return 0;}

阅读(3939) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册