首页
社区
课程
招聘
[求助]有关自删除的问题
发表于: 2007-9-11 10:56 5002

[求助]有关自删除的问题

2007-9-11 10:56
5002
前些天在精华上看到几篇关于自删除的文章,如何在XP SP2下实验不成功呢?
有没有哪位大侠能发一个在XP SP2下能实现自删除的代码,先在这里多谢了!!!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
使用bat文件或者远程线程都可以,代码不给了——免得X来X去~

自己找个自删除的木马服务端拿ida一看便知~
2007-9-11 12:50
0
雪    币: 248
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用bat文件或者远程线程太麻烦了,而好多木马都是加了壳的
2007-9-11 13:32
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
写个驱动hook了MmFlushXXX 然后什么都完事了~
2007-9-11 19:03
0
雪    币: 205
活跃值: (205)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
这是从一本书上看到的。SelfDel1(),SelfDel2()是两种不同的方法。

#include <sys/stat.h>  //加入状态显示头文件.

BOOL SelfDel1()
{
        SHELLEXECUTEINFO sei;
        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))
        {
                // 设置命令参数.
                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;
               
                // 执行shell命令.
                if(ShellExecuteEx(&sei))
                {
            // 设置命令行进程的执行级别为空闲执行,使本程序有足够的时间从内存中退出.
                        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;
}

BOOL SelfDel2()
{
        CStdioFile        file;
        CFileException fileEx;
        TCHAR szDir[MAX_PATH];
           TCHAR szModule[MAX_PATH];

        GetModuleFileName(0, szModule, sizeof(szModule));   // 获得应用程序名.
        GetCurrentDirectory(MAX_PATH, szDir);               // 获得文件的当前目录.

        CString strFilePath=CString(szDir)+"tempDel.bat";   // 临时批处理文件名.

        if(!file.Open(strFilePath,CFile::modeWrite |
                CFile::typeText | CFile::modeCreate,&fileEx))
        {
                #ifdef _DEBUG
                afxDump << "The file could not be opened " << strFilePath<<"\n";
                afxDump << "Cause :"<<fileEx.m_cause << "\n";
                #endif
                return FALSE;
        }
       
        CString strCmdLine1,strCmdLine2;
        strCmdLine1.Format("del %s\n",szModule);
        strCmdLine2.Format("del %%0\n");

        file.WriteString(strCmdLine1);                    // 写删除EXE的命令行.
        file.WriteString(strCmdLine2);                    // 写删除BAT的命令行.
        file.Close();
   
        WinExec(strFilePath,SW_HIDE);                     // 执行自行删除操作.

        return TRUE;
}

void main()
{
        SelfDel1();
}
2007-9-12 09:45
0
雪    币: 248
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有没有用汇编写的呀,C语言我不怎么看得懂
2007-9-15 19:51
0
游客
登录 | 注册 方可回帖
返回
//