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位……
