首页
社区
课程
招聘
3
[原创]部落冲突-解题思路
发表于: 2019-6-19 15:57 9772

[原创]部落冲突-解题思路

2019-6-19 15:57
9772

“部落冲突”破解思路

------------------------------

 

“部落冲突”是一个模拟实战环境的CM。

模拟场景:攻击者得到了一组授权后,通过观察分析,使用相关技术推算得到另一组授权。

 

“部落冲突”是“七十二疑冢”的升级作品。

“七十二疑冢”考验的是攻击方的CRC算法能力。它选用了CRC校验作为基本运算,而CRC函数(在多项式意义下)是线性运算的,从而使得“七十二疑冢”能被高效破解。

为了进一步提高难度,“部落冲突”采用了哈希函数作为作为基本运算,而序列号就是依次序改变哈希函数种子的下标。算法如下:

上一轮种子经过哈希函数生成的散列值(256bit),叠加上由序列号指定的常向量(给定256个向量,每个向量256bit)计算出本轮迭代值,作为下一轮哈希的种子。

按照这样的规则迭代下去,直至穷尽序列号。

如果最终计算结果得到全0序列(256bit),即为破解成功。

或者说,要想正面攻克部落冲突本质上就是一个寻找弱碰撞的过程,其穷举难度很大。

如果把破解思路安排在hash碰撞上,太没意思,而且也是违规的。

 

作者安排的正确解法是什么呢?

 

“部落冲突”模拟了一个正版软件。

假设攻击方花钱购买了这个软件,并获得了一个(以狂场为用户名的)正确序列号,然后这个攻击者想求出另外一个用户(用户名为“你”)的正确序列号。

上述计算过程被包装成一个名为“部落冲突”的游戏。

要求解的序列号就是“你”的走位,只有成功躲开所有射击(中0箭)才能活着走出战阵(破解成功)。

而“你”不是唯一的玩家。游戏中已经有一名叫做“狂场”的通关玩家,并且题干中已经显式给出了他的走位(已知一组正确序列号)。

通过分析“狂场”的走位,发现其中暗藏的规律,应当可以得到解题思路。

 

分析过程如下:

1)观察狂场的走位,序列号本身并无特殊规律 --> 解题线索蕴藏于走位过程中

2)游戏的流程是单向进行的,每一轮迭代值由哈希算法迭代生成,不可逆推或跳过 --> 必须一步一步跟踪迭代结果

3)脱壳后最先可以看到256*256bit的向量表,看起来数据随机毫无规律(但作者是有机会在其中精心构造数据的) --> 作为用来叠加到散列值的向量,不太可能单独成为解题线索,所以攻击者不能抛开哈希函数和散列值单独分析向量表

4)哈希函数得到怎样的散列值,对于出题者来说也是难以控制(预测或构造)的,同时哈希函数因其特性可以作为伪随机数生成器(或伪随机数生成器的一部分) --> 散列值应当依概率满足伪随机序列的特点,因此也不能作为作者预埋解题线索的地方

5)结合3)4)分析,尽管向量表和散列值都看似随机,但根据计算流程,二者的叠加结果才是真正值得分析的,作者预留的解题线索只能在这个地方

6)如果此题的计算过程真的都是随机的,那么作者也难设计有效解法 --> 作者预埋的解题线索必然是“不随机”的

所以,分析向量表和散列值的叠加结果的随机性,是此题的解题线索。

据此分析“狂场”的走位,使用经典的随机性检测方法*分别对迭代值进行随机性检测,会发现:每3步会出现一个“游程分布*”严重不随机的迭代值。


本题的随机性检测方法,基于 国家密码管理局发布的《GM/T 0005-2012 随机性检测规范》

具体算法如下:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-6-24 21:51 被kanxue编辑 ,原因:
收藏
免费 3
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2022-7-27 01:41
心游尘世外
为你点赞~
2022-7-26 23:31
飘零丶
为你点赞~
2022-7-17 03:22
最新回复 (16)
雪    币: 1387
活跃值: (85)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
版主好,我是本次2019.6 CTF防守方第七题队长。
以上为更新的解题思路,烦请查收指正。
最后于 2019-6-24 10:22 被Venessa编辑 ,原因:
2019-6-19 16:07
0
雪    币: 8209
活跃值: (4559)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
3
厉害了

我做了一个改进剧情的版本,自娱自乐一下
上传的附件:
2019-6-24 14:15
0
雪    币: 55923
活跃值: (21565)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
ccfer 厉害了我做了一个改进剧情的版本,自娱自乐一下
你也厉害!
2019-6-24 14:37
0
雪    币: 911
活跃值: (1358)
能力值: ( LV12,RANK:280 )
在线值:
发帖
回帖
粉丝
5
The input file was linked with debug information
 and the symbol filename is:
'C:\Users\Administrator\Desktop\Crackme_CoC_0604 - SMC\Crackme_CoC\Release
最后于 2019-6-24 16:31 被waiWH编辑 ,原因:
2019-6-24 16:20
0
雪    币: 2517
活跃值: (4389)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你好,可不可以发一下整个工程源码让我们学习下啊,主要是我遇到个问题,我如下操作:
方式1:先运行程序->输入你给的注册码(不回车)->OD附加->resume所有线程->跑回程序按回车->返回OD按F9运行
方式2: 先运行程序->OD附加->resume所有线程-> 输入你给的注册码并回车->OD按F9运行
结果如图,然后我就不知所措了=。=

2019-6-24 16:57
0
雪    币: 211
活跃值: (876)
能力值: ( LV9,RANK:172 )
在线值:
发帖
回帖
粉丝
7
to 楼上, GetForegroundWindow patch一下就可以。
2019-6-24 17:31
0
雪    币: 10846
活跃值: (1089)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
9
ccfer 厉害了我做了一个改进剧情的版本,自娱自乐一下
ccfer有才啊!
2019-6-24 21:17
0
雪    币: 10846
活跃值: (1089)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
10
waiWH The input file was linked with debug information and the symbol filename is:'C:\Users\Admin ...
佩服
2019-6-24 21:23
0
雪    币: 435
活跃值: (1392)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
11
按规则lz应该公开程序二次处理包括反调试的方法
2019-6-24 21:24
0
雪    币: 2517
活跃值: (4389)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
vmtest to 楼上, GetForegroundWindow patch一下就可以。
你的意思是我切换窗口造成了他输入的问题吗,为什么会这样
2019-6-24 21:28
0
雪    币: 6840
活跃值: (3719)
能力值: ( LV13,RANK:1664 )
在线值:
发帖
回帖
粉丝
13
请问你的256个数组是怎么生成的?怎么保证3步就有一个P值较小的结果呢?
2019-6-24 21:37
1
雪    币: 10
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
bitt 按规则lz应该公开程序二次处理包括反调试的方法
只是个科锐的作业壳, 就不献丑了
2019-6-25 00:31
0
雪    币: 5583
活跃值: (3508)
能力值: ( LV12,RANK:417 )
在线值:
发帖
回帖
粉丝
15
loom 只是个科锐的作业壳, 就不献丑了
这个壳还是挺厉害的。
消除初步反调试和SMC后,进入下一个环节
释放第二个节里的信息,从0 x2824开始,是一个exe文件(不能运行,还需要修正),将里面的file header赋给外层程序,然后将里面的节信息拷贝到外层程序里面,之后再创建堆,又释放一堆代码,然后再跳转到一个固定的地址。至此,应该是SMC全部完成了。
还是挺厉害的,希望作者大佬能公布下
2019-6-29 07:52
0
雪    币: 977
活跃值: (435)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
16
htg 这个壳还是挺厉害的。 消除初步反调试和SMC后,进入下一个环节 释放第二个节里的信息,从0 x2824开始,是一个exe文件(不能运行,还需要修正),将里面的file header赋给外层程序,然 ...
这个壳具体实现思路以及流程 我会发个帖子写出来 不出意外的话 周末之前会发到论坛里 感谢大佬对这个壳的关注 我看你分析也分析到了关键点  很优秀了
2019-6-29 09:15
0
雪    币: 13713
活跃值: (2846)
能力值: ( LV15,RANK:2663 )
在线值:
发帖
回帖
粉丝
17
学习了
2019-7-2 00:54
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册