我在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