首页
社区
课程
招聘
[原创]2021 KCTF 春季赛 第四题 英雄救美
2021-5-14 20:59 5383

[原创]2021 KCTF 春季赛 第四题 英雄救美

2021-5-14 20:59
5383

流程

  1. 程序读取输入 ipt,经过 函数1 输出 sol
  2. 根据 sol 能解决数独问题
  3. 将输入做 md5 校验得到 md5结果
  4. 用 md5结果 初始化 aes 解密机器码
  5. 执行机器码

分析

  1. 先人工求解数独得到 sol
    数独解
  2. 反推 sol 到 ipt 发现,存在 N 种可能,不可能枚举的。。。设计的非常不合理
  3. 这个时候就要猜测设计者的思路了
  4. 内置一个 9x9 的 tbl 对应表,对应输入到数独的各行 1-9 数字对应
  5. 输入应该为:([非数字字符]{0,8}[补充长度1-9]){9}

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tbl = "$BPV:ubfYp}]DtN>aT^MGmJQ#*Hr`O'wjic0!hdy{oZz-@n+?&%s_/g<e[W)XUxRFSLRA;.l=CEkvK-(q"
sol = [
    "5619238",
    "18345",
    "76219",
    "7846925",
    "4539786",
    "6928713",
    "28563",
    "61728",
    "1793452",
]
 
r = ""
for y in xrange(9):
    for c in sol[y]:
        r += tbl[y*9 + (ord(c)-ord('1'))]
    r+=str(9-len(sol[y]))
print r

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

最后于 2021-5-14 21:04 被kkHAIKE编辑 ,原因:
收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回