SECCON 2014 CTF:Shuffle
很简单的一道小题
dia看一下是ELF文件 运行之:
St0CFC}4cNOeE1WOS !eoCE{ CC T2hNto
是一串乱七八糟的字符
ida看一下:
很简单的逻辑 v5和v6是随机生成的两个数,每次都将下标为v5和v6的字符交换,为了验证我们的想法 再运行几遍这个程序:
4S0F N Wtem C{oOeC2hES TNE!l chO o 2}E4teeoCCNCmW 0C 4WF2Se1 Smt!elhONE 0CC{ cToE}
这是三次的运行结果,可以看到绝大多数字符是一样的 那么为什么还有少量字符“丢失”了呢 我们仔细看程序
因为v5和v6的大小不一定限制在了字符串的长度以内,所以可能会将空字符进行了交换
其实不需要分析的这么详细 只需要将我们在ida里看到的16进制数转换成字符就好了:
a=[83,69,67,67,79,78,123,87,101,108,99,111,109,101,32,116,111,32,116,104,101,32,83,69,67,67,79,78,32,50,48,49,52,32,67,84,70,33,125,0] s='' for i in a: s+=chr(i) print(s)
运行得到:
SECCON{Welcome to the SECCON 2014 CTF!}