Pyinstaller打包exe的反编译——LitCTF 2024(公开赛道)ezpython!!!!!

pyinstaller,exe,litctf,ezpython · 浏览次数 : 3

小编点评

##题目 Die打包工具:PyInstaller建议下载GitHub的:GitHub - extremecoders-re/pyinstxtractor: PyInstaller Extractor单独的一个 pyInstaller.py 会很麻烦步骤 **题目描述:** 使用PyInstaller工具打包Python程序,遇到问题。 **解决方案:** 1. 下载GitHub上的pyinstxtractor工具:`GitHub - extremecoders-re/pyinstxtractor: PyInstaller Extractor` 2. 将pyInstaller.py拖放到pyinstxtractor-master文件夹下面 3. 打开cmd窗口 4. 运行pyinstxtractor.py ezpy.exe成功的话,会出现一个类似ezpy.exe_extracted这样后缀的文件夹点进去,可以在文件下找到与exe同名的pyc文件在早些的版本中 5. 注意: * 使用的是新版本的pyinstxtractor,不用补magic在Python3.7及以上版本的编译后二进制文件中,头部除了四字节Magic Number,还有四个字节的空位和八个字节的时间戳+大小信息,后者对文件反编译没有影响,全部填充0即可 * Python3.3 - Python3.7(包含3.3)版本中,只需要Magic Number和八位时间戳+大小信息Python3.3 以下的版本中,只有Magic Number和四位时间戳 **参考链接:** * 原文链接:https://blog.csdn.net/Myon5/article/details/134538103

正文

这个工具折磨了我很久,搭配题目记录一下...

题目

Die

打包工具: PyInstaller

建议下载GitHub的:GitHub - extremecoders-re/pyinstxtractor: PyInstaller Extractor

单独的一个 pyInstaller.py 会很麻烦

步骤:

将exe拖到pyinstxtractor-master文件夹下面,打开cmd

python pyinstxtractor.py ezpy.exe

成功的话会出现一个类似ezpy.exe_extracted这样后缀的文件夹

点进去,能在文件下找到与exe同名的pyc文件

在早些的版本中,XX.exe_extracted文件下,是一个同名的无后缀的文件,需要我们自己补上

 

 注意!!!你要确保使用工具的环境是和Python version一样(我这里是需要3.11)

不然,ezpy.exe_extracted文件夹点进去,类似PYZ-00.pyz_extracted的文件夹会是空的!!

不过文件夹下同名的文件ezpy.pyc倒是不影响反编译成py

 

 我使用的是新版本的pyinstxtractor,不用补magic

在Python3.7及以上版本的编译后二进制文件中,头部除了四字节Magic Number,还有四个字节的空位和八个字节的时间戳+大小信息,后者对文件反编译没有影响,全部填充0即可;
Python3.3 - Python3.7(包含3.3)版本中,只需要Magic Number和八位时间戳+大小信息
Python3.3 以下的版本中,只有Magic Number和四位时间戳。
———————————————

原文链接:https://blog.csdn.net/Myon5/article/details/134538103

本题目用uncompyle6反编译会报错(就是这里坑了我很久)

我没有pycdc,所以找了一个线上反编译工具

这里推荐两个(第一个有次数限制,第二个没有):

python反编译 - 在线工具 (tool.lu)

Pyc 转 Py - 百川在线工具箱 (chaitin.cn)

 

反编译ezpy.pyc

就是一个base64,肯定是换了表

发现需要 Litctfbase64 模块,这个是出题人自己定义的

去 PYZ-00.pyz_extracted 文件夹中找到

PYZ-00.pyz_extracted非常重要,一般一个稍微大一点的项目都会分成多个py文件,甚至会依赖其他模块,这些被依赖的文件解析后都会放入PYZ-00.pyz_extracted中,可以说这里放的是核心代码。

 反编译Litctfbase64.pyc

得到了base64的换表

 

找一个在线自定义base64编解码网站

推荐:在线自定义base64编解码、在线二进制转可打印字符、在线base2、base4、base8、base16、base32、base64--查错网 (chacuo.net)

 flag

LitCTF{61happy_LitCTF_nice_base64}

与Pyinstaller打包exe的反编译——LitCTF 2024(公开赛道)ezpython!!!!!相似的内容:

Pyinstaller打包exe的反编译——LitCTF 2024(公开赛道)ezpython!!!!!

这个工具折磨了我很久,搭配题目记录一下... 题目 Die 打包工具: PyInstaller 建议下载GitHub的:GitHub - extremecoders-re/pyinstxtractor: PyInstaller Extractor 单独的一个 pyInstaller.py 会很麻烦

#Python基础 利用Pyinstaller 模块对python代码进行打包exe

一般我们都用 Python 的 Pyinstaller 模块进行打包,这里记录Pyinstaller 模块进行打包。 一:安装 Pyinstaller 模块 pip install PyInstaller 二:打开cmd(win+R) 三:操作 3.1 切换路径(这里示例文件在E盘) 输入E:来切换

[转帖]pyinstaller实现将python程序打包成exe文件

https://www.cnblogs.com/blogzyq/p/13939739.html 如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序该怎么办呢? 我们想到,在Windows平台可以将程序打包成exe可执行文件,而pyinstaller就可以帮我们将程序打包成exe

CRAPS赌博小游戏

游戏规则 代码实现 首先把这个规则用代码写出来 再在它基础上进行简单的可视化(主要是利用Easygui的界面) 最后查缺补漏,看看有没有什么Bug 利用pyinstaller -F -w -i xx.ico craps.py命令打包成exe文件 from random import randint

桌面应用打包:pyinstaller

在使用python开发一些小工具时,如果其他人电脑中没有python环境或者没有安装相应的第三方库,是没办法运行的,而要求对方安装又不现实,尤其是对方不是技术人员,因此如何将一个独立的python程序,使它成为成为一个不用考虑环境,双击即可运行的桌面应用呢?使用pyinstaller打包是一个不错的选择。

Windows pyinstaller wxPython pyecharts无法正常显示问题

Windows pyinstaller wxPython pyecharts无法正常显示问题 最近遇到一个pyinstaller打包wxPython pyecharts无法显示的问题,pyecharts生成的html页面显示空白。未使用pyinstaller打包时显示正常。 问题原因 WebView