首页
社区
课程
招聘
[原创][KCTF2021]第十题 一统江湖 WriteUp ---- 龙猫变换 黑盒解法
发表于: 2021-5-31 20:04 13768

[原创][KCTF2021]第十题 一统江湖 WriteUp ---- 龙猫变换 黑盒解法

2021-5-31 20:04
13768

一,    分析篇

a)      程序整体流程很简单,如图:

大致流程就是,key做一个变换(Aes256Encrypt,随手写的名字,其实不是),跟name比较一下,相等则成功。

Name需要扩展到16字节:

Key由16进制字符串转成字节码

Aes256Encrypt,跟https://github.com/kokke/tiny-AES-c/blob/master/aes.c,里面的Cipher结构一模一样。


只是AddRoundKey不一样而已,AddRoundKey做了一点点事情,见下图

b)      一个让IDA死掉的函数

里面有大约2.5M的汇编代码。至于是啥,完全不知道。

c)      所以结论:完全不想逆401610这个函数。

二,    猜想篇


还好,401610里面没有anti,写个程序调用一下(这里为了方便,直接调用上面的AddRoundKey函数(因为进出都是16字节)

我们输入 00000000000000000000000000000000

发现输出了6DE448F7A5202570F7283A8BF98BCC63

然后输入了00000000000000000000000000000001

发现输出了EFD30F8DCF306277DEDA00D2E7F06DC4

然后输入了80000000000000000000000000000000

发现输出了CDF38AF72C4C18072CD8D383C7599A74

然后输入了80000000000000000000000000000001

发现输出了4FC4CD8D465C5F00052AE9DAD9223BD3

然后发现 6DE448F7A5202570F7283A8BF98BCC63 xor EFD30F8DCF306277DEDA00D2E7F06DC4 xor CDF38AF72C4C18072CD8D383C7599A74 = 4FC4CD8D465C5F00052AE9DAD9223BD3

看上去就是一个巧合!!

逆不了题目,我们靠猜来弥补:

首先我们假设作者的这个函数是可逆的(一定可逆),而且没有多解!!!(有多解可以看到女装照)

所以,我们假设作者这个AddRoundKey里面设置了128个向量表和一个基础0号向量base(6DE448F7A5202570F7283A8BF98BCC63),按照输入的bit位是否为1,决定了是否异或向量表中的这一项。换句话说,就是128个向量的叠加(有限域2的世界里面,加法就是异或运算)。

即 Y = A*x + B。A是128向量矩阵,B是base向量,x是输入,Y是输出。

然后调用exe里面的AddRoundKey把这128个向量(输出结果要异或一下base向量)给抓出来(不列举了):


然而很快就被打脸了!!



按照上面的猜想 “00000000000000000000000000000001” 与 “00000000000000000000000000000002” 输出叠加后应该是“00000000000000000000000000000003”的输出,结果却等于了“00000000000000000000000000000004”的输出,恰好等于我们的2号向量(1 <<2)


不仅这一组,我们发现,还有很多组都是这样的。写个程序,跑一下我们的iv表,得出例外(3个向量异或值为全0),这样一共有42组(下图):也就是说,我们的向量表,实际上不能生成叠加后的任意值,不是线性无关的128个向量。一共42组,每组3个,覆盖了126bit。


每个bit,只出现了一次,没有重叠!没有重叠!没有重叠!重要的事情说三遍,如果重叠了,直接就放弃了!

基于我们大概率看不到女装照,所以应该想办法把向量弄成线性无关的。

我们继续靠猜想来弥补:

观察0,1,2这组,其实是 1,2,4bit位的向量值


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-5-31 21:29 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 10
支持
分享
最新回复 (8)
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
2
思路奇特,这个要学习了
2021-5-31 20:21
0
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
此大侠不走寻常路
2021-5-31 21:30
0
雪    币: 5568
活跃值: (3208)
能力值: ( LV12,RANK:407 )
在线值:
发帖
回帖
粉丝
4
解题方法厉害,绕道而行,黑盒中的经典
2021-6-2 10:39
0
雪    币: 3072
活跃值: (20)
能力值: ( LV1,RANK:40 )
在线值:
发帖
回帖
粉丝
5
学习一招,黑盒测试
2021-6-2 10:55
0
雪    币: 181
活跃值: (621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
,强啊,仰望
2021-6-2 23:04
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
7
膜拜海风大侠
2021-6-3 09:51
0
雪    币: 630
活跃值: (570)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
膜拜海风大大~
2021-6-3 23:15
0
雪    币: 13076
活跃值: (4077)
能力值: ( LV15,RANK:1673 )
在线值:
发帖
回帖
粉丝
9
膜拜大侠
2021-6-15 20:18
0
游客
登录 | 注册 方可回帖
返回
//