攻防世界:easy_maze

64位elf文件,运行一下

图片.png

由题目名知是一个迷宫题,关键点是找上下左右的方向字符和地图。

进入main函数,发现 1、0字符,猜测是地图,

图片.png

step_0与step_1用于两次变换地图,step_2用于确定上下左右以及地图的起点和终点。

  v9 = 0;
  v8 = 0;
  while ( v8 <= 29 && *(&(*a1)[7 * v10] + v9) == 1 )// 三十步,7*7,走1
  {
    std::operator>><char,std::char_traits<char>>(&std::cin, &v7);
    v1 = v8++;
    v6[v1] = v7;
    if ( v7 == 'd' )                            // 右
    {
      ++v9;
    }
    else if ( v7 > 'd' )
    {
      if ( v7 == 's' )                          // 下
      {
        ++v10;
      }
      else
      {
        if ( v7 != 'w' )                        // 上
          goto LABEL_14;
        --v10;
      }
    }
    else if ( v7 == 'a' )                       // 左
    {
      --v9;
    }
    else
    {
LABEL_14:
      LODWORD(v2) = std::operator<<<std::char_traits<char>>(&_bss_start, "include illegal words.");
      std::ostream::operator<<(v2, &std::endl<char,std::char_traits<char>>);
    }
  }
  if ( v10 != 6 || v9 != 6 )                    // [6][6]终点
  {
    LODWORD(v5) = std::operator<<<std::char_traits<char>>(&_bss_start, "Oh no!,Please try again~~");
    std::ostream::operator<<(v5, &std::endl<char,std::char_traits<char>>);
    result = 0LL;
  }
  else
  {
    LODWORD(v3) = std::operator<<<std::char_traits<char>>(&_bss_start, "Congratulations!");
    std::ostream::operator<<(v3, &std::endl<char,std::char_traits<char>>);
    output(v6, v8);
    result = 1LL;
  }
  return result;
}
  • 起点[0][0]到终点[6][6].
  • wasd对应上左下右。
  • 通过IDA动态调试可直接找到变换后的地图。

直接动态dump出地图:


图片.png
     +1           0           0          +1 
     +1          +1          +1          +1 
      0          +1          +1           0 
      0          +1          +1          +1 
     +1           0          +1          +1 
     +1           0           0           0 
     +1          +1           0           0 
     +1          +1          +1          +1 
      0           0           0          +1 
      0           0           0          +1 
     +1          +1          +1          +1 
     +1          +1          +1           0 
     +1           0           0           0 

UNCTF{ssddwdwdddssaasasaaassddddwdds}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容