从 Python 脚本生成的 Windows 可执行文件被 Windows Defender 检测为木马

问题描述 投票:0回答:1

我做了一个小型Python应用程序(版本3.9.13)来将信息发送到门户应用程序上的webapi。一切正常;直到我尝试制作可执行文件。我使用 virtualenv 和 pyinstaller 以及

--onefile --noconsole appname
scriptfile.py
来完成此操作。

生成的appname.exe被Windows Defender拦截;将其分类为:

程序:Win32/Wacapew.C!ml

我认为是误报;但我无法在客户站点上部署此问题。我从自己的命令行运行 python 脚本时没有收到任何警告。

这是已安装软件包的列表:

  • 证书==2024.2.2
  • 字符集标准化器==3.3.2
  • distlib==0.3.8
  • 文件锁==3.13.3
  • idna==3.6
  • 平台目录==4.2.0
  • pydeps==1.12.20
  • 请求==2.31.0
  • stdlib-列表==0.10.0
  • urllib3==2.2.1
  • 虚拟环境==20.25.1

一开始使用Python 3.12。我有

.exe
文件处于隔离状态。

回退到 python 3.9.13(应该与 pyinstaller 兼容),我的应用程序看起来被感染了,我的virustotal 上只有 72 个站点中的 8 个站点。

如果没有

--onefile
选项,我的应用程序在 Virustotal 上的 72 个站点中只有 7 个站点看起来已被感染。

有什么想法吗?谢谢你。
安吉洛

pip virtualenv pyinstaller windows-defender
1个回答
0
投票

这是因为它实际上并没有创建 Windows 应用程序本身

程序正在提取二进制文件,然后运行它。

来自 单文件程序如何工作

单文件程序如何工作

引导加载程序也是单文件包的核心。何时开始 它在适当的临时文件夹位置创建一个临时文件夹 对于这个操作系统。该文件夹名为_MEIxxxxxx,其中xxxxxx是随机的 数量。

一个可执行文件包含所有 Python 的嵌入式存档 脚本使用的模块,以及任何的压缩副本 非 Python 支持文件(例如 .so 文件)。引导加载程序解压缩 支持文件并将副本写入临时文件夹。 这可能需要一些时间。这就是为什么单文件应用程序有点 启动速度比单文件夹应用程序慢。

这很可疑;这就是防病毒应用程序给出误报的原因。

这实际上很有启发性;我没有意识到它没有创建本机Windows应用程序。我假设它将 python 代码编译为本机 x86 机器代码。我以为错了。

© www.soinside.com 2019 - 2024. All rights reserved.