BugkuCTF-游戏过关

首先将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,,,程序好像崩了。。。。。

posted @ 2020-01-31 18:28  顾北清  阅读(632)  评论(0编辑  收藏  举报