首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
CTF对抗
发新帖
0
0
[原创]kctf2026 第二题 巳时·绿光幽语
发表于: 2026-8-11 17:14
67
[原创]kctf2026 第二题 巳时·绿光幽语
S_i_d
2026-8-11 17:14
67
# kctf2026 第二题 巳时·绿光幽语 ## 题目概述 `题目.exe` 是一个 PyInstaller 打包的 Python 程序。运行后提示: ``` 提示,需要还原的代码 def my_function(): print("恭喜成功!") 请输入key还原代码(请输入6个字符) ``` 要求输入 **6 个字符的 key** 还原被加密的代码,还原成功则打印结果。核心逻辑被修改在程序自带的 `python313.dll` 中。 ## 解题思路 ### 1. 定位加密数据 对修改版 `python313.dll` 用 IDA 分析(可与标准版 `标准python313.dll` 对比),在地址 **`0x1804DC690`** 处发现一段内嵌的 Python **marshal 数据**(无直接 xref,被间接访问),内容是一个修改过的冻结模块数据,其中包含: - 一个 `my_function` 的 code object: - co_code(26 字节,合法 3.13 字节码):`RESUME 0; LOAD_GLOBAL print; LOAD_CONST 1; CALL 1; POP_TOP; RETURN_CONST None` - co_consts = `(None, 666)`,co_names = `("print",)` - 8 条 16 字节的加密字符串(提示文本) - 关键常量:`"utf-8"`、整数 `6`、一段 **26 字节加密字符串**、一段 **15 字节加密字符串**,以及 `"co_code"`、`"co_consts"` 等用于 `__code__.replace()` 的名字 - 外围模块代码的名字表中有 `input`、`b_key`、`buffer`、`replace`、`cpu_count`、`succ`、`Exception` 等,即挑战逻辑:读入 key → XOR 解密 → 替换 `my_function.__code__` → 调用 (该 marshal 流的 ref 表是预置的,会出现 `r 25 01` 这类大序号引用,不能直接 `marshal.loads`,需自己写解析器逐字段读。) ### 2. 分析加密方式 加密为 **6 字节密钥循环 XOR**。 8 条提示文本用单字节 `0x55`(即 `UUUUUU`)即可解出,内容为题目界面上显示的那段提示("提示,需要还原的代码\r\ndef my_function():...")。 真正被用户 key 加密的是那段 **26 字节字符串**,它正是用来替换 `my_function.co_code` 的加密字节码。 ### 3. 已知明文攻击推出 key 26 字节恰好对应目标代码 `print("恭喜成功!")` 的完整 3.13 字节码: ``` 95 00 RESUME 0 5b 01 LOAD_GLOBAL 1 (print,含 NULL 位) 00*8 4 个缓存单元 53 01 LOAD_CONST 1 35 01 CALL 1 00*6 3 个缓存单元 20 00 POP_TOP 67 00 RETURN_CONST None ``` 密文前 6 字节为 `ec 62 6d 75 63 72`,与明文 `95 00 5b 01 00 00` 逐字节异或得: ``` ec^95=79 'y' 62^00=62 'b' 6d^5b=36 '6' 75^01=74 't' 63^00=63 'c' 72^00=72 'r' ``` 即 **key = `yb6tcr`**。 **验证一**:26 字节密文用 `yb6tcr` 循环异或,得到完整合法字节码(缓存位全部归 0,`CALL`/`POP_TOP`/`RETURN_CONST` 位置全部吻合)。 **验证二**:另一段 15 字节加密字符串用同一 key 解出 UTF-8 字符串 `恭喜成功!`(即替换后的 co_consts 内容),交叉确认 key 正确。 ### 4. 运行验证  程序正常退出(exit=0),还原成功。 ## Flag ``` yb6tcr ```
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
收藏
・
0
点赞
・
0
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
0
)
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
S_i_d
5
发帖
1
回帖
20
RANK
关注
私信
他的文章
[原创]kctf2026 第二题 巳时·绿光幽语
67
[原创]Copy Fail漏洞深度学习
4804
[原创]部分CWE漏洞代码模式(漏洞格式)列举
3934
[原创]从ANGR-CTF项目入手ANGR和符号执行技术
14575
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部