Я запускаю очень простую программу C++:
#include <list>
#include <vector>
int main(int argc, char **args) {
}
Я перехожу к командной строке и компиляции и работаю:
g++ whatever.cpp
a.exe
Обычно это работает просто великолепно. Это компилирует прекрасный, но когда я выполняю его, это говорит, что Доступ запрещен и AVG открываются, говоря мне, что угроза была обнаружена Trojan Horse Generic 17.CKZT
. Я пытался компилировать снова использование Microsoft Compiler (cl.exe), и это выполняет штрафы. Таким образом, я возвратился и добавил:
#include <iostream>
скомпилированное использование g ++ и работало. На этот раз это хорошо работало.
Таким образом, кто-либо может сказать мне, почему AVG сообщил бы о пустом основном методе как о троянском коне, но если iostream заголовок включен, он не делает?
ОБНОВЛЕНИЕ:
Я добавил оператор возврата к основному методу, и теперь я нахожу, что только получаю ошибку, если я возвращаюсь 0. Любое другое возвращаемое значение и это, кажется, хорошо работают.
Что продолжается здесь?
Вы не первый, кто сталкивается с ложными срабатываниями антивирусных программ.
Вероятно, эвристика антивируса споткнулась на стандартных библиотеках времени выполнения, присутствующих в ваших программах, поскольку вредоносное ПО также использует их. Конечно, легитимное программное обеспечение тоже их использует! Тот факт, что он не споткнулся на iostream
, вероятно, означает, что iostream
не очень популярен среди авторов вредоносных программ.
Если вы хотите решить проблему как можно быстрее,
просто внесите папку с исполняемыми файлами в белый список AVG.
Мои предпочтительные шаги:
если они сообщают о 'false positive', то вставьте путь скомпилированных исполняемых файлов
в белый список AVG,
чтобы он не сканировал эту папку.
Я не знаком с AVG,
но каждый антивирус
есть возможность исключить файлы из сканирования.
Если вы достаточно смелы, отладьте исполняемый файл и найдите вызывающий вызов.
Альтернативным решением может быть виртуализация легкой системы linux,
установить на нее gcc (с g++, конечно) и использовать эту "выделенную среду g++"
для
для разработки приложений командной строки.
// Первый шаг - это подведение итогов этого разговора.
// Если вы пришлете мне исходники и "зараженный" исполняемый файл, который вы скомпилировали, то я проверю его.
// Отсутствующий оператор return
в функции (C++) main
означает возвращает 0
.