抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

BlackBird的博客

这世界上所有的不利状况,都是当事者能力不足导致的

DMCTF2020 re3

根据提示,用PEid和IDA的Findcrypt插件,发现big number:21232f297a57a5a743894a0e4a801fc3这么一长串数字,要么RSA,要么散列函数,但这个程序明显不是RSA,直接cmd5挨个试一遍,是md5加密,解出来是admin

ACTF2020 Oruga

明显地图题目,主函数先检查flag格式,然后再做处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
_BOOL8 __fastcall sub_78A(char *a1)
{
int v2; // [rsp+Ch] [rbp-Ch]
int v3; // [rsp+10h] [rbp-8h]
int v4; // [rsp+14h] [rbp-4h]

v2 = 0;
v3 = 5;
v4 = 0;
while ( map[v2] != '!' )
{
v2 -= v4;
if ( a1[v3] != 'W' || v4 == -16 ) // up
{
if ( a1[v3] != 'E' || v4 == 1 ) // right
{
if ( a1[v3] != 'M' || v4 == 16 ) // down
{
if ( a1[v3] != 'J' || v4 == -1 ) // left
return 0LL;
v4 = -1;
}
else
{
v4 = 16;
}
}
else
{
v4 = 1;
}
}
else
{
v4 = -16;
}
++v3;
while ( !map[v2] )
{
if ( v4 == -1 && (v2 & 0xF) == 0 )
return 0LL;
if ( v4 == 1 && v2 % 16 == 15 )
return 0LL;
if ( v4 == 16 && (unsigned int)(v2 - 240) <= 0xF )
return 0LL;
if ( v4 == -16 && (unsigned int)(v2 + 15) <= 0x1E )
return 0LL;
v2 += v4;
}
}
return a1[v3] == '}';
}

规则是:

  • 起点是第一个字符
  • 方向对应字母
  • 一个方向一直走,走到障碍换方向,走到边界直接退出

flag{MEWEMEWJMEWJM}

网鼎杯2020 signal

哎~该学的迟早要学……之前打moe的时候就有让学这个玩意,但是真的懒啊,不想学……现在就得学了。稍微会一点点一点点angr,这个题就很简单,直接贴代码吧:

1
2
3
4
5
6
7
import angr
p = angr.Project("./signal.exe",auto_load_libs=False)
sta = p.factory.entry_state()
sim = p.factory.simulation_manager(sta)
sim.explore(find = 0x40175E)
print(sim.found[0].posix.dumps(0))
# 757515121f3d478

也可以用Ponce做,但是我这里试了好几遍不知道为啥,只能搞出来前13位……

image-20210123022450468

评论