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; int v3; int v4;
v2 = 0; v3 = 5; v4 = 0; while ( map[v2] != '!' ) { v2 -= v4; if ( a1[v3] != 'W' || v4 == -16 ) { if ( a1[v3] != 'E' || v4 == 1 ) { if ( a1[v3] != 'M' || v4 == 16 ) { if ( a1[v3] != 'J' || v4 == -1 ) 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))
|
也可以用Ponce
做,但是我这里试了好几遍不知道为啥,只能搞出来前13位……