/*一个目录中存在一个文件名非法的文件,在没删除这个文件之前是无法删除其父文件夹的。
利用这一原理我们可以在 autorun.inf 文件夹中特意建立一个文件名非法的文件,
而且这个文件名大家可以自己取,这样就算病毒知道这里面有这个这种怪异的文件,
由于不知道其原来的文件名,也就无法对其进行删除,进而也无法删除
autorun.inf 文件夹。*/
#include<iostream>
#include<fstream>
#include <windows.h>
#include<cstdlib>
using namespace std;
int main()
{
 ifstream in_stream;
 //char command[90]=" md F://autorun.inf";
 char command[90]="del F://autorun.inf"; //DOS命令,删除autorun.inf
 char command1[90]="md F://autorun.inf";
 char command2[90]="md F://autorun.inf//bt_novirus....//";
 int DiskCount = 0;
      DWORD DiskInfo = GetLogicalDrives();
      //利用GetLogicalDrives()函数可以获取系统中逻辑驱动器的数量,函数返回的是一个32位无符号整型数据。
      while(DiskInfo)//通过循环操作查看每一位数据是否为1,如果为1则磁盘为真,如果为0则磁盘不存在。
      {
      if(DiskInfo&1)//通过位运算的逻辑与操作,判断是否为1
      {
      ++DiskCount;
      }
      DiskInfo = DiskInfo >> 1;//通过位运算的右移操作保证每循环一次所检查的位置向右移动一位。
      //DiskInfo = DiskInfo/2;
      }
      cout<<"逻辑磁盘数量:"<<DiskCount<<endl;
      //-------------------------------------------------------------------
      int DSLength = GetLogicalDriveStrings(0,NULL);
      //通过GetLogicalDriveStrings()函数获取所有驱动器字符串信息长度。
      char* DStr = new char[DSLength];//用获取的长度在堆区创建一个c风格的字符串数组
      GetLogicalDriveStrings(DSLength,(LPTSTR)DStr);
      //通过GetLogicalDriveStrings将字符串信息复制到堆区数组中,其中保存了所有驱动器的信息。
      int DType;
   int si=0;
   char Type;
      for(int i=0;i<DSLength/4;++i)
      //为了显示每个驱动器的状态,则通过循环输出实现,由于DStr内部保存的数据是A:/NULLB:/NULLC:/NULL,这样的信息,所以DSLength/4可以获得具体大循环范围
      {
      char dir[3]={DStr[si],':','//'};
      cout<<dir;
   DType = GetDriveType(DStr+i*4);
   if(DType == DRIVE_REMOVABLE)
   Type=DStr[si];
      //GetDriveType函数,可以获取驱动器类型,参数为驱动器的根目录
      if(DType == DRIVE_FIXED)
      {
      cout<<"硬盘";
      }
      else if(DType == DRIVE_CDROM)
      {
      cout<<"光驱";
      }
      else if(DType == DRIVE_REMOVABLE)
      {
      cout<<"可移动式磁盘";
      }
      else if(DType == DRIVE_REMOTE)
      {
      cout<<"网络磁盘";
      }
      else if(DType == DRIVE_RAMDISK)
      {
      cout<<"虚拟RAM磁盘";
      }
      else if (DType == DRIVE_UNKNOWN)
      {
      cout<<"未知设备";
      }
      cout<<endl;
      si+=4;
      }
  command[4]=Type;   //实际盘符取代F盘符
  command1[3]=Type;
  command2[3]=Type;
  system(command);
  system(command1);//建立 autorun.inf 文件夹
  system(command2);//建立一个文件名非法的文件夹
 return 0;
}

自动检测U盘autorun.inf专杀相关推荐

  1. U盘AUTO病毒专杀工具-RavMonEiller-绿色版

    盘AUTO病毒专杀工具-RavMonEiller-绿色版   软件大小:271KB 软件语言:简体中文 应用平台:Win9x/Me/NT/2000/XP/2003 软件授权:免费版 软件类别:系统工具 ...

  2. U盘autorun.inf病毒免疫

    本程序是在硬盘里建一个autorun.inf的文件夹,不可以直接删除.更改,从而达到免疫目的.同学们经常用U盘,但又怕U盘上有病毒,用了这个,也许可以帮你解决这个问题.如果要删除,请点击"取 ...

  3. android 系统自动检测U盘,烧写MAC地址

    最近,需要给设备手动烧写MAC地址.用户插入U盘到盒子,系统自动读取U盘里面的文件,获取到文件内容,即mac地址.再调用底层接口即可完成mac地址的烧写.我所需要做的就是检测U盘,读取文件,根据接口返 ...

  4. qt linux下自动检测U盘热插拔

    如果用U盘来更新软件,需要先删除当前的可执行文件,但是如果删除之后,复制失败的话会导致后续没有文件可以运行了.一个方法是将新的可执行文件放到另一个目录中,当copy成功后修改linux的启动文件,然后 ...

  5. 系统自动登录及盘符无法双击打开问题处理

    1.如何让系统自动登录?(windows 2k/xp/2003) 找开注册表编辑器,找到HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENT ...

  6. window安全小知识1——autorun.inf相关知识

    1.autorun.inf的作用 autorun.inf是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件,或者改变磁盘的图标等. 2.autorun.inf的例子和 ...

  7. 【转】U盘病毒autorun.inf的原理及查杀经验

    ******这是转载自别人博客的一篇文章,我也中了不止一次autorun.inf病毒,现将此文奉献出来,谢谢原作者的辛苦劳动!链接: ***************************       ...

  8. U盘使用技巧:U盘自动启运行应用程序(autorun.inf无法运行终极解决方案)

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  9. autorun.inf U盘/光盘自动运行功能 完全操作手册

    autorun.inf 是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件.但是近几年出现了用autorun.inf文件传播木马或病毒,它通过使用者的误操作让目标程序 ...

最新文章

  1. springboot配置ssl-pfx
  2. RH134 UNIT5
  3. C++N queensN皇后的优化算法(附完整源码)
  4. python装饰器传递参数_如何将额外的参数传递给Python装饰器?
  5. linux权限sudo和su,Linux su和sudo命令的区别,并获得root权限
  6. android变量要不要附空值,android-如何在使用Parcelable时序列化空值
  7. java 日历工具_java中强大的时间处理工具:Calendar类(日历类)
  8. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 所有的基础数据都可以恢复删除...
  9. 在java中转义符 n代表什么_在Java中,表示换行符的转义字符是()。 A.\nB.\fC.n D.\ddd...
  10. MySQL授权root
  11. 计算机组成原理总结及知识网图
  12. Python制作GUI小软件,VIP电影输入链接就能看。
  13. 基于MediaTek_ApSoC_SDK_4320_20150414 编译mt7621 的uboot
  14. Qt实现读取BIN文件
  15. VS 利用Picture Control的Bitmap属性显示一张图片
  16. 【转载】VLOOKUP函数多条件查询 VLOOKUP三个条件查询
  17. ArcGIS模型构建器前提条件的应用(附省界县点练习数据)
  18. Mandelbrot图像
  19. Qt渲染视频常见问题(视频渲染窗口上子窗口设置透明出现阴影问题、主窗口缩放导致视频渲染窗口部分出现视频闪烁问题)
  20. 《绘王K28开箱测评》数位板

热门文章

  1. 2020年平均工资出炉 IT行业超17万居首
  2. 【学习记录】Figma入门使用
  3. mac Security CRT 破解
  4. CC2592RGVR低功耗2.4g无线芯片规格介绍
  5. IDEA无网络创建springboot项目
  6. 医疗器械安全要求检查GB9706.1-2020标准注册检报告_安规性能试验新版GB9706.1-2020风险管理要求
  7. Managing profitable customer relationships
  8. 使用代理IP的注意事项
  9. ZED相机使用记录(一):利用ZED SDK使用python完成局域网内的远程视频(视频流)传输
  10. 盘点 Oracle 11g 中新特性带来的10大性能影响