从 python 代码构建 exe 以避免 AV 误报的最佳方法

Posted

技术标签:

【中文标题】从 python 代码构建 exe 以避免 AV 误报的最佳方法【英文标题】:Best way to build exe from python code to avoid AV false positive 【发布时间】:2018-03-25 18:19:38 【问题描述】:

我使用 python 3.6 开发了一个应用程序,并使用 pyIntaller 将其构建为 exe。该 exe 被许多众所周知的反病毒软件作为特洛伊木马/病毒阻止。通过过去 2 天的研究,我发现没有办法解决这个问题。但是,是否有任何已知的最佳实践可以遵循,可以降低 exe 被 AV 阻止的可能性。我知道最好的解决方案是将 exe 发送给所有 AV 供应商并将其排除在外,但这对我来说并没有真正的帮助,因为时间因素和发布机制。所以在这里寻找任何支持。我的应用程序是使用以下 python 模块构建的:

altgraph (0.15)
macholib (1.9)
matplotlib (2.1.2)
numpy (1.14.0)
pandas (0.22.0)
pefile (2017.11.5)
pyinstall (0.1.4)
PyInstaller (3.3.1)
pyparsing (2.2.0)
pypiwin32 (220)
PySide 
python-dateutil (2.6.1)
pytz (2018.3)
sip (4.19.7)
six (1.11.0)
XlsxWriter (1.0.2)

【问题讨论】:

相关:Program made with PyInstaller now seen as a *** Horse by AVG 检查how-to-recompile-the-bootloader-of-pyinstaller。重构bootloader并不难,而且pyinstallerpy2exe有更多的外部库支持。 【参考方案1】:

你可以试试python中的py2exe模块。

【讨论】:

【参考方案2】:

好的,你可以试试 Base64 编码吗 去https://www.base64encode.net/加密你的python代码 比导入 base64 这里的代码: 导入base64

exec(base64.standard_b64decode("BASE64 CODE"))

【讨论】:

1. Base64 编码不是加密。 2. 在任何严肃的应用程序中使用exec 而不知道所有潜在的陷阱是不好的,badbad 建议。

以上是关于从 python 代码构建 exe 以避免 AV 误报的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 Cython 和 Visual Studio 2019 (3​​2/64bits link.exe) 从 python 文件构建可执行文件时出错

CX_Freeze exe 引用旧的 pyc 文件?

在自定义构建中自动化 WSDL.exe

如何避免从 C# 构建的 Sql Server 2005 参数化查询变慢

CX_Freeze - 构建具有管理员权限的 .msi

使用 cx_Freeze 从 .py 构建一个 .exe 文件