首先将exe文件下载下来,打开看一下:
玩游戏
n是灯的序列号,m是灯的状态
如果第n盏灯的m是1,它就开,如果不是,它就关
起初所有的灯都关上了
现在你可以输入n来改变它的状态
但是你应该注意一件事,如果你改变了第N个的状态,(N-1)个和(N+1)个的状态也会改变
当所有灯都亮起时,旗子就会出现
当所有灯都亮起时,旗子就会出现
现在,输入n
输入n,n(1-8)
玩了半天也没过关,,,然后将这个exe拖进OD分析:
先搜一下flag字符串试试:
找到了flag字符串,跟过去看看:
这玩意看着好像是一个函数,应该是游戏成功之后会跳转到这个函数输出flag,再往上跟,看看是从哪调用的:
找到了调用函数,接着往上分析,发现上面几个jcc指令全部指向0114F671这条指令,这应该就是我们输入的数字时跳转的地址。
要是我们将这个地址里的指令改成直接跳转到输出flag的那个函数这样不管我们输入什么数字不就都可以直接拿到flag了嘛。
回头看一下输出flag的那个函数的地址是:0114E940
改完之后直接运行这个exe,然后随便输入一个数字:
flag是拿到了,不过,,,emmm,,,程序好像崩了。。。。。