Flag Checker
Description
Solution
def enc(flag):
if isinstance(flag, str):
flag = [(ord(c) - 27) ^ 15 for c in flag]
else:
flag = [(c - 27) ^ 15 for c in flag]
return flag
def dec(flag):
if isinstance(flag, str):
flag = [(ord(c) ^ 15) + 27 for c in flag]
else:
flag = [(c ^ 15) + 27 for c in flag]
return flag
def swap(flag):
a, b, c, d, e, f = 6, 17, 8, 10, 12, 9
flag[a], flag[f] = flag[f], flag[a]
flag[d], flag[c] = flag[c], flag[d]
flag[b], flag[e] = flag[e], flag[b]
return flag
def rev(flag):
return flag[0: len(flag) // 2] + flag[len(flag) // 2: len(flag)][::-1]
def tostr(flag):
return ''.join(map(chr, flag))
flag_enc = [55, 33, 52, 40, 35, 56, 86, 90, 66, 111, 81, 26, 23, 75, 109, 26, 88, 90, 75, 67, 92, 25, 87, 88, 92, 84, 23, 88]
flag = dec(flag_enc) # Step 1
flag = rev(flag) # Step 2
flag = swap(flag) # Step 3
flag = tostr(flag)
print(flag)Last updated