BUUCTF在线评测 (buuoj.cn)
放到ida
这是下载的文本
逻辑比较简单,写个脚本
p=[198,232,816,200,1536,300,6144,984,51200,570,92160,1200,565248,756,1474560,800,6291456,1782,65536000]
for i in range(1,20):
if (i & 1) != 0 :
p[i-1]=chr(p[i-1] >> i)
else:
p[i-1]=chr((int)(p[i-1]/i)) #浮点型转一下整型
a=''
a=''.join(p)
print(a)
#ctf2020{d9-dE6-20c}
运算符“||”与“|”,“&&”和“&”的区别 (附带各类位运算符号详解(&、|、^、~、<<、>>、>>>)-CSDN博客
本题用到了‘&’与运算符和‘>>’右移运算符,(i&1)!=0 就是奇数成立,偶数不成立,剩下的就是简单运算,注意源代码是int型,用python写脚本时要变成int型