writeup_easyMaze_reverse

elf文件,直接ida:

image-20220223113010570main函数里定义了一大堆变量。

为了便于分析,从step_2开始看起:

image-20220223113150953

image-20220223113157081

循环校验输入(WASD),然后按照输入内容控制输出相关结果。

再看加密逻辑:

step_0貌似是在生成地图

image-20220223113401327

step1中还有子调用,太麻烦了,因此直接选择动态调试,在step2直接查看数据。

连接linux开始动态调试:
断点下载step_2的循环开始处:

image-20220223113547109

双击a1数组查看变量:

image-20220223113621065

很多0和1组成的数组,d键位转化为dd,然后右键生成数组,长度为49

(dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4;)

image-20220223113959158

复制,生成地图:

image-20220223114043238

按照地图,应该为 SSDDWDWDDDSSAASASAAASSDDDDWDDS

image-20220223114516245

最终flag:UNCTF{ssddwdwdddssaasasaaassddddwdds}