我在C创建的程序++时,我就用VS C++ 2012使用的释放模式程序捕捉到它的病毒
运行时库建设:“多线程(/ 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;
}
切换到更好的防病毒软件?另外,'_GetUserName'是一个保留的标识符。 – 2014-10-05 10:30:54
您确定只是运行时会让您的程序被检测为病毒吗?这似乎很奇怪 – 2014-10-05 10:33:59
你可以上传你的“病毒”到https://www.virustotal.com/并在这里发布报告网址? – wimh 2014-10-05 12:43:17