[HDCTF2019]Maze
拿到发现有两份,用文件夹外面那份吧,查壳发现upx壳,手脱机脱都行,这种反正很简单,然后拖进ida,发现
关键字符串没有被交叉引用,那么猜测大概是有的部分代码现在是大片数据,要调试时候才会转换成代码,然后瞎点发现了一个可疑函数,
因为这题是迷宫所以当然是要找固定字符使其移动坐标的,在这里发现了
看着比较像但是应该是有脏数据让看不出来到底哪个才是真的,毕竟文件名就给了提示,ok,debug走起,先给ida里看到的关键函数下断点,还有exit函数,不然一不小心就退出要重新来,那么开始先大步走,两下f9,到输入字符串的环节,输入abcdefghijklmn
,然后走出输入函数
这俩一个输出提示字符,一个输入字符,如果往下看可以发现
就在下面不远的地方,当然没向下看也没关系,毕竟我就没有,输入完后面有一个函数,刚开始以为关键函数在这,就进去一下一下单步,没分析出来啥,最后出来了发现下面有关键字符,然后这就到了关键代码,
走一遍发现他有个来回跳转,就是判断条件不满足就会下去再上来,再下去再上来,这八成就是对输入字符串进行操作了,然后一顿分析发现,a字符是跳到[408078]
减1的位置,d是跳到[408078]
加1的位置,看看键盘上a和d的位置,是不是常用的位移键,那么猜测上下就是w和s,看到下面成功的条件是
这两个跳转不执行,那么剩下的暂不分析,先试试答案,ida里找到迷宫字符串很容易,字符串长度为70,那就先试试10个一行,得到字符串为
从加号到F,走空格,得到走出的字符串,提交通过,那么我就先不分析剩下的了,其实剩下的思路就很明显了,溜了溜了