-
-
[原创]KCTF2026第二题解析
-
发表于: 2026-8-21 13:29 53
-
题型
Reverse(PyInstaller 嵌码 / 字节码还原)
题目在干什么
运行后提示:还原代码,输入 6 字符 key。正确则输出「恭喜成功!」。
表面上 main.pyc 只有 sys.exit(0),真逻辑藏在 python313.dll 里被改过的 <frozen os>:import os 时执行校验。
解题步骤
解包
PyInstaller 3.13 onefile → 抽出 python313.dll。
定位
在 DLL 中搜 my_function,于偏移附近 marshal.loads 得到被植入的 os 模块 code object。
还原逻辑(等价)
展示串:8×16 字节 blob,XOR 0x55 后按 UTF-8 解码 → 提示文案。
key = input(),长度必须为 6。
密文字节码 c(26 字节)与校验串 succ(15 字节):
buf[i] = c[i] XOR key[i % 6]
msg[i] = succ[i] XOR key[i % 6]
用 buf 替换 my_function.code.co_code,再调用;msg 应为 UTF-8 的「恭喜成功!」。
求 key
succ XOR UTF-8("恭喜成功!") 周期为 6,得:
yb6tcr
验证
向 exe 输入 yb6tcr → 打印「恭喜成功!」,进程正常退出。
Flag / 答案
yb6tcr
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
最后于 2026-8-21 21:07
被kanxue编辑
,原因:
赞赏
他的文章
赞赏
雪币:
留言: