使用Pyinstaller制定的程序现在被AVG视为特洛伊木马



大约一个月前,我使用Pyinstaller和Inno设置为我的Python 3脚本生成安装程序。我的AVG业务版Antivirus刚刚开始抱怨今天的更新,该程序在用于启动程序的主要.EXE文件中具有Scgeneric Trojan Horse(在Pyinstaller创建的文件夹中,该文件具有所有Python" python"。起初,我只是认为这是AVG的假阳性,但是将.EXE文件提交给Virustotal,我得到了此分析:

https://virustotal.com/en/file/9b0c24a5a90d8e3a12d2e07E3F5E5E522224869C01732B2C79FDD8898A8986B8CF30406B8CF30406/Analysis

表明61个扫描仪中有11个检测到一个问题:

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给出假阳性的。

我已向AVG提交了.EXE文件以进行分析。希望他们能回到他们认为试图检测到的一切。

我还能使用Pyinstaller做其他事情来制作它,以使其创建的.exe启动器不会被视为特洛伊木马?>我总是与Virustotal的Pyinstaller获得一些误报。这就是我修复的方式:

Pyinstaller配备了用于不同OSS的预编译引导加载程序二进制文件。我建议您自己在机器上编译它们。确保机器上的所有内容都一致。对于Windows 64位,安装Python 64位。下载用于Windows的Pyinstaller 64位。确保安装了与您的Python相对应的Visual Studio(VS(,请检查下面:

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

用V。在计算机上编译Pyinstaller的引导加载程序。它会自动更新run.exe,runw.exe,run_d.exe,runw_d.exe,in downloadeddpypyinstallerfolder pyinstaller bootloader bootloader windows-64bit。在下面查看有关如何编译引导程序的更多信息:

https://pyinstaller.readthedocs.io/en/stable/bootloader-building.html

最后,安装pyinstaller。在Pyinstaller目录中,运行

python setup.py install

我能够在https://secure.avg.com/submit-sample上提交有关文件的"报告错误检测"页面。我很快收到了回复(我不记得确切的时间,但不到一天(,他们已经分析了我的文件并确定它没有病毒。他们说,他们已经调整了病毒的定义,以免触发假阳性。我更新了定义,但仍在触发,所以我再次通过病毒定义版本与它们联系,然后我听到我的版本不够高 - 我认为我的定义有些延迟,因为我从本地服务器。但是在一天之内,我有了正确的定义版本,误报不再触发。

因此,如果您对AVG的假阳性,我建议使用此解决方案 - 相当快,容易解决该问题。

我的小文档注册项目代码面临着同样的问题。

我的临时解决方案是允许Windows Defender和

中的应用程序

其他解决方案是使用命令pyinstaller filename.py而不是pyinstaller --onefile filename.py

我不知道它是否正确。但是它对我有用。

我对这个问题感到困惑两天,最后发现了我的应用程序问题。问题是该应用程序的图标。

tkinter的示例:

root.iconbitmap('./icon.ico')

当我删除这条代码时,假阳性特洛伊木马就消失了。

另外,当将.py文件转换为.exe时,请确保不使用--icon依赖关系。否则,这将导致相同的假阳性特洛伊木马检测。

我在数周内搜索了许多博客。但是我什么也没发现。今天,我找到了一种将PY转换为EXE而没有任何病毒错误的方法。

病毒总报告

因此,在这种方法中,您不需要发送任何报告。实际上它非常简单。

您需要安装一个名为 nuitka 的模块。

python -m pip install nuitka

然后,您需要从文件路径打开命令。并使用命令; python -m nuitka --mingw64 filename.py

仅此而已。

您可以使用命令 nuitka --help

您可以在-nuitka指南

我使用python 3.8.5和pyinstaller 4.5.1

在我的情况下,第一个EXE构建被防病毒(Windows Defender(接受,但随后的构建被标记为具有特洛伊木马。我每次构建可执行文件

时都使用pyinstaller --clean选项解决了它

重新编译,然后手动重新安装您的pyinstaller bootloader。

这是我一段时间以来遇到的问题,我和我的朋友在许多其他人的帮助下弄清楚了这一决议。它几乎总是可以解决问题。

我在我的媒介博客上发布了具体步骤。共享下面的链接,但基本步骤如下

  1. 在您的项目中清除Pyinstaller文件,并重建
  2. 卸载pyinstaller
  3. 用您的编译器构建Pyinstaller启动加载程序
  4. 安装新编译的Pyinstaller
  5. 与Pyinstaller重建您的EXE,并确保不会被标记为病毒

如何解决Python Pyinstaller误报特洛斯病毒

  • 部分1.手动编译您的pyinstaller bootloader
  • 第2部分。与反病毒开发人员合作

从3.4中恢复到pyinstaller 3.1.1从3.4解决我的末端(至少暂时(。

正如@boogie_bullfrog所述,恢复到以前的版本可能是一个解决方案。但是,我使用 *.spec文件存储一些数据(例如图片和图标(。我有最新的3.5版本(2019年8月(,并移至3.1.1汇编时会导致错误(可能是由于支持Python 3.7(。

现在,最简单的解决方案是降级到3.4

它支持Pyinstaller 3.5的规格,Windows 10内置防火墙

我所做的是解决问题是求解此(使EXE文件不可检测为病毒(是通过在CMD中键入pyinstaller降级:pip install pyinstaller == 4.1.0

,顺便说一下,它在3.4.0上没有工作,所以我只是随机选择了该版本(4.1(,到目前为止它看起来很漂亮:>我很确定它比仅在一个版本上都可以使用,但是我亲自经历了

我在Windows下的pyinstaller exe也有类似的问题。阿维拉(Avira(将该文件视为潜在的危险(由于启发式方法,这意味着某些片段对于病毒而言是典型的,但实际上没有发现病毒(。

请记住,您生成的EXE文件是唯一的(因此,Avast扫描仪通常会返回消息"您找到了一个稀有文件,我们正在进行快速测试&quot&quot&quot',并且延迟执行15秒钟进行更彻底的测试(

我的解决方案包括一些步骤:

  • 我已将EXE上传到https://www.virustotal.com/gui/home/upload,以使用许多扫描仪进行检查。如果只有一个或两个检测到病毒,则应该在安全的一面。
  • 为了使您的本地病毒扫描仪接受该文件,您可以手动接受计算机,但这不能解决潜在的问题,因此在其他计算机上仍将标记为病毒。
  • 因此,我将文件报告为对avira的假阳性,这可以通过电子邮件发送。其他扫描仪具有类似的反馈线。我在一天之内通过电子邮件收到了反馈,这还可以,我的PC上的扫描仪现在同意。希望这有助于我的exe下一次迭代,以保持干净。

最新更新