这里主要是flag的第二段:

正向:大写转成小写,然后进行加密操作。小写的转化成大写进行加密操作。
最后加密后和已知道的字符串进行比较。
逆向:首先逆向加密操作,然后将大小写互相转化就可以了吧。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| a = [ 0x0D, 0x13, 0x17, 0x11, 0x02, 0x01, 0x20, 0x1D, 0x0C, 0x02, 0x19, 0x2F, 0x17, 0x2B, 0x24, 0x1F, 0x1E, 0x16, 0x09, 0x0F, 0x15, 0x27, 0x13, 0x26, 0x0A, 0x2F, 0x1E, 0x1A, 0x2D, 0x0C, 0x22, 0x04]
b = b"GONDPHyGjPEKruv{{pj]X@rF"
flag = ""
for i in range(24): temp =(((b[i]) ^ a[i]) - 72) ^ 0x55 flag += chr(temp) print(flag)
swapped_string = flag.swapcase() print(swapped_string)
|
flag{wadx_tdgk_aihc_ihkn_pjlm}