buuctf密码学EasyProgram
这题有点好玩
题目给了两个附件file.txt和附件.txt
这是什么代码????百度后发现这是伪代码。。现在连伪代码都认不出来了。代码还行,大概可以看出来意思,就是set有点坑。观察到伪代码最后两句:
set flag[m]:flag[m]^s[x]
fprint flagx to file
其他的代码好像没有和flag直接运算,和flag运算的只有一句,那就是^运算,不难知道,异或运算是可逆的,即异或密文可以得到明文。而且观察到最后一个for循环有38次,但是flie里面长度好像并没有38,所以不能直接复制粘贴。拖入winhex:
数了一下发现16进制值刚好38个,整体思路就出来了,写脚本:
flag = [0x00,0xBA,0x8F,0x11