免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

pyinstaller打包exe被杀

在这篇文章中,我们将讨论PyInstaller打包exe文件时被杀的原理以及如何解决这一问题。

PyInstaller是一个非常流行的Python工具,可以将Python脚本打包成独立的可执行程序(EXE文件)。这样,用户无需安装Python环境和依赖的库,就可以执行程序。然而,在使用PyInstaller打包exe文件时,可能会遇到一些问题,主要是被杀软误报为病毒的问题。为了解决这个问题,我们首先要了解它产生的原因。

## 1. 误报的原因

杀软误报,并非PyInstaller打包的程序中真的含有病毒,而是因为杀软采用的“启发式扫描”技术。(启发式扫描会评估文件的行为,而不是仅仅查找已知的病毒签名。)当杀软发现程序的某些行为类似于已知病毒时,就会将其标记为病毒。PyInstaller打包的exe文件,由于其内置的结构和一些模块的使用,可能会被误报为病毒。关键原因在于,可执行文件的加载和解压过程,使得杀软误以为是病毒伪装和释放自身。

## 2. 解决方案

要避免这种情况,我们可以有以下几个解决方案:

### 2.1 使用UPX压缩

PyInstaller默认使用的是UPX压缩。你可以在打包时增加一个选项`--upx-dir`指定到你的UPX目录。这将在打包过程中压缩可执行文件,使得它变得更加臃肿,这样可以降低误报的可能性。

**示例:**

```bash

pyinstaller your_script.py --onefile --upx-dir /path/to/your/upx --icon your_icon.ico

```

### 2.2 加入数字签名

如果你的杀软误报的问题依然存在,你可以尝试在打包后的.exe文件上加上数字签名。由于数字签名有效证明了文件的完整性和出处,因此杀软会更有可能信任添加了签名的文件。你可以使用Windows的signtool工具、苹果的codesign工具或在任何平台上使用osslsigncode工具进行签名。

### 2.3 向主流杀软递交样本

在做好前面两个步骤后,如果还是遇到了误报的问题,可以考虑将你的程序递交给杀软厂商,要求他们加入白名单。这样以后杀软扫描时就不会误报了。

## 3. 总结

总的来说,PyInstaller打包exe文件时被误报为病毒的现象是由于杀软的启发式扫描技术错误地将其识别为病毒。为了避免这一问题,我们可以使用UPX压缩、添加数字签名或向杀软厂商申请白名单。希望这些建议能帮助你解决这个问题,愉快地使用PyInstaller继续开发和发布Python程序。


相关知识:
简单修改下vb生成的exe文件
Visual Basic (VB) 是一门面向对象的编程语言,主要用于开发 Windows 应用程序。使用 VB 生成的可执行文件(.exe 文件)是一种封装了程序代码和资源(如图像、声音等)的文件格式。下面将介绍 如何简单修改 VB 生成的 exe 文件
2023-06-14
生成exe程序怎么加壳
在这篇教程中,我们将讨论EXE程序加壳的原理和详细过程。**什么是加壳?**加壳是将二进制可执行文件(如EXE、DLL等)包裹在另一个可执行文件中的技术。加壳后的文件在执行时,壳首先启动,然后逐渐解开内部文件,最后将控制权转交给内部文件。加壳的目的主要是:
2023-06-14
在线exe制作
在这篇文章中,我们将探讨在线exe制作的原理和详细介绍。在线exe制作是指通过某些工具和平台,将常用的文档、图片、音视频文件等打包成一个单独的可执行文件(.exe)。这种方法在诸如软件安装包、多媒体教程制作等方面有广泛的应用。原理:在线exe制作的主要原理
2023-06-14
制作简单的exe文件
制作简单的 exe 文件(原理与详细教程)本教程将介绍如何制作一个简单的 exe 文件。我们将使用一个流行的程序设计语言——Python,通过其中的一个模块——`pyinstaller`将 Python 程序转换为可执行(exe)格式。请确保已经安装了Py
2023-06-14
vc2019生成exe文件
在这篇文章中,我们将详细介绍如何使用Visual Studio 2019(VC2019)生成一个EXE文件,并阐述其中涉及的原理。一、原理简介编译、链接和生成EXE文件的过程主要包括以下几个步骤:1. 编写源代码(C/C++等)。2. 对源代码进行编译,将
2023-06-14
pb生成exe教程
标题:从PB(PureBasic)生成EXE文件:原理和详细教程摘要:在本教程中,我们将学习如何从PB(PureBasic)源代码生成EXE文件,以及生成过程背后的原理。这个教程将配有详细的步骤和示例代码,使您能够轻松地将您的PureBasic程序转换为可
2023-06-14