使用pyinstxtractor.py将程序转换成pyc文件
- 下载 pyinstxtractor.py:extremecoders-re/pyinstxtractor: PyInstaller Extractor
- 将代码和程序放在同一目录
- 生成pyc文件:
python pyinstxtractor.py 软件名
使用 pycdc 工具反编译 pyc 文件,获得源码
- 下载并编译pycdc:zrax/pycdc: C++ python bytecode disassembler and decompiler
- 在Windows下使用visual studio+cmake编译(不推荐,反编译代码补全)
- 在linux下直接使用cmake编译
- 在Windows的wsl环境下使用cmake编译(推荐,安装少,反编译代码全)
- 将生成的程序拷贝到pyc文件目录
- 反编译pyc文件:pycdc -o py文件名 pyc文件名
- 如此能获得源码那就最好,就不用往下看了,但高版本python可能会存在问题,例如
- Unsupported opcode: JUMP_BACKWARD
- # WARNING: Decompyle incomplete
- 如果出现错误,可以继续往下看,也许会有帮助
使用 pycdas 工具反编译 pyc 文件,获得汇编代码
- 编译pycdc还会生成pycdas,将这个程序也拷贝到pyc文件目录
- 反编译pyc文件成汇编代码:pycdas -o py文件名 pyc文件名
使用 AI 工具反编译汇编代码,获得源码
- 将pycdas反编译的汇编代码拷贝到ai对话中,我用的是deepseek,并让其“修复代码”,即可获得源码
- 代码编译及修复:生成的代码多少还是有点语法问题,但问题不大,很好修复,基本编译一下就出来了,这就需要手动修改一下
- 源码还会提供注释,虽然不是开发者提供的注释
参考:
- Decompile Python 3.11 EXE files using pyxtractor and AI (chatgpt blackboxai)! NEW METHOD 2023/2024 - YouTube
作者:widrin原文地址:https://www.cnblogs.com/HuangWj/p/18718924