[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)

     

 

原文地址:https://www.cnblogs.com/Tsuiyields/p/13717667.html