15193643451 发表于 2014-10-23 11:56

C程序 实现自毁代码!

#include <windows.h>
#include <shellapi.h>
#include <shlobj.h>

BOOL SelfDel()
{
    SHELLEXECUTEINFO sei;
    TCHAR szModule ,szComspec,szParams ;
   
    // 获得自身文件名. 获取cmd的全路径文件名
    if((GetModuleFileName(0,szModule,MAX_PATH)!=0) &&
      (GetShortPathName(szModule,szModule,MAX_PATH)!=0) &&
      (GetEnvironmentVariable("COMSPEC",szComspec,MAX_PATH)!=0))
    {
      // 设置命令参数.
      lstrcpy(szParams,"/c del ");
      lstrcat(szParams, szModule);
      lstrcat(szParams, " > nul");
      
      // 设置结构成员.
      sei.cbSize = sizeof(sei);
      sei.hwnd = 0;
      sei.lpVerb = "Open";
      sei.lpFile = szComspec;
      sei.lpParameters = szParams;
      sei.lpDirectory = 0;      sei.nShow = SW_HIDE;
      sei.fMask = SEE_MASK_NOCLOSEPROCESS;
      
      // 创建cmd进程.
      if(ShellExecuteEx(&sei))
      {
            // 设置cmd进程的执行级别为空闲执行,使本程序有足够的时间从内存中退出.
            SetPriorityClass(sei.hProcess,IDLE_PRIORITY_CLASS);

            // 将自身进程的优先级置高
            SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS);
            SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL);
            
         // 通知Windows资源浏览器,本程序文件已经被删除.
            SHChangeNotify(SHCNE_DELETE,SHCNF_PATH,szModule,0);
            return TRUE;
      }
    }
    return FALSE;
}
int main()
{
    SelfDel();
    }

黑龍 发表于 2014-10-23 12:35

无图无真相。我日!

yyz219 发表于 2014-10-23 12:45

qiuer0508 发表于 2014-10-23 12:51

都是英文。不过好像很厉害的样子

GA゛木子 发表于 2014-10-23 13:20

看不懂的说

sndncel 发表于 2014-10-23 14:29

{:301_978:}我很想知道,楼主想用这个来做什么?

yeelnn 发表于 2014-10-23 16:22

我只想 呵呵一下

beta 发表于 2014-10-23 22:47

C程序 实现自毁代码!好邪恶

ysicing 发表于 2014-10-24 20:42

这个貌似没多大用处吧,不过这个值得鼓励哈
页: [1]
查看完整版本: C程序 实现自毁代码!