一、查看文件类型PE32无壳尝试运行发现是游戏题,倒数10s后根据提示输入正确的按键,程序会输出新的内容,若没有及时输入相应按键或按错键,程序退出刚开始是练习部分再次倒数10s后进入真正的游戏部分依次键入空格、x、m、m、x、s后,跳出提示,相当于通过了第一关,游戏继续多次运行后发现,后续的关卡,需要输入的键位每次都不相同,猜测程序在第二关使用了随机数,完成游戏后得到提示得到flag为:no5c30416d6cf52638460377995c6a8cf5那么解题思路即为将按键输入的判断条件更改,改为即使输入的是错误的按键或不输入,程序也能继续运行。通过IDA找到条件判断的地址或直接通过x32dbg动态调试二、IDA静态分析打开字符串窗口,找到两个错误提示分别通过交叉引用跟进发现第一个错误提示的调用函数如下,看起来像程序前半的教学部分第二个错误提示的调用函数如下:分别查看其汇编代码将其中的jnz改为jz或je即可三、x32dbg动态调试搜索字符串找到错误提示并跟进分别将两处的jne跳转改为je按F9运行即可待程序运行一段时间后,得到flag为:no5c30416d6cf526384603
Norman1z