Python 打包的EXE文件反编译说明
python脚本编写完毕后,我们可以将其打包成exe文件发给别人,这样别人就可以直接运行,而不用安装相应的包和python运行环境了,同时,也能对我们的源码进行保密。但是,这种方法只能在一定程度上进行源码保密,对于熟悉python exe逆向工程的开发者来说,想要看到源码还是很简单的。
下面会对Python 打包的EXE文件反编译方法进行详细的介绍。
概括
Python 打包的EXE文件反编译工作主要分为两部分:
1.EXE文件反编译为pyc文件;
2.pyc文件反编译为py文件;
此篇文章主要介绍如何将pyc文件反编译为py文件;
上一篇文章已经讲过如何将EXE文件反编译为pyc文件
介绍
uncompyle6是一个原生python的跨版本反编译器和fragment反编译器,是decompyle、uncompyle、uncompyle2等的接替者。
uncompyle6可将python字节码转换回等效的python源代码,它接受python 1.3版到3.8版的字节码,这其中跨越了24年的python版本,此外还包括Dropbox的Python 2.5字节码和一些PyPy字节码。
github项目:https://github.com/rocky/python-uncompyle6
------------------
安装
pip install uncompyle6
(事实上,pip install uncompyle2 也会跳到安装uncompyle6)
使用
执行指令1
-o outfile必须先写,例如有一个pcat.pyc,想反编译输出文件为pcat.py
uncompyle6 -o pcat.py pcat.pyc
执行指令2
uncompyle6 pcat.pyc > pcat.py
windows上使用uncompyle6
事实上比uncompyle2容易多了,在windows里pip安装后,会在%python_home%\Scripts\目录下生成uncompyle6.exe
所以只要你把%python_home%\Scripts\加入到windows的环境变量里,即可像在linux上般使用uncompyle6命令。
右键添加快捷反编译的方法
1.python3 安装 uncompyle6.exe
pip installer uncompyle6 -i https://pypi.mirrors.ustc.edu.cn/simple/
#安装成功后,在python的Scripts文件中找到uncompyle6.exe
#拷贝出来,放到自己需要的目录下,也可以不拷贝,看自己需要
2.编辑 pyc反编译.bat 文件
路径要uncompyle6.exe的实际存放位置。
@echo off
D:
cd D:\2.tools\ctf-tool\re\uncompyle
set path=%~dp1
start uncompyle6.exe -o %path%\. %1
pause
3.运行中输入shell:SendTo 将bat文件放进去
4.使用
右键点击需要反编译的pyc文件,发送到"pyc反编译.bat" 就会在当前目录下生成编译的py文件