文章作者:无敌最寂寞[E.S.T]
信息来源:邪恶八进制 中国
大家都知道有很多的程序(有其是一些杀毒软件)在无法删除某个文件的时候,可以在重启后再删除。。。
其实实现的方法很简单,完全就在MoveFileEx函数身上。。。
具体方法可以参阅MSDN。
其实在重启后删除一个文件早在windows 98/me上就有方法了,就是在WININIT.INI文件中的文件都会在系统重新启动后被删除。。。
在2000/xp/2003下就是使用MoveFileEx函数了。。。
代码如下:
引用:
#include <windows.h>
#include <stdio.h>
void usage(char*);
int main(int argc,char* argv[])
{
HANDLE hfile;
WIN32_FIND_DATA findfiledata;
if(argc!=2)
usage(argv[0]);
printf("\t\t Delete File On Reboot\n\n");
printf("\t\t 无敌最寂寞@EST\n\n");
printf("Now Checking %s if it exist ..",argv[1]);
hfile=FindFirstFile(argv[1],&findfiledata);
if(hfile=INVALID_HANDLE_VALUE)
{
printf("ERROR!file may not exist!\n");
return 0;
}
printf("OK!\n");
FindClose(hfile);
printf("Now trying to mark the file %s to delete on reboot ...",argv[1]);
if(!MoveFileEx(argv[1],NULL,MOVEFILE_DELAY_UNTIL_REBOOT))
{
printf("ERROR!mark file failed %d\n",GetLastError());
return 0;
}
printf("OK!\n");
printf("\n\nNOW you can wait until reboot to delete your specified file!\n");
return 0;
}
void usage(char* name)
{
printf("\t\t Delete File On Reboot\n\n");
printf("\t\t written by 无敌最寂寞@EST\n\n");
printf("\t\t work on windows 200/xp/2003\n\n");
printf("Usage:\n");
printf("\t %s <full-path-file-name>\n",name);
exit(0);
代码是很简单的。。我就不做解释了。。。
我编译好的程序可以在下面下载。。。
这种重启后删除在入侵的时候也是很有用的。。。至于怎么用。。。就不告诉你!~~:-)