[WP]XCTF-666
1、查看文件基本信息,64位 ELF 文件
2、载入 IDA,程序是将我们输入的字符串经过 encode 函数运算后先进行长度验证,之后与 enflag 进行比对
3、encode 函数是将字符串三个一组进行加密
4、写出 EXP 运行得到 flag,需要注意的是算术运算符优先级高于逻辑运算符,如果不加括号会导致先进行 key +6 的运算,就不能得到正确的结果了
1 enflag = 'izwhroz""w"v.K".Ni' 2 key = 0x12 3 v = [] 4 flag = '' 5 for i in range(0, key, 3): 6 a = (ord(enflag[i]) ^ key) - 6 7 b = (ord(enflag[i+1]) ^ key) + 6 8 c = ord(enflag[i+2]) ^ 6 ^ key 9 v.append(a) 10 v.append(b) 11 v.append(c) 12 13 for i in v: 14 flag += chr(i) 15 16 print(flag)