使用exeinfo PE,查看程序发现是upx加壳。
使用upx工具解壳。
再使用exeinfo PE打开,发现是win32程序。
使用ida32打开程序如下:
发现报红,合理怀疑存在脏字。
push eax
.text:00401028 xor eax, ecx
.text:0040102A cmp eax, ecx
.text:0040102C jnz short near ptr loc_40102E+1
.text:0040102E
.text:0040102E loc_40102E: ; CODE XREF: .text:0040102C↑j
.text:0040102E call near ptr 0EC85D78Bh
观察这段代码,发现call指令应该是数据被错误识别了。使用U取消它的定义,然后绕过它使用C快捷键。结果如下:
然后使用P指令将关键函数识别为函数,按F5:
观察后,与题目意思结合,发现是迷宫题。
找地图,如下:
* | * | * | * | * | * | * | + | * | * |
* | * | * | * | * | * | * | * | * | |
* | * | * | * | * | * | ||||
* | * | * | * | * | * | * | |||
* | * | * | * | F | * | * | * | * | |
* | * | * | * | * | * | ||||
* | * | * | * | * | * | * | * | * | * |
所以flag{ssaaasaassdddw}