re学习笔记(43)安恒杯二月月赛-re-maze1

安恒杯二月月赛 抗【疫】练习赛 -re-maze1
新手一枚,如有错误(不足)请指正,谢谢!!
个人博客:点击进入
题目下载:

链接: https://pan.baidu.com/s/197VP-ZwJ6oIMpZ7oPuBuKA 提取码: 2020

IDA64位载入,进入main()函数
re学习笔记(43)安恒杯二月月赛-re-maze1_第1张图片
迷宫题,28行之前对迷宫进行初始化,之后输入flag,然后wasd控制上下左右,最后到达终点2的时候判断成功,1是路,0是墙。

在28行下断点,linux远程调试,将迷宫数据取出
re学习笔记(43)安恒杯二月月赛-re-maze1_第2张图片
写脚本

#include 
int main()
{
    int i, j;
    char maze[] = {
    1,0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00,
    0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00,
    0x01, 0x00, 0x00,2
    };
    for (i = 0; i < 6; i++)
    {
        for (j = 0; j < 6; j++)
        {
            if (maze[6 * i + j] == 1)
                printf("■");
            else if (maze[6 * i + j] == 0)
                printf("□");
            else if (maze[6 * i + j] == 2)
                printf("★");
            //else if(maze)
        }
        putchar('\n');
    }
    return 0;
}

re学习笔记(43)安恒杯二月月赛-re-maze1_第3张图片
控制行和列的变量在bss段,会初始化为0,所以起点是左上角,终点是右下角
,输入为dddddsssss
re学习笔记(43)安恒杯二月月赛-re-maze1_第4张图片
转换为md5,最终flag为64e918643fc7b1d92d964543b04c117a

你可能感兴趣的:(ctf小白成长ing,#,reverse)