NSCTF Reverse 400

题目给了个py打包的exe,提示py2exe
这里安利一个工具pyinstaller extractor,可以将pyinstaller打包的pyexe还原回去
提前出来的源码如下
图
看到flag明文,贼激动,提交GG……
跟一边buf过程,十六进制打出来和data特别像,猜测应该是根据加密算法,逆推解密,data已知,给出解密过程

data = "\x1c\x7a\x16\x77\x10\x2a\x51\x1f\x4c\x0f\x5b\x1d\x42\x2f\x4b\x7e\x4a\x7a\x4a\x7b" +"\x49\x7f\x4a\x7f\x1e\x78\x4c\x75\x10\x28\x18\x2b\x48\x7e\x46\x23\x12\x24\x11\x72" +"\x4b\x2e\x1b\x7e\x4f\x2b\x12\x76\x0b"

data = list(data)
print len(data)

for x in range(0, 48):
  data[x] = chr(ord(data[x]) ^ ord(data[x+1]))


data[48] = chr(ord(data[48]) ^ 0x0b)
print ''.join(data)