扫雷小游戏_通过爆破手段强制胜利

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

失败提示信息:

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

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

 

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

 

往上分析,发现如下代码

 

 

 

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

 

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

 

 最终效果:

posted @ 2019-12-29 21:07  SmallOverFllow  阅读(327)  评论(0编辑  收藏  举报