首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
CTF对抗
发新帖
0
0
[原创]第七题:戌时·暗能潜流
发表于: 2026-8-21 09:17
37
[原创]第七题:戌时·暗能潜流
Kazusa
2
2026-8-21 09:17
37
## 1. 从等长样例确定主体数据位 `Hello` 和 `abcd!` 的长度相同,因此只依赖长度的摘要/填充位在逐位差分时 完全相消。把明文拆成高、低半字节后做模 16 差分,7 个发生变化的明文 半字节恰好对应密文中的 7 个变化位置。结合其余样例,可分离出每个 12 位 输出单元中的真实数据位置: ```text 满 6 个数据位:0, 2, 3, 5, 8, 10 余 4 个数据位:4, 6, 7, 9 余 2 个数据位:8, 10 ``` 其余位置是固定的 `4/5` 标签;末组不满时再按输入长度填入固定的 `2233` 摘要单元。因此密文长度总是 12 的倍数,摘要扰动确实只与输入 长度(更准确地说是 `2*len(plain) mod 6`)有关。 ## 2. 半字节偏移 令密钥三位为 `a,b,c = 1,2,1`,基础偏移为: ```text s = a + b + c = 4 ``` ASCII 字节拆成高、低半字节后: ```text H' = (H + s + a) mod 16 = (H + 5) mod 16 L' = (L + s) mod 16 = (L + 4) mod 16 ``` ## 3. HexMaze 位置重排 先把整个已偏移的半字节序列反转。随后每 6 位一组,以中间密钥数字 `b=2` 作为路线宽度:先取头 2 位,再逆序取尾 2 位,最后取中间剩余位。 完整分组的位置表是: ```text [0,1,2,3,4,5] -> [0,1,5,4,2,3] ``` 尾组只有 4 位或 2 位时,同一规则自然退化为: ```text 4 位:[0,1,3,2] 2 位:[0,1] ``` 最后根据上一节的数据位置表嵌入 12 位输出单元,并填固定标签和长度摘要。 ## 4. 密钥 `121` 三位的作用 - 第一位 `a=1`:区分高、低半字节,高半字节比低半字节多循环偏移 1; 同时令长度摘要的成对值由 `2` 扩为 `2/3`。 - 中间位 `b=2`:规定 HexMaze 每组“取头/取尾”的宽度为 2,也是长度摘要 基值 `2`。 - 最后一位 `c=1`:作为奇偶方向位;`1` 表示在分组路线前反转整个半字节 序列。 - 三位之和 `1+2+1=4` 是低半字节循环偏移和固定标签的基值,高半字节 使用 `4+1=5`。 ## 5. 验证 `solve.py` 同时实现了解密和正向加密。它会先逐组验证四个样例,再把解出 的 FLAG 正向加密;只有重新得到题目中完全相同的 144 位密文才通过断言。
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
上传的附件:
solve.py
(5.05kb,2次下载)
收藏
・
0
点赞
・
0
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
0
)
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
Kazusa
2
6
发帖
21
回帖
90
RANK
关注
私信
他的文章
[原创]第七题:戌时·暗能潜流
37
[原创]第六题:酉时·书院迷局 从双分支耦合到代数逆推
399
[原创]第四题:未时·车流困城 从异常控制流到代数逆推 9226 位 Serial
445
[求助]关于全局hook键盘钩子后出现的一个问题
4016
[求助]关于第7章win内核部分。。
3567
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
谁下载
×
huangyalei
pzhxbz
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部