BUGKU 逆向题:游戏过关
游戏过关
将程序下载,打开程序,发现是一个游戏界面:键盘输入1-8的数字n,当输入n时,将会改变第n-1、n和n+1盏灯的状态,如果8盏灯的状态全部为亮,则输出flag。
方法一
最简单的方法就是将游戏完通关,通关后,得到结果如下:
flag就这样出来了。
方法二
除了这种直接将游戏通关的办法,我还考虑使用ida找到flag的方法,下面将介绍这种方法。
将程序拖入ida中打开。发现main函数没有明确的显示出来,为了简便,使用search->sequence of bytes搜索“flag”字节。
发现sub_45E940函数被调用,进入函数,发现flag是由2个数组进行异或得到的。
编写下图程序:
输出flag:
flag为:zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}