zoukankan      html  css  js  c++  java
  • 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,,,程序好像崩了。。。。。

  • 相关阅读:
    小程序-自定义组件
    51Nod
    CodeForces
    JSON、闭包和原型----透视Javascript语言核心
    转载:动态规划法总结
    to初学者:从汉诺塔问题深入理解递归算法思想
    不知‘时间复杂度’所云的看过来
    盲点流水账记录
    常用序列化协议总结
    排序——了解总体以及插入排序
  • 原文地址:https://www.cnblogs.com/Timesi/p/12246193.html
Copyright © 2011-2022 走看看