安恒杯二月月赛 抗【疫】练习赛 -re-maze1
新手一枚,如有错误(不足)请指正,谢谢!!
<mark>个人博客:点击进入</mark>
题目下载:
链接: https://pan.baidu.com/s/197VP-ZwJ6oIMpZ7oPuBuKA 提取码: 2020
IDA64位载入,进入main()函数
迷宫题,28行之前对迷宫进行初始化,之后输入flag,然后wasd控制上下左右,最后到达终点2的时候判断成功,1是路,0是墙。
在28行下断点,linux远程调试,将迷宫数据取出
写脚本
#include <stdio.h>
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;
}
控制行和列的变量在bss段,会初始化为0,所以起点是左上角,终点是右下角
,输入为dddddsssss
转换为md5,最终flag为64e918643fc7b1d92d964543b04c117a