[ACTF新生赛2020]Oruga 题解

简介: [ACTF新生赛2020]Oruga 题解

这是一个迷宫题

进入关键函数

迷宫的控制逻辑如上图,JMEW控制上下左右

执行完移动之后,下面还有一段函数,如上图,这四个判断是判断我们走迷宫的时候是否越界了,走出迷宫了,如果越界就退出程序

而且如果所在位置是0的话,就会一直执行这个循环体,v2+=v4

就是说每一步都会一直走下去,直到走到碰到障碍物为止,但是如果走下去会跑出迷宫的话会异常退出

截取一下迷宫地图的数据

我们可以将迷宫打印一下

map=[0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x23,0x23,0x23,0x00,0x00,0x00,0x23,0x23,0x00,0x00,0x00,0x4f,0x4f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4f,0x4f,0x00,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x00,0x4f,0x4f,0x00,0x4f,0x4f,0x00,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x00,0x4f,0x4f,0x00,0x4f,0x4f,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x4c,0x00,0x4f,0x4f,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4f,0x4f,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4d,0x4d,0x4d,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4d,0x4d,0x4d,0x00,0x00,0x00,0x00,0x45,0x45,0x00,0x00,0x00,0x30,0x00,0x4d,0x00,0x4d,0x00,0x4d,0x00,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x45,0x45,0x54,0x54,0x54,0x49,0x00,0x4d,0x00,0x4d,0x00,0x4d,0x00,0x00,0x00,0x00,0x45,0x00,0x00,0x54,0x00,0x49,0x00,0x4d,0x00,0x4d,0x00,0x4d,0x00,0x00,0x00,0x00,0x45,0x00,0x00,0x54,0x00,0x49,0x00,0x4d,0x00,0x4d,0x00,0x4d,0x21,0x00,0x00,0x00,0x45,0x45]
for i in range(0,16):
    for j in range(0,16):
        if(map[i*16+j]==0):
            print('0',end='')
        elif(map[i*16+j]==33):
            print('!', end='')
        else:
            print('#', end='')
    print()

0是通路,#是障碍物,!是终点

手走出路径

flag{MEWEMEWJMEWJM}

相关文章
|
安全 数据安全/隐私保护
BUUCTF 后门查杀 1
BUUCTF 后门查杀 1
889 0
BUUCTF 后门查杀 1
|
Windows
【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )
【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )
14511 0
【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )
[WMCTF2020]easy_re 题解
[WMCTF2020]easy_re 题解
453 0
|
安全 数据安全/隐私保护 Python
BUUCTF-[GUET-CTF2019]re(Reverse逆向)
本文介绍了如何对一个带有UPX壳的ELF文件进行逆向分析。首先通过010Editor确认文件类型和壳的存在,接着使用Free UPX工具进行脱壳。脱壳后在IDA中加载文件,通过字符串查找和交叉引用跟踪定位关键函数。最终利用Python的z3库解决约束问题,得到flag。过程中还遇到了Python版本兼容性问题,并通过重新安装z3-solver解决。最终flag为`flag{e165421110ba03099a1c039337}`,经MD5解密验证为`233`。
761 0
BUUCTF-[GUET-CTF2019]re(Reverse逆向)
|
算法 安全 数据安全/隐私保护
BUUCTF-[2019红帽杯]easyRE(Reverse逆向)
本文详细介绍了对一个无壳的64位ELF文件进行逆向分析的过程。首先通过IDA查找关键字符串定位主函数,然后逐步分析函数逻辑,包括读取输入、异或操作等。接着通过多次Base64解码和异或操作,最终得到了关键的flag。整个过程涉及数组寻址、条件判断和函数调用等技术细节,展示了CTF竞赛中常见的逆向工程技巧。最后附上了完整的Python代码实现,帮助读者理解和复现。
1392 1
BUUCTF-[2019红帽杯]easyRE(Reverse逆向)
[HDCTF2019]Maze(初识逆向)
[HDCTF2019]Maze(初识逆向)
780 1
|
存储
[ACTF新生赛2020]SoulLike 题解
[ACTF新生赛2020]SoulLike 题解
428 0
攻防世界toddler_regs菜鸟周更
攻防世界toddler_regs菜鸟周更
231 0
|
数据安全/隐私保护
[FlareOn6]Overlong 题解
[FlareOn6]Overlong 题解
391 0
下一篇
开通oss服务