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 @   顾北清  阅读(641)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示