bugku_re_游戏过关

BUGKU 逆向题:游戏过关

游戏过关

将程序下载,打开程序,发现是一个游戏界面:键盘输入1-8的数字n,当输入n时,将会改变第n-1、n和n+1盏灯的状态,如果8盏灯的状态全部为亮,则输出flag。

方法一

最简单的方法就是将游戏完通关,通关后,得到结果如下:

image

flag就这样出来了。

方法二

除了这种直接将游戏通关的办法,我还考虑使用ida找到flag的方法,下面将介绍这种方法。

将程序拖入ida中打开。发现main函数没有明确的显示出来,为了简便,使用search->sequence of bytes搜索“flag”字节。

image

发现sub_45E940函数被调用,进入函数,发现flag是由2个数组进行异或得到的。

编写下图程序:

image

输出flag:

image

flag为:zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}