首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
CTF对抗
发新帖
0
0
[原创]# KCTF 2026 签到题「辰时·钟鸣破晓」Writeup
发表于: 2026-8-17 13:49
12
[原创]# KCTF 2026 签到题「辰时·钟鸣破晓」Writeup
mb_ysmfnwyc
2026-8-17 13:49
12
## 题目信息 - 文件:`kctf_rosetta.rar` → `kctf_rosetta.exe`(x86-64 控制台 PE,4KB) - 已知合法对: - Name = `CAAA1C964B15D9B3` - Serial = `$/.;-):,(-#!%*-&?+@` - 目标:求 Name = `KCTF` 对应的唯一 Serial ## 逆向分析 程序为「名称 → 序列号」注册算法: 1. 读取 Name(≤39 字符)与 Serial(**必须恰好 19 字符**)。 2. Serial 校验: - 在固定位置 4、9、14(0-based)必须是 `-`(由位掩码 `0x4210` = 位 4/9/14 决定)。 - 其余 16 个字符经「字典表」映射到 `0..15` 的一个排列(互不相同、覆盖全部 16 个值)。 3. 核心函数 `0x1400013e0`(Rosetta 校准): - 初始 S-box = 恒等排列 `[0..15]`(位于 0x140002080)。 - 用 Name 作种子,对 S-box 做类 Fisher-Yates 洗牌:对每字符 `c`,`idx=i&0xf`,`edi=((c>>4)^c)&0xf`(累加进 `a`),再 `edi^=(r9&0xf)`,`r9+=3`,交换 `S[idx]` 与 `S[edi]`。 - 输出 `out[k] = S[(a+k)&0xf]`,`k=0..15`(`a` 为最终累加和)。 4. 将 16 字节 `out` 与 Serial 解析出的符号序列逐字节比较,全相等则校准通过。 5. 字符→符号字典表位于 0x140002000(32 个 dword,索引 = `(char+0xdf)&0xff`,有效范围字符 `'!'..'@'`);`'('` 特殊处理(`^1`)。 ## 求解 用 Python 复现上述算法,`generate(name)` 复原 `out`,再经反向字典映射为字符并插入 3 个 `-`,得到 19 位 Serial。 **以已知对 `CAAA1C964B15D9B3` 自校验:复现结果与原 Serial 完全一致,且回解析吻合 → 算法正确。** ## 答案 - Name `KCTF` 的 Serial 为: ``` &/@$-,*?:-!#)%-;+(. ``` (19 字符,dash 在 4/9/14;16 个非 dash 字符对应符号序列 `9,10,3,12,13,14,0,15,4,7,11,1,5,6,2,8`,是 0–15 的排列,与 `generate(b'KCTF')` 吻合。)
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
收藏
・
0
点赞
・
0
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
0
)
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
mb_ysmfnwyc
3
发帖
1
回帖
10
RANK
关注
私信
他的文章
[原创]KCTF 2026 · 第二题「巳时·绿光幽语」Writeup
14
[原创]# KCTF 2026 签到题「辰时·钟鸣破晓」Writeup
12
[原创]KCTF 2026 · 第五题「申时·忆海倒带」Writeup
11
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部