2015-08-23 45 views
0

我有一個minigame.exe,它在遊戲中的某個點崩潰。它不顯示任何錯誤消息,它只是說不響應。我正在使用Win 7.我想確定崩潰點並嘗試解決遊戲問題。我認爲這個問題可能是由於可執行文件導入了特定的DLL引起的。但是,我不知道如何找出特定的生產線並嘗試用OllyDBG修補可執行文件。修補可執行文件以避免崩潰

回答

1

根據給出的信息,這個答案需要一個完整的教程風格,對於這個網站來說這個風格被認爲太寬泛了。但是,要解釋第一步,找出它是什麼類型的碰撞以及碰撞發生的位置。

我將使用WinDbg作爲調試器,因爲我不熟悉OllyDbg。它是Debugging Tools for Windows的一部分,並且免費提供。安裝匹配minigame.exe的版本x64或x86。

  1. 開始WinDbg中,使用正確的位數
  2. 運行minigame.exe的WinDbg(File/Open executable)下。它將在最初的斷點停止。
  3. Set up the symbols,至少.symfix c:\debug\symbols.reload。這將下載構建調用堆棧所需的信息。
  4. 繼續運行與g
  5. 應用重現問題/等待,直到它崩潰
  6. 當WinDbg的停止,
    • 創建.dump /ma c:\debug\minigame.dmp崩潰轉儲以便在以後對其進行分析,例如在這裏提問,這樣你就不需要再次重現錯誤了。
    • 獲取有關.exr -1
    • 切換到線程的異常與k

造成與~#s

  • 看異常在調用堆棧信息,現在你應該有一個更好的理解崩潰,也許足以應用補丁,可能不是。至少這是進一步探索的一個更好的起點。

  • +0

    在x64_DBG中沒有辦法做到這一點嗎?當我運行WinDBG64時,它表示歹徒處於忙碌狀態,並且不會顯示寄存器,內存和窗口......即使打開寄存器窗口也不會顯示寄存器。它並不是一個真正的用戶友好型或者舒適的調試器。 – FreeMind

    +0

    是的,WinDbg完全以命令爲導向。它的GUI不太直觀,命令也沒有。但它是最強大的調試器。你可以在OllyDbg中做同樣的事情,但正如我所說的,我不知道如何使用它。 –

    +0

    Minigame.exe是免費的嗎?也許它適用反調試技術 –