1. Misc10
xctf优良传统,百度之
手持两把锟斤拷,口中疾呼烫烫烫
脚踏千朵屯屯屯,笑看万物锘锘锘
其实我没提交,队友提交的,应该是这个
2. Re50
听说逆向都挺难的,这里有个简单的,快来秒~~~ :D
逆向题把我们逼疯了,才弄个这个出来,秀优越吗?
队友做的,看了一下,很简单1
2
3
4
5
6
7
8k = "Jr3gFud6n"
flag = ""
for i in range(0, len(k)):
a = ord(k[i])-3
flag += chr(a)
print flag
#应该是这个SCTF{Go0dCra3k}
3. Misc100
简单的贪吃蛇,吃到30分它就告诉你flag!但是要怎么控制它呢?
妹的,确定是100的,搞了老半天,还是linux的,upx加壳,首先就乱了
好吧,过了不知道多久,回过神来,upx脱壳,ida加载分析,大致弄清楚流程,代码用到了几个关键函数:1
2move移动光标
printw显示字符
然后就是位置比较,成功了30次之后,就会显示出flag,可是代码中没有啊,习惯了可以f5就f5,所以,乱了很久
回到汇编窗口,通过printw找到几处打印,提取字符,通过python打印了一下,妹的乱码,有什么编码问题,不懂:1
2
3
4
5
6
7
8flag = [0x7F, 0x1A, 0x64, 0x7F, 0x78, 0x44, 0x5E, 0x50, 0x67, 0x7d, 0x4E, 0x5F, 0x2A,
0x64, 0x6D, 0x52, 0x4C, 0x67, 0x72, 0x64, 0x4C, 0x70, 0x44, 0x7C, 0x5F, 0x2A,
0x48, 0x44, 0x41, 0x1C, 0x61, 0x72, 0x1A, 0x17]
def printArr(arr):
for i in range(0, len(arr)):
s += chr(arr[i])
print s
printArr(flag)
没法子,我也不可能玩30分钟,只好暴力解决了,修改了几个比较,成功进入异常处理(请原谅我,看着真是异常处理),注释中是几次暴力修改位置:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24//.text:08049D75 jz loc_8049EA0
if ( v11 && v6 == target_y )//!=text:08049EA6 jnz loc_8049D7B
{
++dword_804C3C0;
if ( dword_804C3C0 == 5 * dword_804C3C0 / 5 )
++dword_804C3D8;
if ( dword_804C3C0 == 3 * dword_804C3C0 / 3 )
++dword_804C3D4;
if ( dword_804C3C0 == 30 )//!=.text:08049EFD jz loc_8049F94
{
if ( dword_804C3D8 == 6 )//!=text:08049F9B jnz loc_8049F03
{
if ( dword_804C3D4 == 10 )//!=.text:08049FA8 jnz loc_8049F03
{
v16 = __cxa_allocate_exception();
//执行异常中会调用chk(3),显示Mission Complete,然后居然没有调用打印flag,
//看到有个.text:0804A039 cmp ds:dword_804C3DC, 3Bh
//.text:0804A040 jg short loc_804A051强制跳转到打印flag
//会进入f5没解析成功的代码,最后我都没弄清,是出题人故意的,还是ida能力问题,亦或是我的问题
*(_DWORD *)v16 = 0;
__cxa_throw(v16, &_typeinfo_for_int, 0, v17);
}
}
}
ok,终于打印出来了U0NURntzMWduNGxfMXNfZnVubnk6KX0=,base64解码之后SCTF{s1gn4l_1s_funny:)},做出来还是比较兴奋的
4. 其他
其他题目也尝试了很多。
re300,算法太绕,晕了,没去弄了,后面提示是三阶魔方,你妹啊,被吓住了,最后也没人做出来
re500,又来了个lua虚拟机,额,我再次败退,这次比赛逆向题基本完败,丢人。
图片题貌似是两题,用自己知道的各种方式尝试了,无果。
web题目,额,我scan了一题,看到了个head attck,然后不会了。
pwn题目,好简单,可是,路在何方?求writeup啊。
哦,还有两道code的题目,code200在我们努力下,队友提交成功,code400目前还在暴力运算中,明天看看有答案不(求思路,野路子只有暴力破了,也不知道对不)。
我想说code500,请问3 3 1是几个意思啊。按我们分析的思路弄出来了,跟我说wrong input!逗我呢啊,要writeup!
最后总结:
太急躁,没思路,最后还是能力问题!