木马EXE程序自删除C语言代码

BOOL SelfDelete()
{
        TCHAR szModule [MAX_PATH],szComspec[MAX_PATH],szParams [MAX_PATH];
       
        if((GetModuleFileName(0,szModule,MAX_PATH)!=0) &&
                (GetShortPathName(szModule,szModule,MAX_PATH)!=0) &&
                (GetEnvironmentVariable("COMSPEC",szComspec,MAX_PATH)!=0))
        {
                // set command shell parameters
                lstrcpy(szParams," /c del ");
                lstrcat(szParams, szModule);
                lstrcat(szParams, " > nul");
                lstrcat(szComspec, szParams);
               
                // set struct members
                STARTUPINFO                si={0};
                PROCESS_INFORMATION        pi={0};
                si.cb = sizeof(si);
                si.dwFlags = STARTF_USESHOWWINDOW;
                si.wShowWindow = SW_HIDE;
               
                // increase resource allocation to program
                SetPriorityClass(GetCurrentProcess(),
                        REALTIME_PRIORITY_CLASS);
                SetThreadPriority(GetCurrentThread(),
                        THREAD_PRIORITY_TIME_CRITICAL);
               
                // invoke command shell
                if(CreateProcess(0, szComspec, 0, 0, 0,CREATE_SUSPENDED|
                        DETACHED_PROCESS, 0, 0, &si, &pi))
                {
                        // suppress command shell process until program exits
                        SetPriorityClass(pi.hProcess,IDLE_PRIORITY_CLASS);
                        SetThreadPriority(pi.hThread,THREAD_PRIORITY_IDLE);
                       
                        // resume shell process with new low priority
                        ResumeThread(pi.hThread);
                        // everything seemed to work
                                exit(0);
                        return TRUE;
                }
                else // if error, normalize allocation
                {
                        SetPriorityClass(GetCurrentProcess(),
                                NORMAL_PRIORITY_CLASS);
                        SetThreadPriority(GetCurrentThread(),
                                THREAD_PRIORITY_NORMAL);
                                exit(0);
                }
        }

        return FALSE;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值