-
-
[原创]2021 KCTF 春季赛 第四题 英雄救美
-
2021-5-14 20:59 5383
-
流程
- 程序读取输入 ipt,经过 函数1 输出 sol
- 根据 sol 能解决数独问题
- 将输入做 md5 校验得到 md5结果
- 用 md5结果 初始化 aes 解密机器码
- 执行机器码
分析
- 先人工求解数独得到 sol
- 反推 sol 到 ipt 发现,存在 N 种可能,不可能枚举的。。。设计的非常不合理
- 这个时候就要猜测设计者的思路了
- 内置一个 9x9 的 tbl 对应表,对应输入到数独的各行 1-9 数字对应
- 输入应该为:
([非数字字符]{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编辑
,原因:
赞赏
他的文章
看原图