其他技术 / 埋没技术 · 2023年3月9日 0

逆向pyinstaller打包的exe软件,获取python源码

前言

基于pyinstaller打包的exe软件,逆向出py源码,但逆向出的源码与真实源码有实际出入,但可以看出大概且可以实际使用

工具准备

1.pyinstxtractor.py工具,github地址:https://github.com/extremecoders-re/pyinstxtractor。直接下载:
pyinstxtractor20230309032738140下载
2.uncompyle6工具,安装步骤:pip install uncompyle6或python -m pip install uncompyle6
3.notepad++(https://pan.ymypay.cn/api/raw/?path=/Files/%E8%BD%AF%E4%BB%B6/Notepad8.1.9.exe)以及HEX-Editor插件(github地址:https://github.com/chcg/NPP_HexEdit)
  或
  UltraEdit,也是文本查看工具,比notepad++更强大,下载以及破解放地地址:(32位:https://pan.ymypay.cn/api/raw/?path=/Files/%E8%BD%AF%E4%BB%B6/UE_26_x32_%E5%AE%89%E8%A3%85%E7%89%88.zip
64位:https://pan.ymypay.cn/api/raw/?path=/Files/%E8%BD%AF%E4%BB%B6/UE_27_x64_%E5%AE%89%E8%A3%85%E7%89%88.zip)
4.需要逆向的exe软件(pyinstaller打包的)

开始逆向

第一步 逆向出pyc文件

python路径\python.exe pyinstxtractor.py exe文件
可以指定python版本进行反编译

第二步 进入xxxxxextracted文件夹

第三步 利用notepad++或ue工具十六禁止打开struct.pyc文件与xxx.pyc文件

反编译步骤出来的这两个文件一定有pyc后缀,若没有,则是pyinstxtractor版本低或pyinstxtractor反编译失败,可尝试换python版本尝试
反编译出来的struct.pyc文件与xxx.pyc两个文件头如果不一样,则需把struct.pyc文件头(12个字节)附加到xxx.pyc头部,随后保存即可

第四步 反编译pyc文件

uncompyle6 xxx.pyc > xx.py
同样,此工具也可以指定python版本

其他

若确保pyc文件没问题,但uncompyle6 不支持反编译,因为uncompyle6到目前2023年3月9日只支持到3.9,具体支持可到github查看,github地址:https://github.com/rocky/python-uncompyle6
可用工具:pycdc,github地址:https://github.com/zrax/pycdc
此工具使用方法及编译方法:https://blog.csdn.net/qq_63585949/article/details/127080253


微信扫描下方的二维码阅读本文