buuctf easyRE[2019红帽杯]
简单总结一下,一般说是easy的都不简单
加载ida查看字符串,找到主要函数,
第一组数据解出
Info:The first four chars are flag
然后看下面,打开函数发现是base64加密,加密十次,然后比较,把字符串解密十次,发现给了一个网址(不好意思,网址给关了,不想再解密10次了,就口头描述一下),打开网址,发现是…
然后看大佬博客,才知道是个迷惑我们的函数,真正的核心函数在上图所示函数的下一个(wdnmd)口吐芬芳
然后利用”flag“字符串把v5解出来,然后把给定字符串依次异或就行了
最后贴上脚本
s='flag'
a=[
0x40, 0x35, 0x20, 0x56, 0x5D, 0x18, 0x22,
0x45, 0x17, 0x2F, 0x24, 0x6E, 0x62, 0x3C,
0x27, 0x54, 0x48, 0x6C, 0x24, 0x6E, 0x72,
0x3C, 0x32, 0x45, 0x5B, 0x00
]
key=''
flag=''
for i in range(4):
key+=chr(ord(s[i])^a[i])
for i in range(len(a)):
flag+=chr(ord(key[i%4])^a[i])
print(flag)
最后的结果各位自己来吧!我就不写了
结束