level 11
已知Windows下自杀代码:
方法1,调用BAT文件。
//向指定文件写入文本。如果文件不存在就创建。
int WriteTextToFile(const char szFileName[], const char *lpszText)
{
FILE *pfile = fopen(szFileName, "w+");
if (pfile == NULL)
return -1;
int nWriteByte = fprintf(pfile, lpszText);
fclose(pfile);
return nWriteByte;
}
void DeleteApplicationSelf()
{
const char szFileName[] = "DeleteBat.bat"; //使用批处理
const char szDeleteBatText[] = "@ echo off\r\ndel %%1\r\ndel %%0";
//创建BAT文件并写入内容
WriteTextToFile(szFileName, szDeleteBatText);
//设置本程序进程基本为实时执行,快速退出。
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
//通知资源管理器不显示本程序,当然如果程序没有真正的删除,刷新资源管理器后仍会显示出来的。
SHChangeNotify(SHCNE_DELETE, SHCNF_PATH, _pgmptr, NULL);
//运行bat文件来删除程序
ShellExecute(NULL, "open", "DeleteBat.bat", _pgmptr, NULL, SW_HIDE);
ExitProcess(0);
}
调用起来非常方便:直接一个DeleteApplicationSelf()就完成了任务。I
2013年10月31日 02点10分