2024 KCTF 大赛于8月15日正式开赛!比赛设置了多维度的评分体系,包括难度值、火力值和精致度积分,旨在引导竞赛的难度和趣味度,使其更具挑战性和吸引力。同时,也为参赛选手提供了更加公平、有趣的竞赛平台。
今天中午12点,第二题《星际生物》已截止答题。本题围观人数2000+,共有41支战队成功提交flag。前3名分别是【崇文路大专】、【hzqmwne】、【Nepnep】
*注意:签到题《逐光启航》持续开放,整个比赛期间均可提交答案获得积分
接下来一起看下该题的解析思路吧。
赛题解析
本赛题解析由看雪论坛专家【wx_孤城】提供:
CTF 挑战题解析:结合数独和迷宫的多阶段解题过程
参与者需要解决一个涉及数独填充和迷宫导航的复杂问题,最终目标是构造一个符合特定格式的“flag”字符串。这个挑战不仅测试了编程技能,还考验了逻辑思维和解决问题的能力。以下是对题目结构和解题步骤的详细分析。
题目概述
挑战代码要求用户输入一个长度为70字节的字符串,格式为flag{…}。这个字符串被分为两部分处理:
前56个字节用于填充一个9×9的数独。
后8个字节表示一个迷宫中的移动指令。
1、net逆向
拖入dnSpf定位到main函数
反汇编代码很长,利用一下万能的GPT,获取到有效信息:前56位字节是数独,后8位是迷宫
————————-
————————-
————————-
2、数独解析
接下来提取出来内存里的数独原始数组
数独部分要求填充一个标准的9×9格局。题目提供了一部分预填充的数字,剩余的部分需要由参赛者计算得出。
具体的数独如下:
xx xx 02 xx xx 07 xx xx xxxx 06 xx 09 xx xx 04 xx xxxx 09 xx 02 05 xx xx xx 03xx xx xx 04 xx xx 01 xx xx07 03 xx xx 06 xx xx xx xxxx xx 09 05 03 xx xx 06 xxxx xx 06 03 04 xx xx 07 xx08 xx xx xx xx xx xx xx 09xx xx xx xx xx xx xx 05 xx
根据数独的规则,每行、每列以及每个3×3的子网格中的数字必须从1到9且不重复。解题者需要利用逻辑推理填满整个网格。
这里直接使用网页在线求解,得到答案:34689155813271746868579324125982187492581517263447389126
3、迷宫解析
迷宫部分提供了一个字符矩阵,代表迷宫的布局,和8个字符的移动序列(WASD代表上下左右)。
迷宫布局如下:
! – ? + + + – + – + + + + – – +
这里的目标是按照提供的指令在迷宫中移动,验证路径的可行性,并且最终达到特定的终点。例如,字符“?”可能表示目标或特殊点。
迷宫路径为:SDSDDWWA
拼接Flag得到答案:
flag{34689155813271746868579324125982187492581517263447389126SDSDDWWA}
今日中午12点,第三题 绝境逢生
正式开赛
球分享
球点赞
球在看
点击阅读原文查看更多
原文始发于微信公众号(看雪学苑):2024 KCTF 大赛 | 第二题《星际生物》解析