首页 > 编程语言 >python pyinstaller打包的exe 反编译问题记录 破解加密

python pyinstaller打包的exe 反编译问题记录 破解加密

时间:2024-06-21 18:45:42浏览次数:27  
标签:反编译 pycdc exe pyinstaller https 加密 pyc

首先是用pyinstxtractor

这个网上很多教程,不详说了。

生成一个xxx.exe_extracted目录

生成过程中,如果pyinstaller用key加密了,会

[!] Error: Failed to decompress PYZ-00.pyz_extracted\Cython\__init__.pyc, probably encrypted. Extracting as is.

 

这个说是fail了,其实可以解决,后面详说。

 

这个目录里,一堆xxx.pyc文件和一个PYZ-00.pyz_extracted目录

 

反编译.pyc和.pyc.encrypted


Unsupported Python version, 3.9.0, for decompilation

这堆xxx.pyc文件是没有加密的,直接用uncompyle6(也叫decompile3)(仅支持到python3.8,而我这个是3.9)或者pycdc(部分支持3.9及以上)

 

而PYZ-00.pyz_extracted里的.pyc.encrypted是加密了的,需要解密。(这里看情况,一些的程序不需要研究PYZ-00.pyz_extracted里加密了的库文件)

 

 

pycdc(也叫Decompyle++)

(有个在线支持3.9的网站,https://tool.lu/pyc,我怀疑也是用的pycdc。要会员才能多次用,我就没继续用。)

据说Windows上编译比较麻烦,我直接用的编译好的。

https://github.com/serfend/pydumpck

pip安装之后

site-packages\pydumpck\pyc_checker\lib_pycdc\pycdc.exe

 

我是把pycdc.exe复制出来单独运行的,因为我嫌pydumpck生成了几个单独的目录看着麻烦。

[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8

.\pycdc.exe .\a.pyc > .\a.py

 

这里注意,部分.pyc文件会处理发编译部分代码缺失的情况,会出现报错,因为pycdc并没有完善地支持python3.9+(Unsupported opcode )

 

 

 

struct magic number

https://github.com/MrWQ/reverse_pyinstaller

https://bbs.kanxue.com/thread-277811.htm

多个博客中说需要给.pyc文件前边加几个字节的魔数。不过我没加也用pycdc成功反编译了。不知道为什么

 

(这两个文件是否带.pyc后缀和你使用的pyinstxtractor.py工具版本有关系。V2.0以前的版本,会生成两个不带.pyc后缀的文件,手动为它添加.pyc后缀即可。如下图所示:)

 

 

加密的key隐藏在哪:pyimod00_crypto_key.pyc

解密逻辑参考:

https://tylinux.com/post/2023-09-05-decrypt-pyinstaller-generated-executable-file/

https://blog.csdn.net/GalaxySpaceX/article/details/130591614

 

 

 

 

 

 

 

 

 

标签:反编译,pycdc,exe,pyinstaller,https,加密,pyc
From: https://www.cnblogs.com/hhdom/p/18261105

相关文章

  • vb.net c#一键编绎引用DLL如何做?编绎成独立EXE
    .netc#一键编绎引用如何做?3个工程有依懒关系ClassLibrary1,ClassLibrary2,MainProject(主工程)ClassLibrary2依赖ClassLibrary1,MainProject依赖前2个如何实现一键按顺序编绎,自动添加前面2个生成的DLL到主工程,并且设置为不复制到输出目录,"生成操作"属性选择"嵌入的资源"VSI......
  • 如何用Pyinstaller将python脚本打包成exe文件?
    首先用打开cmd命令管理器下载pyinstallerpipinstallpyinstaller国内镜像源pipinstall-ihttps://pypi.douban.com/simple/pyinstaller#豆瓣源pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplepyinstaller#清华源本来我的文件夹只有一个py文件 需要我......
  • 记录pyinstaller打包django项目遇到的坑
    由于工作需要,需要在内网部署一个Django项目生成exe,打包过程遇到了不少坑,在此记录一下。一、安装pyinstaller略。二、打包exe第一个问题:用pyinstaller-F-w生成的exe报错一开始用的是以下命令生成exe:pyinstaller-F-wxx.py导出完毕后,在dist/manage/目录下输入manage.......
  • openpyxl 创建 execl 并设置密码
    代码示例fromopenpyxlimportWorkbook#创建一个新的Excel文件workbook=Workbook()sheet=workbook.active#添加一些示例数据到Exceldata=[["Name","Age"],["Alice",30],["Bob",25],["Charlie",35]......
  • 汇编语言程序设计 - 显示EXE文件的头信息
    一、问题描述本程序旨在读取并显示一个DOS可执行文件(.EXE文件)的头信息。具体来说,该程序需要打开一个名为“xxx.exe”的文件,读取其头部信息并将其逐项打印出来,并在每个信息前面加上相应的标注,使输出的信息清晰易读。二、数据结构程序使用的主要数据结构包括:文件名字符串:存......
  • ADO.NET ExecuteScalar 方法的使用及注意
    ExecuteScalar方法允许我们查询单一结果,我们来看看什么是单一结果,有那些需要注意的事项1.下面是我对 ExecuteScalar的简单封装,接下来我们看看,如何使用///<summary>///查询单一结果///</summary>///<paramname="sql"></param>///<paramname="pars"></param>......
  • 揭秘ThreadPoolExecutor:深度解析Java线程池的艺术与源码之美
    1.线程池概述在Java中,线程池(ThreadPool)是一种管理线程的技术,通过预先创建并管理一组线程,来减少频繁创建和销毁线程所带来的开销,从而提高系统的响应速度和吞吐量。ThreadPoolExecutor是Java并发包java.util.concurrent中的一个核心类,它提供了丰富的线程池功能。2.Thread......
  • 【New Relic】给基于.NET Framework 4.0 的 exe 程序安装New Relic
    由于.NETFramework4.0是比较古老的版本,只有NewRelic7.0以下的版本才会支持.NETFramework4.0的引用程序。 Technicalsupportfor.NETFramework4.0orlower 你可以参考这个官方InstallNewRelictoMonitoryourApp的文档。 1.创建NewRelic账号创建一个Ne......
  • 禁止启动多个winform项目进程程序.exe
    1,在winform项目中 Program.cs文件里添加usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnostics;usingSystem.Linq;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceSMProjectSysetm{internalstaticclassProgram......
  • electron打包angular为exe程序,比较新版本的angular和electron
    一。先创建一个angular项目,具体安装步骤可以查看angular官网介绍,这里不做过多介绍,(https://angular.cn/guide/setup-local)这是官网安装地址,有可能地址会访问不了:1.全局安装AngularCLI:npminstall-g@angular/cli   2.创建一个名称为test的项目:ngnewtest二。安......