为什么 Avira 认为"CoCreateInstance()"是恶意软件?
Why does Avira consider "CoCreateInstance()" function as a malware?
我使用visual studio 2017创建了c++控制台应用程序,它是extract.zip文件。但是,当我运行application.exe文件时,Avira防病毒软件会将我的exe检测为恶意软件。
我发现CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER, IID_IShellDispatch, (void **)&pISD)
函数的实际Avira会产生问题。
为什么Avira将CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER, IID_IShellDispatch, (void **)&pISD)
视为恶意软件?
我的功能:
bool Utils::Unzip2Folder(BSTR lpZipFile, BSTR lpFolder)
{
IShellDispatch *pISD;
Folder *pZippedFile = 0L;
Folder *pDestination = 0L;
long FilesCount = 0;
IDispatch* pItem = 0L;
FolderItems *pFilesInside = 0L;
VARIANT Options, OutFolder, InZipFile, Item;
CoInitialize(NULL);
__try {
if (CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER, IID_IShellDispatch, (void **)&pISD) != S_OK)
return 1;
InZipFile.vt = VT_BSTR;
InZipFile.bstrVal = lpZipFile;
pISD->NameSpace(InZipFile, &pZippedFile);
if (!pZippedFile)
{
pISD->Release();
return 1;
}
OutFolder.vt = VT_BSTR;
OutFolder.bstrVal = lpFolder;
pISD->NameSpace(OutFolder, &pDestination);
if (!pDestination)
{
pZippedFile->Release();
pISD->Release();
return 1;
}
pZippedFile->Items(&pFilesInside);
if (!pFilesInside)
{
pDestination->Release();
pZippedFile->Release();
pISD->Release();
return 1;
}
pFilesInside->get_Count(&FilesCount);
if (FilesCount < 1)
{
pFilesInside->Release();
pDestination->Release();
pZippedFile->Release();
pISD->Release();
return 0;
}
pFilesInside->QueryInterface(IID_IDispatch, (void**)&pItem);
Item.vt = VT_DISPATCH;
Item.pdispVal = pItem;
Options.vt = VT_I4;
Options.lVal = 1024 | 512 | 16 | 4;//http://msdn.microsoft.com/en-us/library/bb787866(VS.85).aspx
bool retval = pDestination->CopyHere(Item, Options) == S_OK;
pItem->Release(); pItem = 0L;
pFilesInside->Release(); pFilesInside = 0L;
pDestination->Release(); pDestination = 0L;
pZippedFile->Release(); pZippedFile = 0L;
pISD->Release(); pISD = 0L;
return retval;
}
__finally
{
CoUninitialize();
}
}
没有真正好的答案。为什么AV系统检测到某些文件为误报。
这种误报大多是基于一些启发式方法。
- 小程序比大程序更有问题
- 与其他DLL的依赖关系较少的程序比具有依赖关系的复杂EXE更有问题
- API函数的某些混合似乎比其他混合更成问题。使用更复杂的API函数和UI似乎问题更少
- 对于AV系统中的这种启发式trao,签名可执行文件的风险较小
- 许多项目(以及公司的签名(都被列入了内部白名单。您的程序未知
此函数肯定不是您使用的唯一API函数。查看Dependens,您会发现更多!
只需将您的exe路径添加到Avira的排除列表中。。。在小型工具的开发阶段,我不得不不止一次这样做。
最后提示:询问Avira并将文件发送给他们。他们可能会改变那里的启发式模式匹配,所以这不再是一个假阳性。
我对阿维拉有过几次这样的影响。
相关文章:
- 为什么瓦尔格林德在不释放恶意内存后没有报告任何问题?
- 用于在并发环境中访问 MMIO 的软件模式
- 有没有办法实现 fmu 导出到基于 c++ 的仿真软件以使用 fmi?
- 从C++调用 Python 并访问通过 Anaconda 安装的软件包
- 有关图像处理应用程序的硬件和软件安全性的建议
- 通过自制软件(macOS)安装的clang++:编译错误
- 如何在软件代码中使用ofstream创建文件
- 如何在Linux上正确发布C++软件(游戏)
- 尝试使用 RTool 在 R4.0 上安装软件包时出现编译错误
- Visual Studio Code输出被检测为恶意软件?
- 如何使用自制软件,cMake和cLion将库添加到C++项目中
- 我正在尝试编写将 ASCII 转换为十进制、添加并转换回 ASCII 的软件
- 在 C/C++ 中,是否可以通过使用指针更改"important"内存地址的值来创建简单的恶意软件?
- 使用策略模式设计软件时出现的问题
- 为什么 Avira 认为"CoCreateInstance()"是恶意软件?
- 在陈述"Implementation-defined"时,什么样的软件是"Implementation"的一部分?究竟什么是"Implementation"?
- 如何导入使用自制软件安装的 GMP?
- 在 Linux 上分发软件时的库依赖关系?
- 用于反恶意软件代码的类aho - corasick算法
- 启动多个程序扫描计算机以查找恶意软件