python-trade
py文件,反编译:
import base64
def encode(message):
s = ''
for i in message:
x = ord(i) ^ 32
x = x + 16
s += chr(x)
return base64.b64encode(s)
correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
print 'correct'
else:
print 'wrong'
输入的flag经过异或、位移、base64加密得到的字符串与correct比较,如果等于correct,则输出cprrect,输入的flag为正确。
编写脚本:
import base64
str0 = "XlNkVmtUI1MgXWBZXCFeKY+AaXNt"
str = base64.b64decode(str0)
flag = ""
for i in str:
x = i - 16
x = x ^ 32
flag += chr(x)
print(flag)
nctf{d3c0mpil1n9_PyC}