掃雷的程序名: minesweeper.exe 64位應用程式
失敗提示資訊:
首先這個視窗顯示時其它視窗沒有反映,很明顯是個模態對話方塊
使用x64dbg附加程序,然後下相關斷點, messageboxw createwindowexw dialogboxparamw
然後遊戲中斷在dialogboxparamw,根據對話方塊模板資源建立乙個模態的對話方塊
通過選擇選單的不同子選單項,發現都是呼叫的同個api
回到正題
dialogboxparamw下斷點,然後遊戲中隨意點選,失敗時中斷,然後單步執行返回到呼叫處,
在呼叫處下一行下個斷點.f9執行,此時不會斷下.
因為它是模態對話方塊,需要對話方塊銷毀後才會返回.所以點重新開始這個遊戲,視窗銷毀,偵錯程式中斷下來.
單步執行到返**用處,分別在呼叫處以及函式頭部下斷點,然後執行,發現會一直中斷在函式頭部,
而呼叫處卻不會中斷。那說明這段**是個分支流程結構。
結過分析發現只有當掃雷成功或者掃雷失敗時,才會執行call 建立模態對話方塊
往上分析,發現如下**
那只要找乙個合適的地方,強制跳轉到ff5fb61d,即可獲勝
修改彙編**,當第一次點選格仔並且非雷時,直接彈出獲勝視窗
最終效果:
小遊戲 掃雷
c語言實現的乙個簡單的掃雷遊戲 介面簡單,功能 首次踩雷的,會換雷。掃雷有九宮格擴撒 環境 vs2015 如下 game.h pragma once ifndef game h define game h define rows 11 define cols 11 define num 9 incl...
小遊戲 掃雷
實現乙個掃雷遊戲 1.設定兩個陣列 mine row col 表示布雷,show row col 顯示掃雷情況 顯示周圍有幾個雷 因為統計四周,邊緣位置不好實現,所以把二維陣列的行和列都加二,這樣無論是否在邊緣都可以當做一種情況來實現。2.初始化mine和show,show mine 0 3.set...
掃雷小遊戲
game.h 標頭檔案 ifndef game h define game h include include include include define row 12 define col 12 define count 10 棋盤中雷的總數 extern char show mine row ...