BugCTF黄道十二宫

一、简述

BugkuCTF 的古典密码题目,复盘一下,依旧 C 语言实现。

题目地址:黄道十二官 - Bugku CTF平台

二、思路概括

1. 识别

看到题目名称"黄道十二宫"或图片中大量古怪符号(几何图形、天文符号、特殊字符),直接锁定为 Z340 密信套路。

2. 重排

按照"跳马步"(Knight's Move)规则,将字符重新组合。通常是 15列宽 的矩阵,采用"向下一行,向右两格"的路径读取。

3. 替换

利用词频分析或爬山算法(Hill-climbing),寻找最符合英文语言规律的字母映射表。

三、解密原理

1. 几何置换原理 (The 1,2-Shift Rule)

Z340 密信最精妙的地方在于它不是横着读或竖着读的。它将 340 个字符排成矩阵,读取规则如下:

  • 从左上角 开始。

  • 每读一个字符,坐标向下移动 1 行,向右移动 2 格。

  • 当触碰到右边界时,取模回绕到左边;当触碰到下边界时,回到顶行。

目的:打破单词的连续性,使得即便看破了符号代表什么字母,也读不出有意义的句子。

2. 同音替换原理 (Homophonic Substitution)

这是为了对抗传统的"频率分析":

  • 简单替换:E 永远对应 %。攻击者只要数哪个符号最多,就知道那是 E。

  • 同音替换:E 可以随机对应 %, *, #, @。这样每个符号出现的频率都会下降,变得平均,让简单的统计学失效。

破解原理:虽然单个字符频率平均了,但双字符组(Bigrams)或三字符组(Trigrams)(如 THE, ING)的联系依然存在。现代解密工具(如 AZdecrypt)通过计算这些组合的概率对数来强行"拼图"。

3. 编程实现逻辑 (C实现)

在编写时,本质上是在做坐标映射。

公式:Index = (Row * Width + Column)

通过循环控制 Row 线性增长,Column 以步长 2 循环增长,从而将二维的视觉矩阵拉平为一维的逻辑字符串。

通过程序获取到正确排列后使用 AZdecrypt工具将字符密文粘贴进去Solver解密即可

AZdecrypt工具可以在GitHub下载,下载后解压缩,运行.exe文件直接使用即可

地址:https://github.com/doranchak/azdecrypt

正确密文:

%%>%,,@3*

,#(#0+@#+

,@)8@7@*7

@@1#5&8=,

*9@=)#6#7

>0#7%%8$+

@-#5?*13@

?7-+(^(*=

=$$1*=+#=

=^4~@)8%=

%=0,*&*,+

8*1*1>@#)

8@76%=@%6

%,,?#1(%1

5@(#>%,,,

四、代码

cpp 复制代码
#include<stdio.h>
main(){
	int i,start,r,c;
	char str[135] = 
	{	'%',',',',','@','*','>','@','?','=','=','%','8','8','%','5',',','@','%','#','@','@',
	'9','0','-','7','$','^','=','*','@','1','7',',','(','>','(',')','1','@','#','#','-','$',
	'4','0','~',',','*','6','?','#','%','#','8','#','=','7','5','+','1','(','*','@','*','1',
	'%','#','>',',','0','@','5',')','%','?','%','*','^','=',')','&','>','=','1','%',',','+',
	'7','&','#','8','6','8','1','(','+','8','*','@','@','(',',','@','@','@','#','*','=','#',
	'$','3','*','#','%',',','#','%','%',',','3',',','*','+','7',',','7','+','@','=','=','=',
	'+',')','6','1'};
for(start= 0;start<15;start++){
	c = start;
	r = 0;
	for (i=0;i<9;i++){
	printf("%c",str[r*15+c]);
	r = (r+1);
	c = (c+2)%15;
	}
	printf("\n");
 }
}
相关推荐
微尘hjx5 小时前
【ByteTrack 04】多轨迹算法ByteTrack改进点
算法·yolo·目标检测·目标跟踪·bytetrack·ultralytics·车跟踪
小蒋观天下9 小时前
雷击与浪涌防护:前端SPD选型、接地网误区,接地不当反而引入干扰
深度学习·算法·机器学习
HackTwoHub10 小时前
双通道红队 C2,MCP 接入 AI,全自动渗透实战利器,具备自动提权、进程伪装、无文件上线能力,载荷 AES 加密
安全·web安全·网络安全·系统安全·密码学·可信计算技术·安全架构
WBluuue11 小时前
数据结构与算法:分块(一):块状数组、块状链表
数据结构·c++·算法·链表
澳鹏Appen12 小时前
澳鹏重磅发布ExamOCRBench:面向端到端试卷判分的多任务基准
算法·benchmark·基准评测
benjormin12 小时前
Java数据结构 二叉搜索树
数据结构·算法
人工智能培训12 小时前
知识图谱:结构化表达实体与关系的知识组织技术
大数据·人工智能·算法·重构·生活·知识图谱
地平线开发者13 小时前
QAT 实战:从 PyTorch 模型到 J6E 实板精度与延时验证
pytorch·算法·自动驾驶
IT星宿13 小时前
github-gravity:用 Rapier2D 把 GitHub 贡献图做成 SVG 物理动画
算法·github