Beijing
elf文件,32位,先拖入ida,看main,发现一堆相似的函数操作

分析一下sub_8048460函数,发现是switch case的选择结构以及异或操作

看一下byte里面存储的数据

传入的a1参数我们已经知道了

然而有三个byte数据我们并不知道

这里说一点,我一开始以为那个异或是地址对应的值异或,但结果怎么都不对,后来我发现是地址本身异或,所以相当于取的是地位地址,也就是第二个值
str=[0x61,0x67,0x69,0x6e,0x62,0x65,0x66,0x6a,0x6d,0x6c,0x7b,0x7a,0x7d,0x5f]
num=[0x6,0x9,0x0,0x1,0xa,0x0,0x8,0x0,0xb,0x2,0x3,0x1,0xd,0x4,0x5,0x2,0x7,0x2,0x3,0x1,0xc]
for i in num:
print(chr(str[i]),end="")
但是有三个值不知道,这里有个简便方法
就是随便输一个数字上去,结果是flXg{XmXzing_beijing}
所以到这里,发现那个数字肯定是a,这三个值就是0x0,实际上可以通过动态调试,看到传递的值
flag{amazing_beijing}
not only base
MCJIJSGKP=ZZYXZXRMU=W3YZG3ZZ==G3HQHCUS==
首先这肯定是base编码,没有+和\,大概率不是base64
有=填充,不是base58,那就只能是base32
但是=应该在末尾,根据题目not only base可以想到另一种加密肯定是一个移位加密,那么ctf中就只剩下栅栏密码了

轮流试一下,只有栏数为4的时候=在末尾,base32解密

flag{N0t_0NLy_b4sE32}
babyre
exe文件
首先,都是惯例操作,查壳,拖入ida
但这次很奇怪,查壳和ida里面的结果都很奇怪,之前都没碰到过

查询后知道,这是一个c# .net程序,.net程序一般要用dnspy
下载好后打开,拖入文件

是三个字符串拼接,虽然不知道为什么在这里
flag{ca201ed0-9e07-11e8-b6dd-000c29dcabfd}
track_hacker
一开始下载好后发现是个流量包,在想是不是做错题目了,确认之后发现确实之是个流量包,辛亏之前在长城杯做过流量分析,拖进wireshark看一下
看http在末尾找到

本来以为就这么简单,直接base64解密一下就好了,但是谁知道后面还有
总共有四个
1.eJwrLy/XTUksSQQADqgDLQ==
2.eJwDAAAAAAE=
3.eJxLy0lMrw6NTzPMS4n3TVWsBQAz4wXi
4.。。。。。。
一个一个尝试,然经过查询发现是zlib压缩,事实上我也不知道为啥,看来还得学一下流量分析啊
发现第三个是正确的
import base64,zlib
flag = 'eJxLy0lMrw6NTzPMS4n3TVWsBQAz4wXi'
str=zlib.decompress(base64.b64decode(flag))
print(str)
flag{U_f1nd_Me!}
883

被折叠的 条评论
为什么被折叠?



