解决uncompyle6反编译报错KeyError

这篇具有很好参考价值的文章主要介绍了解决uncompyle6反编译报错KeyError。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

报错内容:KeyError:'3.11.0' (这个是我自己的Python版本号)

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

主要原因就是你的Python版本没在它库文件支持的版本里,我们需要进行手动添加即可。

首先找到文件:magics.py

我的是在这个路径下:D:\Python\Lib\site-packages\xdis

(每个人Python安装位置不一样,不过后面子文件夹应该是一样的)

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

打开之后使用快捷键 Ctrl+F 进行关键字搜索:add_canonic_versions

结果有很多,我们定位到最后一个结果的位置,如下图:

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

将自己的Python版本号添加进去,中间使用空格隔开,修改后如下图:

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

注意:

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

修改好之后Ctrl+S保存

尝试使用命令 uncompyle6

依旧报错:

Error: uncompyle6 requires Python 2.6-3.8

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

我们还需要修改另一个文件:uncompile.py

它的路径大概在:D:\Python\Lib\site-packages\uncompyle6\bin

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

打开之后,同样检索关键字:main_bin

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

进行添加,我的Python版本是3.11(同样需要注意空格的使用,格式与它一致

添加后如下图:

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

接下来再次尝试使用命令 uncompyle6

可以看到没有出现报错,而是提示我们需要输入用于反编译的文件

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

这里随便用一个正确的pyc文件进行测试:

(注意 > 的前后都需要有空格隔开)

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

可以看到反编译成功,pyc文件被成功反编译为py源码。

至此,我们解决了uncompyle6反编译报错KeyError的问题。

这篇文章可以帮助你解决 KeyError:'你的Python版本号' 的报错,解决报错之后你可以正常的进行正确的pyc文件的反编译。

但是我在反编译自己生成的pyc文件中遇到了另一个报错:

ImportError: Unknown magic number 3495 in test.pyc

uncompyle6 keyerror: '3.11.3,Python,python,uncompyle,pycharm

这是因为pyc文件生成时,头部的magic number被清理,需要我们另外补上。

但是这个搞起来似乎有点麻烦,我们首先需要找到或者计算自己版本号对应的Magic Number,再对自己的pyc文件进行修复,Python3.3 - Python3.7(包含3.3)版本中,只需要Magic Number和八位时间戳+大小信息,Python3.3 以下的版本中,只有Magic Number和四位时间戳,在Python3.7及以上版本的编译后二进制文件中,头部除了四字节Magic Number,还有四个字节的空位和八个字节的时间戳+大小信息,不过对文件反编译没有影响,但是也需要全部填充为0。

 

关于这个问题的相关解决方法我将放在下一篇博客,也是在Python专栏,欢迎大家来参考!文章来源地址https://www.toymoban.com/news/detail-804960.html

到了这里,关于解决uncompyle6反编译报错KeyError的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac M1芯片编译openjdk报错问题解决

    使用命令: sudo sh configure --with-target-bits=64 用mac m1芯片编译openjdk一直报错: configure: The tested number of bits in the target (64) differs from the number of bits expected to be found in the target (32) configure: error: Cannot continue. /Users/mac/Documents/jdkcompile/jdk-jdk-11-ga/build/.configure-support/generated-configure.sh: l

    2024年02月22日
    浏览(52)
  • CCS导入工程步骤以及编译报错解决方法

    在使用CCS软件时,我们常常需要导入别人的工程到自己的工作区中,由于版本不同等原因可能在编译工程时报错,本文给出几个常见的报错并提供相应的解决方法。 解决方法 :检查 Include options ,灰色表示未使用,可能是编译器找不到该路径,删除后重新导入路径。 解决方

    2024年02月06日
    浏览(40)
  • IDEA 编译报错 “Java: 找不到符号“ 问题解决

    最近在工作中遇到了一个很诡异的事情: 项目迁移后,IDEA 编译项目每个 Java 类都报错: Java: 找不到符号 很明显符号肯定是存在的。 花了很久的时间,也找了很多博客,最后解决了这个问题。 IDEA - 右侧 Maven 菜单 - 右键 Unlink Maven Projects Load Maven Projects 重新编译后就好了。

    2024年02月11日
    浏览(70)
  • 2023新版keil编译不通过,报错的-保姆级解决方法

            昨天心血来潮,把之前老版本的keil5升级到了MDK-5.38和C51-9.61A版本。安装什么的一开始很顺利,直到编译的时候出现下面的报错信息:         这里的错误信息 提示就是:这里没有AC5版本的编译器,(大概就是这个意思)。 (default compiler version 5 ‘which is not

    2024年02月02日
    浏览(38)
  • 常见的Keil5编译报错及其原因和解决方法

    以下是几种常见的Keil5编译报错及其原因和解决方法: \\\"Error: L6218E: Undefined symbol\\\"(未定义符号错误) 这通常是由于缺少对应的库文件或者代码中有未声明的变量或函数引起的。解决方法是检查相应的库文件是否已正确添加到工程中,或者声明并实现相应的变量或函数。 \\\"Err

    2024年02月07日
    浏览(56)
  • 解决IDEA编译/启动报错:Abnormal build process termination

    报错信息如下: 很纳闷一直用的好好的,早上一打开 IDEA 就报了这个红 buff,然后开始找解决方案,花了一个小时左右才解决,严重影响为公司做贡献。 网上有很多中方法,总结了几种常见的: 重新安装了 jdk(最好换个安装路径,配置环境变量),在 idea 项目结构中重新引

    2024年01月21日
    浏览(99)
  • Mac M1 解决Go交叉编译成linux文件报错问题

    1、brew下载编译成linux的所需环境 这一步下载需要使用国内的镜像,我使用的是清华的镜像下载的,下载的过程中会因为一下问题中断,你直接在终端一直重新输入以上命令 2、如果还不行就需要配置go env 这个问题搞了我两天基本上把所有的论坛都找了一个遍,最后通过go官网

    2024年02月03日
    浏览(76)
  • 鸿蒙开发已解决-arkts编译报错-arkts-limited-stdlib错误

    arkts编译报错-arkts-limited-stdlib错误。 我用Deveco studio4.0 beta2开发应用,报arkts-limited-stdlib错误 报错内容为:

    2024年02月02日
    浏览(36)
  • Android12源码编译报错ninja: build stopped: subcommand failed.解决

    虚拟机:wsl 2.0 Ubuntu18.04 虚拟机配置:8G内存,1T存储 软件版本:安卓系统目前最高版本是Android S,也就是Android 12 beta版本源码,无任何修改 报错内容:编译至54%时,ninja编译中断,ninja: build stopped: subcommand failed. 报错后尝试多次增量编译,始终在54%作用报错,报错内容一致。

    2024年01月19日
    浏览(47)
  • 编译报错pcl_conversions、及pcl_rosConfig解决方法

    1、报错1 CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):   Could not find a package configuration file provided by \\\"pcl_conversions\\\"   with any of the following names:     pcl_conversionsConfig.cmake     pcl_conversions-config.cmake   Add the installation prefix of \\\"pcl_conversions\\\" to CMAKE_PREFIX_PATH or

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包