buuctf 逆向 xor
题逻辑比较简单,但是中间有点小插曲,等会再说,先打开软件,没壳(我查过了),然后打开ida,如图 逻辑很简单,就是把下一个和之前的一个异或,然后保存。 然后比较坑的地方就来了。 点开global,出现如图所示 这里的数据比较奇怪了,既有数据,又有字符。所以不要单纯的复制下来,要转换为ascii码,然后进行异或,最后贴上脚本。
a
= [0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26,
0x4F, 0x2E, 0x40, 0x11, 0x78, 0x0D,
0x5A, 0x3B, 0x55, 0x11,
0x70, 0x19, 0x46, 0x1F, 0x76, 0x22,
0x4D, 0x23, 0x44, 0x0E, 0x67,
0x06, 0x68, 0x0F, 0x47, 0x32,0x4F]
s
=''
s
+='f'
for i
in range(1,len(a
)):
s
+=chr(a
[i
]^a
[i
-1])
print(s
)
因为第一个是f,所以要提前加上去,之后运行就可以得到flag
最后,想更新一些《逆向工程核心原理》这本书的学习笔记,因为最近课有点多,所以今天就先划水了,就做了这一道题。之后几天再补上关于《逆向工程核心原理》这本书上的学习笔记