zoukankan      html  css  js  c++  java
  • 扫雷小游戏_通过爆破手段强制胜利

    扫雷的进程名: MineSweeper.exe  64位应用程序

    失败提示信息:

    首先这个窗口显示时其它窗口没有反映,很明显是个模态对话框
    使用x64dbg附加进程,然后下相关断点, MessageBoxW CreateWindowExW DialogBoxParamW
    然后游戏中断在DialogBoxParamW,根据对话框模板资源创建一个模态的对话框
    通过选择菜单的不同子菜单项,发现都是调用的同个api

    回到正题
    DialogBoxParamW下断点,然后游戏中随意点击,失败时中断,然后单步执行返回到调用处,
    在调用处下一行下个断点.F9运行,此时不会断下.
    因为它是模态对话框,需要对话框销毁后才会返回.所以点重新开始这个游戏,窗口销毁,调试器中断下来.

    单步执行到返回调用处,分别在调用处以及函数头部下断点,然后运行,发现会一直中断在函数头部,
    而调用处却不会中断。那说明这段代码是个分支流程结构。
    结过分析发现只有当扫雷成功或者扫雷失败时,才会执行call 创建模态对话框

    往上分析,发现如下代码

    那只要找一个合适的地方,强制跳转到FF5FB61D,即可获胜

    修改汇编代码,当第一次点击格子并且非雷时,直接弹出获胜窗口

     最终效果:

  • 相关阅读:
    Unable to load configuration.
    Hibernate映射文件如何配置触发器
    hibernate的集中持久化方法的区别
    Hibernate.lock()方法中各种锁的区别
    JNDI全面总结
    代理模式
    Java常见的几种内存溢出及解决方法
    Hibernate整合C3P0实现连接池
    Hibernate与Mybatis的概念区别
    sql之truncate 、delete与drop区别
  • 原文地址:https://www.cnblogs.com/fzxiaoyi/p/12116463.html
Copyright © 2011-2022 走看看