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文件放进去

python在线反编译工具 python能反编译_batch

python在线反编译工具 python能反编译_开发语言_02

4.使用
右键点击需要反编译的pyc文件,发送到"pyc反编译.bat"  就会在当前目录下生成编译的py文件

python在线反编译工具 python能反编译_反编译_03