一个半成品小病毒专杀

最近一个文件夹伪装病毒在同学的电脑内肆虐啊,动手写了一个小时就写不下去了。不想写清除部分,只有检测部分的代码,其实检测出来的时候,顺手就可以杀掉了。最近考试耗费的时间多,懒得写了,先弄这么多吧。以后有时间再说。

 1 bool VirKiller::CheckVirExists(void)
 2 {
 3     dwNumOfDrives = GetLogicalDriveStrings(0, NULL)*sizeof(TCHAR);
 4     if (dwNumOfDrives == 0)
 5     {
 6         ShowMessage(TEXT("无法获得驱动器信息,检测可能无法获得正确结果!"), TEXT("异常:"));
 7         return false;
 8     }
 9 
10     hHeap = GetProcessHeap();
11     lpDrivers = (LPWSTR)HeapAlloc(hHeap, HEAP_ZERO_MEMORY,dwNumOfDrives);
12     GetLogicalDriveStrings(HeapSize(hHeap, 0, lpDrivers), lpDrivers);
13 
14     while (*lpDrivers != 0)
15     {
16         bool bIsExist = HideFileExist(lpDrivers, ScanVir);
17         if (bIsExist)
18         {
19             return bIsExist;
20         }
21 
22         lpDrivers = _tcschr(lpDrivers, 0) + 1;
23     }
24 
25     return false;
26 }
27 
28 
29 bool VirKiller::KillVirProc(void)
30 {
31     while (*lpDrivers != 0)
32     {
33         bool bIsExist = HideFileExist(lpDrivers, ScanVir);
34         if (bIsExist)
35         {
36             return bIsExist;
37         }
38 
39         lpDrivers = _tcschr(lpDrivers, 0) + 1;
40     }
41 
42     return false;
43 }
44 
45 int VirKiller::ShowMessage(LPCTSTR lpContext, LPCTSTR lpTitle)
46 {
47     MessageBox(NULL, lpContext, lpTitle, MB_OK | MB_ICONINFORMATION);
48     return 0;
49 }
50 
51 bool VirKiller::HideFileExist(LPWSTR lpDrive, method i)
52 {
53     CString strVirName;
54     CFileFind cVirFinder;
55 
56     CString strWildcard(lpDrive);
57     strWildcard += _T("*.*");
58 
59     BOOL bFile = cVirFinder.FindFile(strWildcard);
60     while(bFile)
61     {
62         bFile = cVirFinder.FindNextFile();
63 
64         if (cVirFinder.IsDots())
65             continue;
66 
67         if (cVirFinder.IsDirectory() && cVirFinder.IsHidden())
68         {
69             strVirName=cVirFinder.GetFilePath();
70             if("\\" == strVirName.Right(1))
71             {
72                 strVirName = strVirName.Left(strVirName.GetLength()-1);
73             }
74 
75             strVirName += ".exe";
76             //ShowMessage(strVirName,TEXT("FileName"));
77 
78             if((_waccess(strVirName,0)) != -1)
79             {
80                 //ShowMessage(TEXT("There is a virus in here!"),TEXT("IsExist"));
81                 return true;
82             }
83         }
84     }
85 
86     return false;
87 }

生成的VirKiller类:

 1 bool VirKiller::CheckVirExists(void)
 2 {
 3     dwNumOfDrives = GetLogicalDriveStrings(0, NULL)*sizeof(TCHAR);
 4     if (dwNumOfDrives == 0)
 5     {
 6         ShowMessage(TEXT("无法获得驱动器信息,检测可能无法获得正确结果!"), TEXT("异常:"));
 7         return false;
 8     }
 9 
10     hHeap = GetProcessHeap();
11     lpDrivers = (LPWSTR)HeapAlloc(hHeap, HEAP_ZERO_MEMORY,dwNumOfDrives);
12     GetLogicalDriveStrings(HeapSize(hHeap, 0, lpDrivers), lpDrivers);
13 
14     while (*lpDrivers != 0)
15     {
16         bool bIsExist = HideFileExist(lpDrivers, ScanVir);
17         if (bIsExist)
18         {
19             return bIsExist;
20         }
21 
22         lpDrivers = _tcschr(lpDrivers, 0) + 1;
23     }
24 
25     return false;
26 }
27 
28 bool VirKiller::KillVirProc(void)
29 {
30     while (*lpDrivers != 0)
31     {
32         bool bIsExist = HideFileExist(lpDrivers, ScanVir);
33         if (bIsExist)
34         {
35             return bIsExist;
36         }
37 
38         lpDrivers = _tcschr(lpDrivers, 0) + 1;
39     }
40 
41     return false;
42 }
43 
44 int VirKiller::ShowMessage(LPCTSTR lpContext, LPCTSTR lpTitle)
45 {
46     MessageBox(NULL, lpContext, lpTitle, MB_OK | MB_ICONINFORMATION);
47     return 0;
48 }
49 
50 bool VirKiller::HideFileExist(LPWSTR lpDrive, method i)
51 {
52     CString strVirName;
53     CFileFind cVirFinder;
54 
55     CString strWildcard(lpDrive);
56     strWildcard += _T("*.*");
57 
58     BOOL bFile = cVirFinder.FindFile(strWildcard);
59     while(bFile)
60     {
61         bFile = cVirFinder.FindNextFile();
62 
63         if (cVirFinder.IsDots())
64             continue;
65 
66         if (cVirFinder.IsDirectory() && cVirFinder.IsHidden())
67         {
68             strVirName=cVirFinder.GetFilePath();
69             if("\\" == strVirName.Right(1))
70             {
71                 strVirName = strVirName.Left(strVirName.GetLength()-1);
72             }
73 
74             strVirName += ".exe";
75             //ShowMessage(strVirName,TEXT("FileName"));
76 
77             if((_waccess(strVirName,0)) != -1)
78             {
79                 //ShowMessage(TEXT("There is a virus in here!"),TEXT("IsExist"));
80                 return true;
81             }
82         }
83     }
84 
85     return false;
86 }

暂时就写了那么多,也懒得写了。就此作罢,反正后面的工作也很简单了。杀进程,清文件,多了再清理下注册表就ok了。

posted on 2009-07-04 21:40 renzhacheng 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/renzhacheng/archive/2009/07/04/1516965.html

一个半成品小病毒专杀相关推荐

  1. html vb病毒,HTML_用vbs实现的一款Worm.Win32.VB.fw病毒专杀,在写了《Worm.Win32.VB.fw分析与清 - phpStudy...

    用vbs实现的一款Worm.Win32.VB.fw病毒专杀 在写了<Worm.Win32.VB.fw分析与清除方案>后,也没想到要写什么专杀,不过这些天好多同学都说中了这只病毒,我要是一个 ...

  2. html.win32.scipt病毒,用vbs实现的一款Worm.Win32.VB.fw病毒专杀工具

    在写了<Worm.Win32.VB.fw分析与清除方案>后,也没想到要写什么专杀,不过这些天好多同学都说中了这只病毒,我要是一个一个去解决,非忙死我不可!感染范围挺大的!我之前写了一篇&l ...

  3. 了解lpk.dll是什么病毒以及lpk.dll病毒专杀方法

    pk.dll病毒是当下比较流行的一类病毒,而正常系统本身也会存在lpk.dll文件,这足以说明这类病毒的危险性.系统本身的lpk.dll文件位于C:WINDOWSsystem32和C:WINDOWSs ...

  4. lockbit勒索病毒专杀工具,.lockbit勒索病毒数据恢复,lockbit勒索病毒解密处理,数据库恢复

    lockbit勒索病毒专杀工具,.lockbit勒索病毒数据恢复,lockbit勒索病毒解密处理,数据库恢复 目录: lockbit勒索病毒简述 计算机感染lockbit勒索病毒后的表现 lockbi ...

  5. 熊猫烧香病毒专杀及手动修复方案

    编者按:本文介绍了熊猫烧香病毒.熊猫烧香病毒变种的查杀方法,及熊猫烧香病毒的手动清除方案.提供了病毒进程为spoclsv.exe和FuckJacks.exe变种的解决方案,和熊猫烧香病毒专杀工具. 在 ...

  6. OSO.EXE病毒专杀工具

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

  7. 自己动手写个病毒专杀工具

    下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdf 大数据测试过程.策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 此 ...

  8. 杀毒我做主:病毒专杀工具自己编写

    如今病毒木马层出不穷,变种也是一个接一个.反病毒公司以及各大安全公司随着影响很大的病毒的出现都会免费提供病毒专杀工具,这个举措对普通用户来 说确实很有帮助.其实写病毒专杀工具也不像大家想象的那么神秘, ...

  9. wsctf.exe病毒专杀

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

最新文章

  1. java自动生成数据库代码
  2. Mac 技术篇-查看python安装位置,查看java安装位置
  3. docker mysql编辑器_docker官方mysql镜像自定义配置详解
  4. PHP自动压缩CSS文件方法,php 压缩多个CSS文件的实现代码
  5. html主题相册代码,使用html+css+js实现3D相册的详细代码
  6. Photoshop CS3 Dreamwaver教程集合
  7. alter table添加表约束
  8. vlc搭建流媒体转发服务器
  9. xxm php,XXM个人知识管理工具 v6.0.5
  10. Geoserver2.11矢量切片与OL3中的调用展示
  11. 深度学习入门——利用卷积神经网络训练CIFAR—10数据集
  12. python开发数据管理系统客户桌面_实践是最好的老师:给中级 Python 开发人员的 13 个项目构想...
  13. 小眼睛适合大框还是小框眼镜_【图】小眼睛适合什么眼镜框 这个禁忌千万不要犯_小眼睛_伊秀服饰网|yxlady.com...
  14. 亚太数字经济发展联盟 助力民营企业进入数字经济新时代
  15. ReactiveCocoa之一
  16. jdk自带监控工具整理-jstat
  17. html5中将doctype分为几种,HTML!DOCTYPE是什么
  18. 神经网络的运用方法有,神经网络的运用方法是
  19. qq批量登录软件_桔子引流系统qq引流,单人日产1000粉。
  20. 树莓派js调用C语言,SpiderMonkey js中调用c程序

热门文章

  1. 报错“FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disa”
  2. canvas绘制分享商品海报——已完成
  3. 设定lib包下所有的jar到classpath
  4. 随机过程在计算机领域的应用,清华大学出版社-图书详情-《随机过程及其在金融领域中的应用(第2版)》...
  5. andrlid 局域网无线连接设备
  6. react性能优化之memo的作用和memo的坑
  7. stm32驱动ht1621仪表盘显示
  8. Spring中的各种Utils(四):ClassUtils详解
  9. 【MQTT】.Net Core 操作
  10. 【python】爬取正在上映的豆瓣电影信息(etree、xpath)