【问题标题】:How to decompile pyc to py on Python 3.9?如何在 Python 3.9 上将 pyc 反编译为 py?
【发布时间】:2021-10-11 10:32:22
【问题描述】:

我想在 Python 3.9 中反编译 PYC 文件。我试过decompyle3,uncompyle6,但是输出是这样的:

Error: decompyle3 requires Python 3.7-3.8

我应该使用什么?

【问题讨论】:

  • 降级到 py3.8,等待 Rocky 发布支持 3.9 的版本,或者修复问题并提交 PR……你的选择。 (ps:github.com/rocky/python-decompile3/blob/…)
  • 这不是解决方案
  • 也许不是,但它们是您的 3 个选择(我猜付钱给别人是不可能的......)
  • 如果你真的必须支持 3.9,你将不得不自己做。更改需要 3.7-8 的行,试一试,并在它开始中断的地方修复它(并在完成后提交 PR)。 3.8 和 3.9 之间的变化并不大,因此可能不会有太多的工作。如果您尝试反编译的代码无论如何都是
  • @2e0byo,将其发布为答案,我将其标记为解决方案

标签: python pyc


【解决方案1】:

如果你真的必须支持 3.9,你将不得不自己做。

在本地克隆 repo,更改 the line which requires 3.7-8,试一试,并在它开始损坏的地方修复它(完成后提交 PR)。 3.8 和 3.9 之间的变化并不大,所以工作量可能不会太大。如果您尝试反编译的代码无论如何都是 编写 可能会在 3.9 中运行,因为 AFAIK,API 没有明显变化。不过,我还没有研究过编译是如何工作的,所以我可能是错的。

【讨论】:

  • 这个答案的关键部分是“我没有看过编译是如何工作的”。我建议更详细地查看它,并用更明智的答案修改上述内容。 3.8 和 3.9 之间的操作码发生了变化。更明智的答案是查看这些更改,了解它们在编译中的使用方式以及现有反编译器的工作方式。
  • @rocky 非常公平:如果您是 decomplye3 背后的 Rocky,我为这个答案可能造成的任何垃圾邮件道歉。这只是一条评论说“如果你真的需要它,那就去尝试实施它”,这成为了 OP 明确要求的答案。我讨厌看到未回答的问题,因此,由于这显然解决了 OP 的问题,因此我将其发布为答案。
猜你喜欢
  • 2019-03-19
  • 2013-11-09
  • 2016-06-14
  • 2011-12-30
  • 2011-07-14
  • 2021-06-07
  • 2022-08-24
  • 2012-01-01
相关资源
最近更新 更多