充满争议点的 HUBUCTF 2022 新生赛
题目地址:
https://wwvc.lanzouj.com/i1vh91bvxtwd
首先,查壳
信息:
文件名: H://BUUCTF/HUBUCTF 2022 新生赛/help.exe
大小: 57368(56.02 KiB)
操作系统: Windows(Server 2003)
架构: AMD64
模式: 64 位
类型: 控制台
字节序: LE
使用IDA64打开
在CreateMap()函数后面设置断点
地图
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,
从坐标(15,1)开始走迷宫,要求走54步走出迷宫
但是,由于没有规定迷宫出口位置,所以可以按照传统走法
path:
wwdddwwwaaawwwwwwwwwddddssssdddssdsssssssdddwwwwddsssd
main函数提到了,flag是path进行md5之后,加个NSSCTF{}就可以了。
md5加密,取32位小写。
flag:
NSSCTF{a8622109e2fb1296e06d5eed6f78f954}
也可以取巧,反复走2步,3步,6步,9步。。。等等
比如反复走2步的情况:
程序并没有定义迷宫的终点,只有path长度=54,只能走值为0的位置。那其实可以在原地反复横跳,path=
wswswswswswswswswswswswswswswswswswswswswswswswswswsws
程序也能执行成功
md5加密,取32位小写。
flag:
NSSCTF{b4c7911fe0bb4911eb77da360f6f329d}
我常用是OD动调,IDA静逻辑,PE看段,X看壳,PY走脚本,DBG来来K API,GPT翻译,CO代码,GG文献,Z盘回溯,这里回复