首页
社区
课程
招聘
[原创]KCTF2019_q4_第三题_街机少年
发表于: 2019-12-6 16:32 7051

[原创]KCTF2019_q4_第三题_街机少年

ccfer 活跃值
16
2019-12-6 16:32
7051
队友给力,很快就用ida把源码逆出来整理好了,我也就直接看源码测试分析瞎折腾了
看了大半天也没琢磨出具体是个什么算法模型,只看出来有两种基本操:
正确的A操作,读取解码后的注册码,一番拆解/查表/计算得到x,y,对T2的数据做减法:T2[x - 1] -= y
正确的B操作,读取解码后的注册码,一番拆解/查表/计算得到x,y,对T2的数据做减法:T2[k] -= (k * k + 1) % T2[k] + 1,其中的k是初始值为5,依次加4取模15
A和B轮换进行,在最后一步A操作完成后T2全0则达到目标,如果B操作后T2全0会失败
感觉直接硬碰硬不是太好对付,转而改变思路,采用万能的穷举大法试一试
对check函数中的几个跳转点稍作修改返回当前状态,为穷举逻辑提供接口
发现穷举可行,每次给两个字节然后调用check函数探测结果,如果状态满意就滚动到遍历下一个索引位置
为了探测多解情况,每个位置穷举出两个解,发现大部队都相同,只有一处出现差异情况
具体运行结果如下:
i=00000001.key=883D
i=00000001.key=883D
i=00000002.key=C888
i=00000002.key=C888
i=00000003.key=43C8
i=00000003.key=43C8
i=00000004.key=A843
i=00000004.key=A843
i=00000005.key=F9A8
i=00000005.key=F9A8
i=00000006.key=42F9
i=00000006.key=42F9
i=00000007.key=F642
i=00000007.key=F642
i=00000008.key=2AF6
i=00000008.key=2AF6
i=00000009.key=202A
i=00000009.key=212A
i=0000000A.key=D420
i=0000000A.key=D421

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-12-6 16:35 被ccfer编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 19
活跃值: (128)
能力值: ( LV9,RANK:146 )
在线值:
发帖
回帖
粉丝
2
2019-12-11 18:21
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
666,穷举大魔王
2020-5-3 23:49
0
游客
登录 | 注册 方可回帖
返回
//