HUBUCTF 2022 新生赛——ida动调+迷宫

WriteUp 11个月前 admin
59 0 0
重点:ida动调找到地图


附件下载


https://wwvc.lanzouj.com/i1vh91bvxtwd


查壳


64位,无壳。


HUBUCTF 2022 新生赛——ida动调+迷宫


分析


丢入ida64,找到main函数,F5查看伪代码。


HUBUCTF 2022 新生赛——ida动调+迷宫

可以看到输入path之后,有一个CreateMap函数,看着函数名就知道是在这创建地图,所以我们在这里下一个断点,进行动态调试。


ida动态调试


点这个蓝色的圆圈下断点,变红就证明下断点成功。


HUBUCTF 2022 新生赛——ida动调+迷宫

Local Windows debugger调试器。


HUBUCTF 2022 新生赛——ida动调+迷宫


点击左边的绿色三角形运行,先随便输入。


HUBUCTF 2022 新生赛——ida动调+迷宫


回车之后,按Tab,跳到C伪代码页面。


HUBUCTF 2022 新生赛——ida动调+迷宫

F7单步调试,进入CreateMap函数。


HUBUCTF 2022 新生赛——ida动调+迷宫

再一直按F7单步调试,直到地图全部出现,自动跳到最开始的main函数页面,点OK。


HUBUCTF 2022 新生赛——ida动调+迷宫

双击进入CreateMap函数。


HUBUCTF 2022 新生赛——ida动调+迷宫

再双击map。


HUBUCTF 2022 新生赛——ida动调+迷宫

找到地图。


HUBUCTF 2022 新生赛——ida动调+迷宫

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个为一组。


HUBUCTF 2022 新生赛——ida动调+迷宫

修改之后。


[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]


main函数限定了path长度为54。


HUBUCTF 2022 新生赛——ida动调+迷宫


再看check函数,s就是path,x=15,y=1,分析代码,可以确定,迷宫的初始位置是(15,1),且x,y都是从0开始数的,所以我们可以找到迷宫初始位置。


HUBUCTF 2022 新生赛——ida动调+迷宫

初始位置,走出迷宫,且path的长度必须是54。

HUBUCTF 2022 新生赛——ida动调+迷宫

使用word文档,帮忙高光一下0,这样就好看多了。
HUBUCTF 2022 新生赛——ida动调+迷宫

path:wwdddwwwaaawwwwwwwwwddddssssdddssdsssssssdddwwwwddsssd

main函数提到了,flag是path进行md5之后,加个NSSCTF{}就可以了。


HUBUCTF 2022 新生赛——ida动调+迷宫

md5加密,取32位小写。


HUBUCTF 2022 新生赛——ida动调+迷宫


flag:NSSCTF{a8622109e2fb1296e06d5eed6f78f954}




HUBUCTF 2022 新生赛——ida动调+迷宫


看雪ID:Zer0_0

https://bbs.kanxue.com/user-home-945402.htm

*本文为看雪论坛优秀文章,由 Zer0_0 原创,转载请注明来自看雪社区

HUBUCTF 2022 新生赛——ida动调+迷宫

# 往期推荐

1、IOFILE exploit入门

2、入门编译原理之前端体验

3、如何用纯猜的方式逆向喜马拉雅xm文件加密(wasm部分)

4、反恶意软件扫描接口(AMSI)如何帮助您防御恶意软件

5、sRDI — Shellcode反射式DLL注入技术

6、对APP的检测以及参数计算分析


HUBUCTF 2022 新生赛——ida动调+迷宫


HUBUCTF 2022 新生赛——ida动调+迷宫

球分享

HUBUCTF 2022 新生赛——ida动调+迷宫

球点赞

HUBUCTF 2022 新生赛——ida动调+迷宫

球在看

原文始发于微信公众号(看雪学苑):HUBUCTF 2022 新生赛——ida动调+迷宫

版权声明:admin 发表于 2023年11月4日 下午6:32。
转载请注明:HUBUCTF 2022 新生赛——ida动调+迷宫 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...