[广东省大学生攻防大赛 2022]pyre

下载附件拿到一个 exe 文件

使用 exeinfo 检测程序特征,识别为 PyInstaller 打包的 Python 可执行文件

使用 pyinstxtractor 对 附件给的exe 程序进行解包,提取出其中的 .pyc 字节码文件

复制代码
python pyinstxtractor.py pyre.exe

弄完操作后,就可以得到一个文件夹

打开后,发现了一个 1.pyc 直接就是一眼丁真,这就是我们的目标。

使用 uncompyle6 对 .pyc 字节码进行反编译,还原为 Python 源码:

复制代码
 uncompyle6 1.pyc > 1.py

搞定之后就能得到一个 1.py

打开进去可以看到加密算法

观察校验逻辑可知,每个字符满足:

ord(a[i]) * 33 % 179 == c[i]

由于输入字符范围有限(ASCII),可以通过枚举可打印字符进行反推。

python 复制代码
c = [144, 163, 158, 177, 121, 39, 58, 58, 91, 111, 25, 158, 72, 53, 152,
     78, 171, 12, 53, 105, 45, 12, 12, 53, 12, 171, 111, 91, 53,
     152, 105, 45, 152, 144, 39, 171, 45, 91, 78, 45, 158, 8]
mod = 179
flag_ord = []

for target in c:
    for ch in range(32,127):
        if (ch * 33) % mod == target:
            flag_ord.append(ch)
            break
print(flag_ord)

flag_str = ""

for i in range(len(flag_ord)):
    flag_str += chr(flag_ord[i])
print(flag_str)

运行后就能得到 flag

python 复制代码
flag{2889e7a3-0d6b-4cbb-b6e9-04c0f26c9dca}
相关推荐
数据知道7 小时前
哈希与密码存储——bcrypt、Argon2、盐值与彩虹表
网络·算法·安全·网络安全·密码学·哈希算法
sbjdhjd7 小时前
从 assert 动态调用报错到临时文件链路:PHP 5.6 与 7.3 授权靶场中的短 payload 复盘 | (17字符绕过)
安全·网络安全·数据挖掘·开源·云计算·php·字符绕过
sbjdhjd7 小时前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
一条泥憨鱼10 小时前
【从0开始学习计算机网络】| TIME_WAIT 为什么是 2MSL,CLOSE_WAIT / TIME_WAIT 堆积怎么排查
服务器·开发语言·网络·计算机网络·网络安全
Best-Wishes10 小时前
sqlmap安全测试使用指南
网络安全
Bruce_Liuxiaowei1 天前
从两个中危漏洞读懂 CVSS 评分体系:向量拆解、数学计算与实战观察
安全·网络安全·漏洞评级
我的小卷呀1 天前
Linux ip 命令底层逻辑与实战指南
linux·运维·c语言·网络协议·tcp/ip·网络安全
合天网安实验室1 天前
Modbus协议及其取证的学习笔记
ctf·modbus·通信协议·取证
泛联新安1 天前
“天神”空降:泛联新安受邀参加第八届“纵横”网络空间创新论坛
网络安全·自动化·代码规范·漏洞挖掘·代码安全·代码漏洞扫描·ai+可信开发
HackTwoHub1 天前
AI自动化信息收集赋能渗透测试!集成多款主流扫描工具,多维智能评分,精准锁定高危资产
运维·人工智能·安全·web安全·网络安全·自动化·系统安全