安恆杯二月月賽 抗【疫】練習賽 -re-maze1
新手一枚,如有錯誤(不足)請指正,謝謝!!
個人博客:點擊進入
題目下載:
鏈接: 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