Python генерирует exe-файлы и декомпилирует exe-файлы

1. Python генерирует exe-файлы.

1. Используйте подсказку Анаконды

(1). Откройте подсказку Анаконды,

pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用了清华镜像
# 由于pyinstaller生成exe文件时会把所在的虚拟环境的所有包都进行打包,所以建议新建一个虚拟环境安装pyinstaller,并在新建的环境安装需要转exe文件的py文件import的包

(2) Переключитесь на среду, используемую проектом, в Prompt , а затем запустите pyinstaller.

pyinstaller -F -w  C:\Users\main.py
# -F 生成单一exe文件
# -w 不调用控制台

(3) Сгенерированный exe-файл находится в папке dist по пути по умолчанию для Prompt.

2. Используйте окно командной строки cmd.

(1) Установите три переменные среды, ориентируясь на путь, по которому находится третья папка pyinstaller.

# D:\CS\anaconda3(python.exe的路径)
# D:\CS\anaconda3\Scripts(pip.exe的路径)
# D:\CS\anaconda3\Lib\site-packages(pyinstaller等扩展包的路径)
# 每个人的安装路径不同,上面是我的安装路径sQW

(2).Открыть cmd

pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

(3).Прямой вход

pyinstaller -F -w C:\Users\main.py

(4).Сгенерированный exe-файл находится в папке dist по пути cmd.

2. Декомпилируйте exe-файл в py-файл.

1.exe файл в файл pyc

(1) Загрузите pyinstxtractor, URL: https://github.com/extremecoders-re/pyinstxtractor .

# 这里我吐槽一下,知乎和CSDN上的相关文章给的安装包版本太老了,里面的imp包python3.4以后就不适用了,直接用会报错,还要花积分,建议从github上直接下载

(2).Подсказка или cmd

python pyinstxtractor.py main.py
#cmd中要将python.exe所在路径添加到环境变量

(3) Создайте папку main.exe_extracted по пути Prompt или cmd, и вы сможете найти main.pyc.

2. Конвертируйте файл pyc в exe.

(1). Установите инструмент декомпиляции uncompyle6.

pip install uncompyle6
# 模块原网址:https://github.com/rocky/python-uncompyle6
# 这是github上认可度最好的反编译工具,也是上面pyinstxtractor推荐的工具

(2).Подсказка или cmd

uncompyle6 main.pyc > main.py
# 反编多个文件 uncompyle6 -o . *.pyc

(3) Создайте файл main.py по пути Prompt или cmd.

Сводка параметров:

  • -F, –onefile упаковывает один файл. Если весь ваш код написан в одном файле .py, вы можете использовать его. Если файлов .py несколько, не используйте его.
  • -D, –onedir упаковывает несколько файлов и генерирует множество файлов зависимостей в dist, что подходит для написания кода инструмента в виде фреймворка. Лично я рекомендую это, потому что код легко поддерживать.
  • -K, –tk включать TCL/TK при развертывании
  • -a, –ascii не включает кодировку.Все кодировки включены по умолчанию в версиях Python, поддерживающих Unicode.
  • -d, –debug генерирует отладочную версию исполняемого файла.
  • -w,–windowed,–noconsole Использовать для выполнения подсистему Windows.Командная строка не открывается при запуске программы (действительно только для Windows).
  • -c, – nowindowed, – консоль

Выполнить с использованием подсистемы консоли (по умолчанию) (действительно только для Windows)

pyinstaller -c xxxx.py

pyinstaller xxxx.py --console
  • -s, --strip Исполняемые файлы и общие библиотеки будут запускаться через Strip. Обратите внимание, что Strip Cygwin часто делает непригодной для использования обычную Win32 Dll.
  • -X, –upx Если установлен UPX (обнаруживается при выполнении Configuration.py), исполняемый файл будет сжат (как и библиотеки DLL в системах Windows) (см. примечание).
  • -o DIR, –out=DIR указывает каталог создания файла спецификации. Если он не указан, а текущий каталог является корневым каталогом PyInstaller, каталог для вывода (спецификация и сгенерированные исполняемые файлы) будет создан автоматически. Если нет указан, и текущий каталог не является корневым каталогом PyInstaller, он будет выведен в текущий каталог.
  • -p DIR, –path=DIR устанавливает путь импорта (аналогично эффекту использования PYTHONPATH).Вы можете использовать разделители пути (точка с запятой в Windows, двоеточие в Linux) для указания нескольких каталогов.Вы также можете использовать несколько параметров -p для Установите несколько путей импорта и позвольте pyinstaller найти ресурсы, необходимые программе.
  • –icon=<ФАЙЛ.ICO>
  • Добавьте file.ico в качестве ресурса исполняемого файла (действительно только для систем Windows), измените значок программы pyinstaller -i ico path xxxxx.py
  • –icon=<FILE.EXE,N> Добавить n-й значок файла file.exe в качестве ресурса исполняемого файла (действительно только для систем Windows)
  • -v ФАЙЛ, –version=ФАЙЛ Использовать verfile в качестве ресурса версии исполняемого файла (действительно только для систем Windows).
  • -n NAME, –name=NAME Необязательное имя проекта (сгенерированной спецификации). Если опущено, в качестве имени спецификации будет использоваться имя основного файла первого скрипта.

Guess you like

Origin blog.csdn.net/meimeieee/article/details/126800822