使用/MT防病毒软件编译的程序将其捕获为病毒



当我使用带有的发布模式使用VS c++2012构建程序时,我用c++创建了一个程序

运行库:"多线程(/MT)

然后它被avast杀毒软件捕获为病毒。但如果我将运行库更改为"多线程DLL(/MD)",那么avast不会将其捕获为病毒。

这是代码

LPWSTR _GetUserName();
void FileWriteLine(LPCWSTR filePath,LPCWSTR line);
int main()
{
    LPCWSTR userName = _GetUserName();
    FileWriteLine(userName,L"Hello World");
    return 1;
}

void FileWriteLine(LPCWSTR filePath,LPCWSTR line)
{
    wfstream fileHandle(filePath,ios::out | ios::app);
    fileHandle << line<<endl;
    fileHandle.close();
}
LPWSTR _GetUserName()
{
    LPWSTR username = new TCHAR[257];
    DWORD size = 257;
    if (!GetUserNameW(username,&size))
    {
        username = _wgetenv(L"USERNAME");
        if (username == NULL)
        {
            username = L"Error-Unknown";
        }
    }
    return username;
}

进入防病毒菜单,将创建可执行文件的文件夹设置为防火墙中的异常。

设置>防病毒>向下滚动到排除>文件路径排除>键入路径并添加它,或者浏览到它然后添加它

看起来你并不孤单。http://blog.nirsoft.net/2009/05/17/antivirus-companies-cause-a-big-headache-to-small-developers/

http://social.msdn.microsoft.com/Forums/vstudio/en-US/f0e33f0b-fa4c-46bf-b515-186eb4d32660/code-gets-detected-as-a-virus

对您进行的每个调用进行存根处理,并确定哪个API调用是问题所在,然后用其他调用替换它。-除非纯粹是编译器切换的事实导致了问题。分而治之。同时将信息提交给Avast。

相关内容

  • 没有找到相关文章

最新更新