题目链接: http://ctf5.shiyanbar.com/re/rev1
我就想知道为啥叫转瞬即逝。。。
用IDA看到主函数就是关键代码,直接看逻辑
关键是循环,先给s赋值,计算s长度,申请s那么长的空间给ptr,把相同位置的s异或一下位置值,得到flag
我用python解了一下
s = 'tikp[luX|aoTjaoh' v3 = len(s) ptr = [] for x in range(0,v3): ptr.append(x) for i in range(0,v3): ptr[i] = ord(s[i]) ^ i # ptr[i] = 0 print(ptr) flag = '' for i in ptr: flag = flag + chr(i) print(flag)
本来我还用c复现一下这个题,但是结果不尽人意(有乱码),逆向回去也和这题不一样,哎。。。。
这是c的结果:(