[HUBUCTF 2022 新生赛]help(ida动调+迷宫
重点:ida动调找到地图# 附件下载
https://wwvc.lanzouj.com/i1vh91bvxtwd
# 查壳
64位,无壳
# 分析
丢入ida64,找到main函数,F5查看伪代码
可以看到输入path之后,有一个CreateMap函数,看着函数名就知道是在这创建地图,所以我们在这里下一个断点,进行动态调试
# ida动态调试
点这个蓝色的圆圈下断点,变红就证明下断点成功
选Local Windows debugger调试器
点击左边的绿色三角形运行,先随便输入
回车之后,按Tab,跳到C伪代码页面
F7单步调试,进入CreateMap函数
再一直按F7单步调试,直到地图全部出现,自动跳到最开始的main函数页面,点OK
双击进入CreateMap函数
再双击map
找到地图
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1
> 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0
> 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1
> 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1
> 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0
> 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1
> 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1
> 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
# 再次分析
分析CreateMap函数,很明显,地图需要以16个为一组
修改之后
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
> ,
>
main函数限定了path长度为54
再看check函数,s就是path,x=15,y=1,分析代码,可以确定,迷宫的初始位置是(15,1),且x,y都是从0开始数的,所以我们可以找到迷宫初始位置
初始位置,走出迷宫,且path的长度必须是54
使用word文档,帮忙高光一下0,这样就好看多了
path:`wwdddwwwaaawwwwwwwwwddddssssdddssdsssssssdddwwwwddsssd`
main函数提到了,flag是path进行md5之后,加个NSSCTF{}就可以了
md5加密,取32位小写
flag:`NSSCTF{a8622109e2fb1296e06d5eed6f78f954}` 有用,感谢分享
页:
[1]