Программа, созданная с помощью PyInstaller, теперь рассматривается как троянский конь AVG

Примерно месяц назад я использовал PyInstaller и Inno Setup для создания установщика для моего Python 3 script. Мой AVG Business Edition AntiVirus только что начал жаловаться на сегодняшнее обновление, что у программы есть SCGeneric Trojan Horse в главном .exe файле, который использовался для запуска программы (в папке, созданной PyInstaller, которая имеет все "кишки" Python). Сначала я просто подумал, что это был ложный позитив в AVG, но, отправляя файл .exe в VirusTotal, я получаю этот анализ:

https://virustotal.com/en/file/9b0c24a5a90d8e3a12d2e07e3f5e5224869c01732b2c79fd88a8986b8cf30406/analysis/1493881088/

Что показывает, что 11 из 61 сканера обнаруживают проблему:

TheHacker   Trojan/Agent.am 
NANO-Antivirus  Trojan.Win32.Agent.elyxeb 
DrWeb   Trojan.Starter.7246 
Yandex  Trojan.Crypren!52N9f3NgRrY 
Jiangmin    Trojan.Agent.asnd 
SentinelOne (Static ML)     static engine - malicious 
AVG     SCGeneric.KTO 
Rising  Malware.Generic.5!tfe (thunder:5:ujHAaqkyw6C) 
CrowdStrike Falcon (ML)     malicious_confidence_93% (D) 
Endgame     malicious (high confidence)     20170503
Zillya  Dropper.Sysn.Win32.5954 

Теперь я не могу сказать, что эти другие сканеры - это те, о которых я слышал раньше... но все же я обеспокоен тем, что это не просто AVG, дающий ложный результат.

Я представил файл .exe в вопрос AVG для их анализа. Надеюсь, они откажутся от того, что они думают, что они пытаются обнаружить.

Есть ли что-нибудь еще, что я могу сделать с PyInstaller, чтобы сделать его создателем .exe, который он создал, не будет считаться трояном?

Спасибо за любой ввод.

Ответ 1

Мне удалось отправить файл на страницу AVG "Сообщить о ложном обнаружении", https://secure.avg.com/submit-sample. Я получил ответ довольно быстро (я не могу точно помнить, как долго, но было меньше суток), что они проанализировали мой файл и определили, что у него нет вируса. Они сказали, что они скорректировали свои определения вирусов, чтобы больше не приводить к ложным позициям. Я обновил свои определения, и он все еще запускался, поэтому я связался с ними снова с моей версией определения вируса, и я услышал, что версия, которую я имел, была недостаточно высокой - я думаю, что некоторые определения были отложены, потому что я получаю их от локальный сервер. Но в течение дня у меня была правильная версия определений, и ложный позитив больше не срабатывал.

Итак, если у вас есть ложный позитив с AVG, я бы рекомендовал это решение - довольно быстро и легко получить разрешение проблемы.

Ответ 2

Я всегда получал ложные срабатывания с помощью Pyinstaller от VirusTotal. Вот как я это исправил:

Pyinstaller поставляется с предварительно скомпилированными двоичными файлами загрузчика для разных ОС. Предлагаю скомпилировать их самостоятельно на своей машине. Убедитесь, что на вашей машине все согласовано. Для Windows 64bit установите Python 64bit. Загрузите PyInstaller 64bit для Windows. Убедитесь, что установлена Visual Studio (VS), соответствующая вашему Python, проверьте ниже:

https://wiki.python.org/moin/WindowsCompilers

Скомпилируйте загрузчик Pyinstaller на своей машине с VS. Он автоматически обновляет run.exe, runw.exe, run_d.exe, runw_d.exe в папке DownloadedPyinstallerFolder\PyInstaller\bootloader\Windows-64bit. Проверьте ниже для получения дополнительной информации:

https://pythonhosted.org/PyInstaller/bootloader-building.html

В конце установите Pyinstaller. В каталоге Pyinstaller запустите

Python setup.py установить

Ответ 3

Возвращение к PyInstaller 3.1.1 из 3.4 решило подобные проблемы с моей стороны (по крайней мере, временно).

Ответ 4

В следующий раз, когда вы сделаете такой пост, используйте nodistribute.com вместо этого: https://imgur.com/l1CcfLT, когда вы отправляете ложноположительные, события, отмеченные на скриншоте, будут происходить и, возможно, сделать еще один av-флаг как вирус и возможно, это будет другой бот, который будет обозначать его как вирус, а не ученый, который может быть рациональным.

ПРИМЕЧАНИЕ: Это всего лишь напоминание, а не какое-то злобное сообщение.

Ответ 5

Как сказал @boogie_bullfrog, возврат к предыдущей версии может быть решением. Однако я использовал файл *.spec для хранения некоторых данных (например, изображений и значков). У меня была последняя версия 3.5 (август 2019 г.), и переход на 3.1.1 вызвал ошибку при компиляции приложения (возможно, из-за поддержки Python 3.7).

Так что сейчас самое простое решение - понизить до 3.4

Он поддерживает спецификации из pyinstaller 3.5, а встроенное брандмауэр Windows 10 не обнаружило приложение onefile.