逆向Pyinstaller打包程序的一个方法
逆向Pyinstaller打包的exe文件源码 我们都知道可以使用库可将.py文件编译成.exe文件运行,我们就从将脚本编译成.exe并将.exe的源码内容反编译出源文件。 写在前面 我们都知道可以使用Pyinstaller库可将.py文件编译成.exe文件运行,这篇文章我们就从将脚本编译成.exe并将.exe的源码内容反编译出源文件。 环境工具 Python 3.8.10:没有自己下载 Pyinstaller库:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller==5.13.0 pyinstxtractor.py:下载地址 编译程序 检查环境 1 python -V 如果执行成功就可以了 编写脚本 awa.py 1 2 3 4 5 6 7 8 9 10 11 12 import datetime # 函数 def test(): print("====666====") input_text = input("我是说的道理1") # 打印格式化时间和用户输入的内容 print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S ") + input_text) if __name__ == '__main__': test() 打包程序 首先安装打包程序所使用的库pyinstaller,这里用了清华源并且指定使用了5.13.0版本库 1 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller==5.13.0 找到脚本所在的文件夹,我的是D:\ cd 到此路径下,并输入以下打包命令: 1 Pyinstaller -F awa.py 命令执行完毕后,会看到completed successfully.字段,表示.exe文件生成成功,在dist文件夹中。 逆向过程 首先我们下载反编译脚本pyinstxtractor.py与我们要反编译的.exe文件放入同一个工作目录下 然后我们继续在命令行cd到dist文件夹,输入以下命令并执行: 1 python pyinstxtractor.py awa.exe 执行完毕,看到Successfully字样,会生成awa.exe_extracted文件夹 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [+] Processing FDP配置在线更新2.exe [+] Pyinstaller version: 2.1+ [+] Python version: 3.8 [+] Length of package: 32503973 bytes [+] Found 141 files in CArchive [+] Beginning extraction...please standby [+] Possible entry point: pyiboot01_bootstrap.pyc [+] Possible entry point: pyi_rth_pyqt5.pyc [+] Possible entry point: pyi_rth_pkgutil.pyc [+] Possible entry point: pyi_rth_inspect.pyc [+] Possible entry point: 下载json.pyc [+] Found 225 files in PYZ archive [+] Successfully extracted pyinstaller archive: FDP配置在线更新2.exe You can now use a python decompiler on the pyc files within the extracted direct ory 进入该文件夹,里面有许许多多后缀为.dll和.pyd的文件,还有一个名为PYZ-00.pyz_extracted的文件夹,这个文件夹里放的是程序引入的依赖库,如果你引入过自己其他的.py文件,就可以用类似的方法将依赖的.py文件反编译出来 在目录中我们要找到awa.pyc和与你的awa.exe文件同名的文件 然后就可以把这个.pyc文件拿到搜索引擎上面的任意一个pyc转py文件的网站转换了
以上内容来自博客订阅源,版权归原作者。关注作者后可以在 关注列表 第一时间查看作者文章。

登录后,加入这场讨论。
登录参与