RavMon.exe是一个强制不显示系统的隐藏文件的简单病毒,顽固且有备份,涉及到很多操作。

网络安全课上的学习研究成果

运行环境:Windows XP

病毒的特性:分别见两种方式的注释

处理该病毒可以直接写 bat

也可以将 bat改为C++(vb没学过就先不考虑了)

一、批处理

@echo off
cls
echo "杀毒软件正在运行"rem 强制结束 用户名为 当前用户的 svchost.exe这个进程
taskkill /F /FI "username eq %username%" /IM svchost.exerem 删除启动项里的病毒开机自启
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v svchost /f
rem 还原病毒修改的注册表项
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /v CheckedValue /t reg_dword /d 1 /frem 去掉源病毒文件的各项属性
attrib %windir%\mdm.exe -r -h -s
attrib %windir%\SVCHOST.exe -r -h -s
attrib %windir%\SVCHOST.ini -r -h -srem 强制删除源病毒文件
del %windir%\mdm.exe
del %windir%\SVCHOST.exe
del %windir%\SVCHOST.inirem 删除其它分区的病毒文件
for %%a in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (for %%b in (RavMon.exe,AutoRun.inf) do (if exist %%a:\%%b (attrib %%a:\%%b -s -r -hdel %%a:\%%b /q))
)pause

二、C++

#include<cstdlib> //system()
#include<iostream>
#include<cstring>
#include<windows.h> //SetFileAttributes() 设置文件属性
#include<io.h> //access()using namespace std;int main() {cout << "--------------------Anti-virus software is running--------------------" << endl;//进程处理复杂,而且 目前找不到“获取进程的用户名的方法”,遂用命令行代替system("taskkill /F /FI \"username eq %username%\" /IM svchost.exe");//-------------------任务一:删除病毒注册表开机自启项-------------------//system("reg delete HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v svchost /f");HKEY hKEY;//一个句柄//RegOpenKeyEx() 打开指定的注册表项。//如果函数成功,则返回值为 ERROR_SUCCESSif (ERROR_SUCCESS ==RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE,&hKEY)) {// 删除 Run 子键下键值 SVCHOSTif (ERROR_SUCCESS == RegDeleteValue(hKEY, "SVCHOST")) {printf("删除键值 SVCHOST 成功\n");}}RegCloseKey(hKEY);//-------------------任务二:修改文件夹注册表CheckedValue显示项-------------------//system("reg add HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL /v CheckedValue /t reg_dword /d 1 /f");char value[4] = {01, 00, 00, 00};//要赋予注册表CheckedValue的二进制值if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL",0, KEY_SET_VALUE, &hKEY)) {if (ERROR_SUCCESS == RegSetValueEx(hKEY, "CheckedValue", 0, REG_DWORD, (BYTE *) value, 4)) {printf("修改键值 CheckedValue 成功\n");}}RegCloseKey(hKEY);//-------------------任务三:解除病毒“只读”、“隐藏”、“系统”的文件属性,并删除C:\Windows下的病毒文件-------------------//   system("attrib C:\\Windows\\mdm.exe -r -h -s");// system("attrib C:\\Windows\\SVCHOST.exe -r -h -s");// system("attrib C:\\Windows\\SVCHOST.ini -r -h -s");const char *file1 = "C:\\Windows\\MDM.EXE";const char *file2 = "C:\\Windows\\SVCHOST.exe";const char *file3 = "C:\\Windows\\SVCHOST.ini";//“只读”、“隐藏”、“系统”、“存档”为文件的四种基本属性。//  FILE_ATTRIBUTE_NORMAL属性 设定为一般 (取消前四种属性)SetFileAttributes(file1, FILE_ATTRIBUTE_NORMAL);SetFileAttributes(file2, FILE_ATTRIBUTE_NORMAL);SetFileAttributes(file3, FILE_ATTRIBUTE_NORMAL);//    system("del %windir%\\mdm.exe");//    system("del %windir%\\SVCHOST.exe");//    system("del %windir%\\SVCHOST.ini");if (remove(file1) == 0) { //如果成功返回 0,失败返回“EOF”( -1)cout << "删除" << file1 << "成功!" << endl;} else {cout << "删除病毒备份" << file1 << "失败" << endl;}if (remove(file2) == 0) {cout << "删除" << file2 << "成功!" << endl;} else {cout << "删除病毒备份" << file2 << "失败" << endl;}if (remove(file3) == 0) {cout << "删除" << file3 << "成功!" << endl;} else {cout << "删除病毒备份" << file3 << "失败" << endl;}//-------------------任务四:删除病毒在每个盘根目录下的备份-------------------//  system("for %%a in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (for %%b in (RavMon.exe,AutoRun.inf) do (if exist %%a:\\%%b (attrib %%a:\\%%b -s -r -h)))");//    system("for %%a in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (for %%b in (RavMon.exe,AutoRun.inf) do (if exist %%a:\\%%b (del %%a:\\%%b /q)))");string file4 = "C:\\RavMon.exe";string file5 = "C:\\AutoRun.inf";for (char c = 'C'; c <= 'Z'; ++c) {//0是a, 2是c, 25是zconst string s = string(1, c); //string( size_type length, char ch ); 即length个chfile4.replace(0, 1, s);//循环 替换盘符file5.replace(0, 1, s);//cout<<file4<<" "<<file5<<endl;if (access(file4.c_str(), 0) == 0) { //判断 RavMon.exe 是否存在SetFileAttributes(file4.c_str(), FILE_ATTRIBUTE_NORMAL);//设置文件属性remove(file4.c_str());cout << "删除" << file4 << "成功!" << endl;}if (access(file5.c_str(), 0) == 0) { //判断 AutoRun.inf 是否存在SetFileAttributes(file5.c_str(), FILE_ATTRIBUTE_NORMAL);//设置文件属性remove(file5.c_str());cout << "删除" << file5 << "成功!" << endl;}}cout << endl << "按回车结束" << endl;system("pause");
}

三、运行结果

①、批处理方式

②、C++方式(操作其实都一样,只不过C++在调试的时候多了很多输出)

针对于病毒 RavMon.exe 的 病毒专杀相关推荐

  1. 行为恶劣的U盘病毒OSO.exe分析与查杀

    病毒名:Worm.Pabug.ck 大小:38,132 字节 MD5:2391109c40ccb0f982b86af86cfbc900 加壳方式:FSG2.0 编写语言:Delphi 传播方式:通过移 ...

  2. 用DOS批命令写的各种病毒专杀集成---推荐收藏

    @echo off title 各种病毒清理专杀 echo ********************************************************************** ...

  3. 熊猫烧香专杀工具的编写

    文章目录 熊猫烧香专杀工具 一.终止病毒的进程 终止进程的思路: 二.删除文件 三.修改注册表,删除启动项 下面来回顾一下分析的熊猫烧香: 熊猫烧香专杀工具 (注:本篇文章是参考了其他的一些技术文章) ...

  4. 给WinXP和Vista增加启动专杀功能

    现在很多恶性病毒须要借助专杀工具进行查杀,但是有些病毒却会自动禁止专杀工具运行.对这些顽固的病毒,我们常常要借助其他系统(如DOS或PE)来查杀.实际上,专杀工具就是一个能删除病毒文件的批处理文件,理 ...

  5. 威金病毒、维金病毒、Viking、logo1_.exe专杀 vdll.dll、logo1_.exe、rundl132.exe、_desktop.ini、、0Sy.exe、图标变花...

    威金病毒.维金病毒.Viking.logo1_.exe专杀 vdll.dll.logo1_.exe.rundl132.exe._desktop.ini..0Sy.exe.图标变花 Windows目录下 ...

  6. OSO.EXE病毒专杀工具

    oso.exe是一个典型的U盘病毒,典型特征就是在硬盘的每个盘下面生成autorun.inf和oso.exe文件,并在硬盘右键出现AUTO,并在系统盘下生成可执行文件 c:/windows/syste ...

  7. wsctf.exe病毒专杀

    wsctf.exe病毒专杀 中了病毒wsctf.exe和explorer.exe,一般解决: --按"Ctrl+Alt+Del"调出Windows任务管理器,结束掉EXPLORER ...

  8. ntsd.exe病毒专杀--手工清除

    今天总感觉电脑中毒了,因为任务管理器打不开了,还提示ntsd.exe应用程序错误,郁闷,赶紧下杀毒软件杀,杀--,我首先想到了卡巴,结果没用了,我又下了360安全卫士,还是没用,汗---杀毒软件都打不 ...

  9. rundl132.exe,logo1_.exe 病毒专杀工具

    重要提示:本人测试无效(测试时间:20061115) 最后做法:系统重新安装.再用瑞星杀毒工具 rundl132.exe,logo1_.exe 病毒专杀工具 中毒了,中毒了!rundll.exe ru ...

最新文章

  1. Springboot总结,核心功能,优缺点
  2. puppet 深入讲解
  3. 网站路径及文件路径问题
  4. python内置函数有哪些_Python集合有哪些内置函数可以使用,这些内置函数有什么功能...
  5. php 登录注册api接口代码
  6. S5 Linux信息显示与搜索文件命令
  7. Android中Http网络请求库框架Volley和Asnyc-http的使用---第三方库学习笔记(一)
  8. Andriod之使用极光推送自定义消息打造个性的消息推送效果
  9. 方格取数 (Standard IO)
  10. pytorch之C++实现自定义算子
  11. DevOps使用教程 华为云(6)文档报告 项目进度 会议记录 迭代评审
  12. button按钮的四种监听及实例
  13. 【POJ 1456】Supermarket【并查集】
  14. PLC对接SQL数据库,实现数据采集和边缘计算
  15. 第一个包不是SYN包?用科来数据包分析软件排除一次故障。
  16. vscode的工作区的问题
  17. @UPC 6605 @福建OI2018 [FJOI2018] @ 洛谷 P4578 所罗门王的宝藏 (矩阵行列规律)
  18. 加入飞桨特殊兴趣小组(PPSIG),点亮AI时代的梦想
  19. u8信息服务器,u8服务器和数据库详细
  20. java海马模拟android,Android ADB连接海马玩模拟器

热门文章

  1. 关于最大公约数与最大公倍数的相关问题(zufeoj)
  2. 神经网络算法应用场景,视觉算法具体是做什么
  3. Flutter 新手之路,报错记录01
  4. Spring从入门到精通--(1)Spring框架概述
  5. 电商运营:数据分析的5大思维和8个指标
  6. Windows无法连接到System Event Notification Service服务问题解决
  7. 八年程序员之书籍篇--OS/Linux(二):Kernel
  8. 2022-1-9 《聪明的投资者》学习笔记-20.作为投资中心思想的“安全边际“--稳健投资的秘密
  9. c语言程序中函数调用本身叫什么,在C语言中函数调用方式有什么区别
  10. CRS-6706 CRS-4000