writeup_easyMaze_reverse
writeup_easyMaze_reverse
elf文件,直接ida:
main函数里定义了一大堆变量。
为了便于分析,从step_2开始看起:


循环校验输入(WASD),然后按照输入内容控制输出相关结果。
再看加密逻辑:
step_0貌似是在生成地图

step1中还有子调用,太麻烦了,因此直接选择动态调试,在step2直接查看数据。
连接linux开始动态调试:
断点下载step_2的循环开始处:

双击a1数组查看变量:

很多0和1组成的数组,d键位转化为dd,然后右键生成数组,长度为49
(dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4;)

复制,生成地图:

按照地图,应该为 SSDDWDWDDDSSAASASAAASSDDDDWDDS

最终flag:UNCTF{ssddwdwdddssaasasaaassddddwdds}
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.