题目地址:https://buuoj.cn/challenges#%E4%B8%8D%E4%B8%80%E6%A0%B7%E7%9A%84flag

查壳:(没有加壳)
得知这是32bit文件

int __cdecl main(int argc, const char **argv, const char **envp)
{char v3; // [esp+17h] [ebp-35h]int v4; // [esp+30h] [ebp-1Ch]int v5; // [esp+34h] [ebp-18h]signed int v6; // [esp+38h] [ebp-14h]int i; // [esp+3Ch] [ebp-10h]int v8; // [esp+40h] [ebp-Ch]__main();v4 = 0;v5 = 0;qmemcpy(&v3, _data_start__, 0x19u);while ( 1 ){puts("you can choose one action to execute");puts("1 up");puts("2 down");puts("3 left");printf("4 right\n:");scanf("%d", &v6);if ( v6 == 2 ){++v4;}else if ( v6 > 2 ){if ( v6 == 3 ){--v5;}else{if ( v6 != 4 )
LABEL_13:exit(1);++v5;}}else{if ( v6 != 1 )goto LABEL_13;--v4;}for ( i = 0; i <= 1; ++i ){if ( *(&v4 + i) < 0 || *(&v4 + i) > 4 )exit(1);}if ( *((_BYTE *)&v8 + 5 * v4 + v5 - 41) == 49 ) // 通过第51行5 * v4,这是一个5行5列的迷宫(一共25个字符)exit(1);if ( *((_BYTE *)&v8 + 5 * v4 + v5 - 41) == 35 ){puts("\nok, the order you enter is the flag!");exit(0);}}
}

代码分析:
查看代码中的_data_start__

.data:00402000 __data_start__  db '*11110100001010000101111#',0  // 发现一串疑似地图的字符串

又通过第16~ 20行代码,第51~ 53行代码,我们能够知道这是一个迷宫题。
猜想是地图

11110100001010000101111#’,就是走出迷宫的地图。((_BYTE )&v8 + 5 * v4 + v5 - 41) == 49,((_BYTE *)&v8 + 5 * v4 + v5 - 41) == 35,中,49对应的Ascii值恰好是’1’,35对应的ascii值恰好是’#’,根据算法的大意,我们就能知道,若最后结果等于’1’,那么程序会退出,字最后结果等于’#’,那么相应的我们就得到了我们flag的对应数字顺序.也就是说,我们迷宫的终点是’#’,而在这过程中,我们要避开’1’,就这样走到我们的终点。

11110100001010000101111#按5X5的顺序摆好
走到# (1看做是障碍物)

*1111
01000
01010
00010
1111#

flag{222441144222}

BUUCTF-Reverce:不一样的flag相关推荐

  1. 逆向迷宫题总结(持续更新) 2020华南师大CTF新生赛maze,攻防世界新手区:NJUPT CTF 2017,BUUCTF:不一样的flag

    CTF逆向入门:迷宫题学习记录(持续更新) ** 目录 **CTF逆向入门:迷宫题学习记录(持续更新)** (前言) 一. 逆向迷宫题概述 二. 具体题目分析 1. 2019华南师大CTF新生赛maz ...

  2. BUUCTF:面具下的flag

    题目地址:https://buuoj.cn/challenges#%E9%9D%A2%E5%85%B7%E4%B8%8B%E7%9A%84flag 题目如下: binwalk分析,发现有隐藏了zip, ...

  3. BUUCTF 每日打卡 2021-4-5

    引言 出人意料的得到消息要被拉去打国赛(第十四届全国大学生信息安全竞赛-创新实践能力赛)了(一脸懵逼) 我还什么都没学呢(摸鱼) 嘛,不过被分到第二梯队大概也没抱什么希望吧(继续摸鱼) 害,说丧气话也 ...

  4. [FlareOn6]Overlong-buuctf

    buuctf做题记录 overlong 查壳 32位无壳 IDA分析 查看start函数 结合题目overlong与这个0,分析应该是让v6比规定的值(进入函数后获知)大,进入sub_401160函数 ...

  5. 使用打字稿绘图网格构建游戏3 5

    Chapter III in the series of tutorials on how to build a game from scratch with TypeScript and nativ ...

  6. BUUCTF 面具下的flag

    下载附件,得到一张图片<你的名字> 拖入winhex,发现有隐藏文件,并且隐藏文件压缩包是伪加密(关于伪加密我的另一篇文章有详细介绍:BUUCTF MISC zip伪加密_Hrain777 ...

  7. [buuctf] crypto全解——前84道(不建议直接抄flag)

    buuctf crypto 1.MD5 2.Url编码 3.一眼就解密 4.看我回旋踢 5.摩丝 6.[BJDCTF 2nd]签到-y1ng 7.password 8.变异凯撒 9.Quoted-pr ...

  8. BUUCTF 面具下的flag writeup

    下载后是一张图,010打开后后面是压缩包.直接分离出来,解压时发现需要密码,但是暂时找不到密码提示,那就在010里搜索504b,查看每一个后面是否有14 00,这个后面就是加密的标识,发现其他都是00 ...

  9. BUUCTF Misc 来首歌吧 荷兰宽带数据泄露 面具下的flag 九连环

    目录 来首歌吧 荷兰宽带数据泄露 面具下的flag 九连环 来首歌吧 下载文件 使用Audacity打开 可以发现框出来的一串,放大查看 有长有短有空格,大概率是摩斯密码 ...../-.../-.- ...

  10. buuctf(misc) FLAG [LSB隐写]

    用stegSolve 打开是LSB隐写 保存为bin 用解压软件打开 将其用IDA打开 hctf{dd0gf4c3tok3yb0ard4g41n~~~}

最新文章

  1. 快速把web项目部署到weblogic上
  2. loj #143. 质数判定
  3. 为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?
  4. 笔记-知识产权与标准化知识-GB/T16260-2006软件工程产品质量-质量模型
  5. javascript中的setTimeout() 方法和clearInterval() 方法和setInterval() 方法
  6. 包治百病 | 如何将一个.NET Core类库发布到NuGet
  7. Windows10 cmd输入python打开的是应用商店
  8. html中th 与thead tbody的 使用
  9. 怎么做app图标_App拉新:以老拉新活动怎么做?
  10. 线程(一)__同步以及死锁
  11. 推荐一本老外给初学者学习ABAP的书籍,2012年12月上市。
  12. 手机摄像头+Matlab完成图像的自动识别
  13. 国药集团获得美国默沙东公司新冠口服药“莫诺拉韦”经销权和独家进口权 | 美通社头条...
  14. U-Boot 之三 详解使用 eclipse + J-Link 进行编译及在线调试
  15. 对于企业是云服务器划算还是自购服务器划算?
  16. 获取本电脑外网IP和内网IP
  17. [原创] 在MFC中大家都习惯用CStdioFile来处理文本文件,可是为什么CStdioFile不叫CTextFile?
  18. 【小白笔记】常见网页访问状态码及网页请求
  19. pandas入门(6)——数据加载、存储与文件格式
  20. PowerDVD(了解收藏)

热门文章

  1. WindowsXP 下的pix模拟器出炉了!!!
  2. poj 2187 Beauty Contest
  3. 《机器学习实战》chapter03 决策树
  4. Navicat for mysql导入.sql数据库大小受限制
  5. easyui form提交和formdata提交记录,查看FormData对象内部的值
  6. 用MOS管防止电源反接的原理
  7. AngularJS $http 异步后台无法获取请求参数
  8. [BZOJ 3942] [Usaco2015 Feb] Censoring 【KMP】
  9. 吴恩达 coursera AI 专项四第三课总结+作业答案
  10. php=与-,谈谈PHP中的 -、= 和 :: 符号