360杀毒与金山毒霸(杀软也崩溃,360、金山毒霸)
本文以奇特的思路lmhack,对国内安全产商的产品进行测试。结果,全部阵亡......
利用W版文件函数lmhack创建超深路径目录,并在目录中沿途放置病毒,以测试各大杀软扫描器。
// 最大目录深度测试
// 用于测试扫描目录会不会崩溃
#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("创建成功:%ls\n", dirname);
}
else
{
printf("创建失败:%ls 此时的i==%d\n", dirname, i);
break;
}
StringCbPrintfW(virusname, (32767 + 100) * 2, L"%sv", dirname);
if (CopyFileW(L"c:\\virus", virusname, TRUE))
{
printf("copy success! i==%d\n", 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安全卫士
在扫了大概一小lmhack时四十七分钟后,崩溃了,那一瞬间我没捕捉到。 可以看到资源监视器中的下降波形,是它崩溃的形状。
卡巴斯基
扫描到1068个之后卡住,然后看着everything中对象数目从32735龟速下降:
32735-1068=31667, 看它到了这个数之后还会不会继续减少吧。
可以看到卡巴只扫描1068级目录。
火绒,瑞星瞬间崩溃
腾讯电脑管家查杀131级目录,卡巴斯基查杀1068级目录
360杀毒扫描2000多个文件后卡住, 实时监控崩溃
360安全扫描1小时47分钟后崩溃
金山毒霸扫描2小时之后崩溃