首页
社区
课程
招聘
[原创]KCTF 2026 - 签到题:辰时·钟鸣破晓 分析
发表于: 15小时前 42

[原创]KCTF 2026 - 签到题:辰时·钟鸣破晓 分析

15小时前
42

程序无 CRT 依赖,直接使用 Windows API 进行 I/O,是一个纯手写的紧凑验证器。

程序依次提示并读取两行输入:

Serial 必须恰好 19 字符,结构为:

关键常量 n16912 = 16912 = 0x4210,其二进制位 4、9、14 置 1,标记分隔符位置。

最终校验 n16 == 16 && n0xFFFF == 0xFFFF:恰好 16 个符号,值 0-15 各出现一次(构成排列)。

使用 SSE2 pcmpeqb + pmovmskb 做一次性 16 字节比较,0xFFFF 表示全等。

当字符为 ( (ASCII 40) 时,查表值 3 与 1 异或,结果为 2。其余字符不受影响。

数据位于 0x140002000,32 个 DWORD 条目,覆盖 ASCII 33–64:

有效符号共 16 个,映射到值 0–15 形成双射:

该函数以 Name 为输入,输出一个 16 字节的排列(值 0–15 的置换)。

算法分为两阶段:

注意:当 Name 长度超过 16 时,v4 & 0xF 会回绕,同一位置可能被多次交换。

初始状态 xmmword_140002080 位于 0x140002080,内容为:

[0, 1, 2, ..., 15],通过 movdqa 一次性加载。

公共 Serial $/.;-):,(-#!%*-&?+@(19 字符):

解码排列:[12, 10, 8, 5, 11, 15, 13, 2, 7, 4, 1, 14, 9, 0, 6, 3]

对 Name CAAA1C964B15D9B3(16 字符)执行算法:

最终 state = [0, 6, 3, 12, 10, 8, 5, 11, 15, 13, 2, 7, 4, 1, 14, 9]

旋转量 rot = 979 & 0xF = 3

输出排列 perm[i] = state[(3+i) & 0xF]

与 Serial 解码排列完全一致,验证通过

Name KCTF(4 字符),ASCII: K=75, C=67, T=84, F=70

最终 state = [15, 4, 7, 11, 1, 5, 6, 2, 8, 9, 10, 3, 12, 13, 14, 0]

旋转量 rot = 297 & 0xF = 9

输出排列 perm[i] = state[(9+i) & 0xF]

期望排列:[9, 10, 3, 12, 13, 14, 0, 15, 4, 7, 11, 1, 5, 6, 2, 8]

将 16 个值按值→符号反查表编码,并按 SSSS-SSSSS-SSSSS-SS 格式插入分隔符:

由 AI 完成。

项目 内容
题目名称 KCTF 2026 - Rosetta Calibration
二进制文件 kctf_rosetta.exe
架构 x86-64 (PE64)
SHA256 caaa1c964b15d9b3250be0dc64412e5f64c29e297a971c226e8dd705d6b87e67
公共有效对 Name: CAAA1C964B15D9B3 / Serial: $/.;-):,(-#!%*-&?+@
目标 求出 Name KCTF 对应的唯一 Serial
指标 数值
函数总数 5
字符串总数 12
代码段 .text (0x140001000–0x140002000, 4KB)
只读数据段 .rdata (0x140002000–0x140003000)
导入函数 GetStdHandle, ReadFile, WriteFile, ExitProcess (均来自 KERNEL32.dll)
入口点 start (0x140001000)
地址 名称 大小 功能
0x140001000 start 905B 主函数:读取 Name/Serial,执行全部校验逻辑
0x140001390 sub_140001390 68B WriteFile 封装(打印字符串)
0x1400013E0 sub_1400013E0 318B 核心算法:由 Name 计算期望排列
0x140001520 sub_140001520 28B 符号→值映射(含特殊 XOR 处理)
0x140001540 sub_140001540 27B 查表:ASCII 字符 → 值 0-15 或 -1
符号 ASCII 表索引 查表值 XOR 最终值
! 33 0 4 0 4
" 34 1 -1 无效
# 35 2 7 0 7
$ 36 3 12 0 12
% 37 4 1 0 1
& 38 5 9 0 9
' 39 6 -1 无效
( 40 7 3 1 2
) 41 8 11 0 11
* 42 9 14 0 14
+ 43 10 6 0 6
, 44 11 13 0 13
- 45 12 -1 无效(分隔符)
. 46 13 8 0 8
/ 47 14 10 0 10
08 48–56 15–23 -1 无效
9 57 24 -1 无效
: 58 25 15 0 15
; 59 26 5 0 5
< 60 27 -1 无效
= 61 28 -1 无效
> 62 29 -1 无效
? 63 30 0 0 0
@ 64 31 3 0 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
符号 ? % ( @ ! ; + # . & / ) $ , * :
位置 符号
0 $ 12
1 / 10
2 . 8
3 ; 5
4 - 分隔符
5 ) 11
6 : 15
7 , 13
8 ( 2
9 - 分隔符
10 # 7
11 ! 4
12 % 1
13 * 14
14 - 分隔符
15 & 9
16 ? 0
17 + 6
18 @ 3
轮次 字符 ASCII v6=c^(c>>4) v5(累加) v3 v7=(v3^v6)&0xF 交换位置 state 变化
0 C 67 71 71 0 7 [0]↔[7] [7,1,2,3,4,5,6,0,...]
1 A 65 69 140 3 6 [1]↔[6] [7,6,2,3,4,5,1,0,...]
2 A 65 69 209 6 3 [2]↔[3] [7,6,3,2,4,5,1,0,...]
3 A 65 69 278 9 12 [3]↔[12] [7,6,3,12,...,2,...]
4 1 49 50 328 12 14 [4]↔[14] [...,14,...,4,...]
5 C 67 71 399 15 8 [5]↔[8] [...,8,...,5,...]
6 9 57 58 457 18 8 [6]↔[8] [...,5,...,1,...]
7 6 54 53 510 21 0 [7]↔[0] [0,...,7,...]
8 4 52 55 565 24 15 [8]↔[15] [...,15,...,1]
9 B 66 70 635 27 13 [9]↔[13] [...,13,...,9,...]
10 1 49 50 685 30 12 [10]↔[12] [...,2,...,10,...]
11 5 53 54 739 33 7 [11]↔[7] [...,11,...,7,...]
12 D 68 64 803 36 4 [12]↔[4] [...,10,...,14,...]
13 9 57 58 861 39 13 [13]↔[13] (无变化)
14 B 66 70 931 42 12 [14]↔[12] [...,4,...,14,...]
15 3 51 48 979 45 13 [15]↔[13] [...,1,...,9]
轮次 字符 ASCII v6=c^(c>>4) v5(累加) v3 v7=(v3^v6)&0xF 交换 state 变化
0 K 75 79 79 0 15 [0]↔[15] [15,1,2,3,4,5,6,7,8,9,10,11,12,13,14,0]
1 C 67 71 150 3 4 [1]↔[4] [15,4,2,3,1,5,6,7,8,9,10,11,12,13,14,0]
2 T 84 81 231 6 7 [2]↔[7] [15,4,7,3,1,5,6,2,8,9,10,11,12,13,14,0]
3 F 70 66 297 9 11 [3]↔[11] [15,4,7,11,1,5,6,2,8,9,10,3,12,13,14,0]
i (9+i)&0xF state[...]
0 9 state[9] 9
1 10 state[10] 10
2 11 state[11] 3
3 12 state[12] 12
4 13 state[13] 13
5 14 state[14] 14
6 15 state[15] 0
7 0 state[0] 15
8 1 state[1] 4
9 2 state[2] 7
10 3 state[3] 11
11 4 state[4] 1
12 5 state[5] 5
13 6 state[6] 6
14 7 state[7] 2
15 8 state[8] 8

冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 0
打赏
分享
最新回复 (1)
雪    币: 158
活跃值: (5361)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
12小时前
0
游客
登录 | 注册 方可回帖
返回