61DCTF stheasy Write Up

下载之后直接拖进IDA,F5拿到伪代码,发现主函数是这样:

输入s,然后再判断,先看一下输入的函数:

大概就是一个字符读入的,然后我们看一下判断的函数:

这里有两个数组,双击拿到值:

上边那串绿色的就是字符串的值,下边是数组的值,然后写个IDA脚本把这串值取出来:

autoi;for(i=0;i<29;i++){Message("%d, ", Byte(0x08049B15+i));}

然后分析判断函数,就是说输入的字符串长度等于29,并且要根据数组中的数来确定下标,把数组里的数除以三减二就可以了,写一个Python程序:

s="lk2j9Gh}AgfY4ds-a6QW1#k5ER_T[cvLbV7nOm3ZeX{CMt8SZo]U"

num=[72,93, 141, 36, 132, 39, 153, 159, 84, 24, 30, 105,

126,51, 21, 114, 141, 51, 36, 99, 33, 84, 12, 120, 120, 120, 120, 120, 27]

fori in range(29):

    print(s[int(num[i]/ 3) - 2], end="")

顺利拿到flag。


猜你喜欢

转载自blog.csdn.net/wannafly1995/article/details/80851551