PyInstaller打包、解包与反编译.pyc文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyInstaller打包、解包与反编译.pyc文件相关的知识,希望对你有一定的参考价值。

参考技术A PyInstaller官网: https://www.pyinstaller.org/

假设有一个demo.py文件,在同目录下启动命令行或从命令行进入当前文件夹,使用如下命令打包

打包后同目录下会产生两个文件夹build和dist(distribution),dist文件夹内就是目标程序。

解包使用pyinstxtractor工具
Github地址: https://github.com/extremecoders-re/pyinstxtractor
假设在第1步中,使用-F参数将demo.py打包为独立可执行文件demo.exe,进入dist文件夹,将pyinstxtractor.py放在该目录下,在该目录下启动命令行或从命令行进入该文件夹,使用如下命令解包

解包得到的内容将放入同目录下的demo.exe_extracted文件夹

找到目标.pyc文件,比如demo.pyc
反编译.pyc文件使用uncompyle6工具
Github地址: https://github.com/rocky/python-uncompyle6
可以直接通过pip安装uncompyle6

由于pyinstaller在打包可执行文件时会将.pyc文件头部的16字节magic head去掉,因此需要对需要反编译的.pyc文件进行预处理,将文件头部的16字节magic head补充完整。这里使用一个开源的16进制编辑器ImHex。
Github地址: https://github.com/WerWolv/ImHex
进入demo.exe_extracted文件夹,用16进制编辑器打开struct.pyc文件复制头部的16字节magic head,再用16进制编辑器打开demo.pyc文件,将头部的16字节改为magic head,即将图2中的部分更改为图1中的值即可。

使用前一个命令,反编译后的源码内容会显示在命令行窗口内;使用后一个命令,源码会打印到指定文件中,如demo.py。
到此为止可以

Invalid pyc/pyo file - Magic value mismatch!
补充magic head后即可正常反编译。

如果不是项目成员给所谓的程序而不肯给源码,而我又绕不过这个程序的问题,我才不想折腾这些有的没的。

Wolf RPG Editor之 解包与打包

参考技术A

2018-2-18
工作很久也就不怎么在汉化组活跃,教程也写到这里,后来的调试和常见问题就一直坑着。最近在某位朋友的邀请下又用了一次wolf,没想到现在的wolf这么厉害的,打包现在非常简单,已经不需要中文主程序了,内心重新燃起了一腔热血233333
有时间也至少要把这个教程更新一下了

解包需要的的工具:
解包工具
WOLF编辑器汉化版
打包需要
WOLF简体中文版主程序
编码转换器
Rename文件

以上是关于PyInstaller打包、解包与反编译.pyc文件的主要内容,如果未能解决你的问题,请参考以下文章

[ROC-RK3568-PC] 手把手教你在Linux下解包与打包Ubuntu系统固件

linux下 python 编译pyc 运行错误

Android截包与反编译

python逆向一把梭pyinstaller打包的exe逆向一把梭

代码编译与反编译 (.py文件与.pyc文件互转)

Python - 浅谈Python的编译与反编译