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

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


了解详情 >

BlackBird的博客

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

DMCTF2020 re3

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

ACTF2020 Oruga

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

_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,这个题就很简单,直接贴代码吧:

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

评论