【Python】对Python编译PyInstaller打包生成的exe文件进行反编译生成pyc、py源代码文件

【Python】对Python编译PyInstaller打包生成的exe文件进行反编译生成pyc、py源代码文件准备工作 没有加壳的 python 编译并打包的 exe 文件 python 反打包代码 不知道这样叫是否合理 python exe unpacker 16 进制编辑查看器 Hex Editor Neo 反编译库 uncompyle6 根据 exe 生成 pyc 文件 下载并解压缩 python exe unpacker

大家好,我是讯享网,很高兴认识大家。

准备工作

  1. 没有加壳的python编译并打包的exe文件
  2. python反打包代码(不知道这样叫是否合理):python-exe-unpacker
  3. 16进制编辑查看器 :Hex Editor Neo
  4. 反编译库 :uncompyle6

根据exe生成pyc文件

下载并解压缩 python-exe-unpacker 代码,myfile.exe为需要反编译的exe文件
在这里插入图片描述
讯享网
使用python运行 python-exe-unpacker-master 文件夹中的 pyinstxtractor.py 文件,参数为需要反打包的exe文件:

python python-exe-unpacker-master/pyinstxtractor.py myfile.exe 

讯享网

在这里插入图片描述
会生成文件夹 myfile.exe_extracted
在这里插入图片描述
在该文件中按照文件类型排序,在文件中找到这两个文件 dssqC3struct
在这里插入图片描述
struct 应该是不会变的,在你生成的文件夹中也是这个名字,但是dssqC3在你生成的文件可能不叫这个名字,但是一般是 文件 类型中的第一个,他的名字大多数情况下也不会带下划线。

使用 Hex Editor Neo 软件打开这两个文件:
dssqC3文件如下:
在这里插入图片描述
struct文件如下:
在这里插入图片描述
然后要做的就是把struct文件中的第一行(网上说是版本号信息),插入到dssqC3的第一行之前。
在Hex Editor Neo软件中,需要选择插入模式进行插入,否则会替换原理的内容
在这里插入图片描述
然后选中 struct 中的第一行复制粘贴到dssqC3保存即可。
在这里插入图片描述
在弹出的确认框中选择Yes
在这里插入图片描述
然后将 dssqC3 文件重命名为 dssqC3.pyc 就得到了py文件编译后生成的pyc类型文件
在这里插入图片描述

根据pyc文件反编译为py文件

安装 uncompyle6 包:

讯享网pip install uncompyle6 

然后输出反编译命令,参数就是刚刚生成的pyc文件

uncompyle6 myfile.exe_extracted/dssqC3.pyc 

在这里插入图片描述
然后就可以得到反编译后的python代码,可以新建一个myfile.py文件,选择这些代码复制到py文件中,由于pycharm或cmd输出的换行,可能会导致复制到py文件中的代码出现没有换行符的错误换行,需要手动调整一下。

也可以使用以下命令,直接将反编译的结果输出重定向到py文件中

讯享网uncompyle6 myfile.exe_extracted/dssqC3.pyc > myfile.py 

这种方式也有缺陷,中文内容会出现乱码,目前还不知道怎么在输出重定向的时候限制一下编码,知道的朋友可以在下面评论一下
在这里插入图片描述

参考

https://blog.csdn.net/weixin_/article/details/

小讯
上一篇 2025-03-13 09:14
下一篇 2025-03-01 22:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/33562.html