Problem: [MoeCTF 2021]A_game
思路
- 解题大致思路
- 题目逻辑为,给定一个一维数组作为数独内容
- 用户输入内容为str减去48填入为0的部分
- 进行三次检查(行,列,九格内)
- flag为str内容与一个key数组进行异或的值
EXP
enc = [
0, 0, 5, 0, 0, 4, 3, 6, 0, 0,
0, 0, 0, 5, 0, 0, 2, 4, 0, 4,
9, 6, 7, 0, 0, 0, 0, 1, 0, 6,
0, 2, 0, 0, 3, 0, 9, 0, 0, 7,
0, 0, 1, 0, 8, 0, 3, 0, 0, 0,
5, 0, 9, 0, 2, 0, 0, 5, 0, 7,
0, 0, 9, 7, 0, 4, 0, 0, 0, 8,
0, 0, 0, 9, 0, 0, 4, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0
]
key = [
0x6B, 0x02, 0x66, 0x70, 0x44, 0x69, 0x7E, 0x6E, 0x43, 0x4A,
0x78, 0x4A, 0x6D, 0x60, 0x56, 0x00, 0x51, 0x59, 0x50, 0x43,
0x50, 0x51, 0x6D, 0x74, 0x02, 0x55, 0x50, 0x52, 0x6E, 0x6F,
0x79, 0x40, 0x5D, 0x4B, 0x1E, 0x19, 0x1C, 0x74, 0x03, 0x54,
0x07, 0x4C, 0x52, 0x6A, 0x60, 0x50, 0x58, 0x40, 0x58, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
]
temp = '8291767138932581849755263447186268341129653538127'
for i in range(len(temp)):
print(chr(ord(temp[i]) ^ key[i]),end='')
总结
- 对该题的考点总结
