[HDCTF2019]Maze
去壳
去upx壳
upx -d maze_behind_junk.exe
去花
对main_按U取消定义函数,按P重新分析函数
分析
很简洁的迷宫程序
(5,-4)应该就是终点
点进汇编界面,可以看到疑似地图的字符串
+应该是起点,F是终点
编写脚本求地图长宽
maze = '*******+********* ****** **** ******* **F****** **************'
end = maze.index('F')
end_x = 5
end_y = 4
width = (end - end_x) // end_y
length = len(maze) // width
for i in range(length):
print(maze[(width*i):(width*(i+1))])
需要一点想象力才能看懂这个width怎么求的,其实就是找到一排中的第x位减去x就能得到长 * 宽的一个数了
得到地图:
flag{ssaaasaassdddw}