前言:重温了一下泰山杯的题目,拿出来仍然恨恨的
题目:
描述:x+1计划需要flag
内容:[13, 12, 7, 29, 31, 86, 87, 87, 12, 91, 0, 83, 0, 10, 80, 86, 86, 1, 1, 7, 5, 0, 81, 2, 4, 1, 25, 5, 7, 10, 92, 5, 7, 5, 2, 86, 68]
解析
这道题目,提示就是个x+1,然后给的内容是一串数字,谁能想到,用的是异或xor!!!
题目的关键,是作为ctfer都懂的标志性字符串flag{
f的ascii为102
l的ascii为108
a的ascii为97
g的ascii为103
明白的小伙伴现在已经明白了!
没错!!!
就是ord('f')^13
!!!
ord(‘f’)^13=107=ord(‘l’)-1
ord(‘l’)^12=96=ord(‘a’)+1
.
.
.
就问你6不6!
规律找到了。脚本跑一下就出来了!
data = [13, 12, 7, 29, 31, 86, 87, 87, 12, 91, 0, 83, 0, 10, 80, 86, 86, 1, 1, 7, 5, 0, 81, 2, 4, 1, 25, 5, 7, 10, 92, 5, 7, 5, 2, 86, 68]
start_char = 'f'
result = [start_char]
for num in data:
new_char_ascii = (ord(result[-1]) ^ num) + 1
result.append(chr(new_char_ascii))
final_str = ''.join(result[1:])
print('f'+final_str)