SDK 实现程序自删除

原创 2007年10月14日 12:40:00
BOOL SelfDelete()
...{
    TCHAR szModule [MAX_PATH],
          szComspec[MAX_PATH],
          szParams [MAX_PATH];

    
// get file path names:
    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, 000,CREATE_SUSPENDED|
                    DETACHED_PROCESS, 
00&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
            return TRUE;
        }

        
else // if error, normalize allocation
        ...{
            SetPriorityClass(GetCurrentProcess(),
                             NORMAL_PRIORITY_CLASS);
            SetThreadPriority(GetCurrentThread(),
                              THREAD_PRIORITY_NORMAL);
        }

    }

    
return FALSE;
}
  

程序实现自我删除的七种方法

程序实现自我删除的七种方法
  • bjtbjt
  • bjtbjt
  • 2014-08-14 12:04:50
  • 4566

程序自删除方法大总结

程序自删除方法大总结 icyfoxlovelace/冰狐浪子   程序的自删除早已经不是什么新鲜的话题了,对于各位大虾来说是更是比较容易的事情,但想想自己刚学时遇到的种种错误,我觉得有必要把自己所知道...
  • pll621
  • pll621
  • 2005-11-29 22:49:00
  • 1187

程序自删除的一种实现方式

/********************************************************************************** * 程序描述: 本程序为Win...
  • qq125096885
  • qq125096885
  • 2016-03-04 14:41:55
  • 223

程序的自删除

  程序的自删除已经不是什么新鲜的话题了,它广泛运用于木马、病毒中。试想想,当你的程序还在运行中(通常是完成了驻留、感染模块),它...
  • netwindmiss
  • netwindmiss
  • 2006-04-22 10:12:00
  • 789

自删除程序的研究及实现

Self Delete 自删除 CreateRemoteThread Invalid access to memory location FILE_FLAG_DELETE_ON_CLOSE ...
  • panda1987
  • panda1987
  • 2010-12-09 10:57:00
  • 4419

SDK 实现程序自删除

BOOL SelfDelete()...{    TCHAR szModule [MAX_PATH],          szComspec[MAX_PATH],          szParams ...
  • iiprogram
  • iiprogram
  • 2007-10-14 12:40:00
  • 705

实验: 程序自删除

最初是按照 FILE_FLAG_DELETE_ON_CLOSE的线索做的实验,  后来发现原始exe可以删除,但是克隆exe删不掉. 原因是进程在运行, 无法被删除.   后来在codeproj...
  • LostSpeed
  • LostSpeed
  • 2011-02-06 22:21:00
  • 1380

程序快速删除自己

讨论了程序执行完成后删除自己的几种方法,重点讲解了在网上比较少见的一种新的删除自身的思路。值得一看哟。原文见:http://www.iwebtrados.com.cn/post/65.html1、介绍...
  • ljc_zy
  • ljc_zy
  • 2009-08-08 22:52:00
  • 1731

android studio开发环境配置(指定SDK及卸载)附安装文件网盘地址(win7 64位)

android studio安装文件下载 安装及配置,一些错误处理 卸载 导入工程 before: 之前电脑上安...
  • wojiaopanpan
  • wojiaopanpan
  • 2015-12-02 13:27:36
  • 11787

C#实现删除自身程序

因为课程需要,需要实现程序运行时删除自身的效果,但是程序运行时是受到系统保护的,所以只能想别的方法 。   思路是:在本程序未关闭时调用其他程序,使被调用的程序在源程序关闭后删除程序本身。   使...
  • acingdreamer
  • acingdreamer
  • 2017-02-18 10:49:42
  • 3782
收藏助手
不良信息举报
您举报文章:SDK 实现程序自删除
举报原因:
原因补充:

(最多只允许输入30个字)