逆向破解(本地篇)- 05 MessageBoxA斷點實現破解

利用信息提示框API斷點MessageBoxA實現破解

之前使用字符串查找的方式來破解程序,但是有的程序字符串經過了加密,我們就無法搜索到關鍵字。

下面介紹利用信息提示框API斷點MessageBoxA實現破解:

  1. 可以下這樣一個斷點:MessageBoxA(也可以在command窗口中直接輸入bp MessageBoxA

  2. 運行程序,讓軟件在彈出錯誤提示框前斷下來

  3. F8單步執行,來到這個錯誤提示框call前,往上找找看有沒有能夠跳過這個錯誤提示框的

  4. 一般直接在上面是找不到關鍵跳的(因爲位於系統領空)。F8繼續單步下去,嘗試退出目前的call,看上層是否有關鍵跳

  5. 執行到代碼行下方的retn,跳出這個call,繼續往上找是否有能夠跳過這個call的…

    (判斷有沒有,是看這個call和上面最近的一個retn之間是否有跳轉能夠跳過這個call

  6. 如果還是沒有,那麼繼續跳出這個call,直到發現有關鍵跳了!在這個大call上寫上註釋~~~

  7. 往上看,本來有一個跳轉A是可以跳過這個call的,但是由於它上面的跳轉B跳過了跳轉A,所以讓A無法實現

  8. 選中上面這個跳轉B的目標代碼行,然後註釋欄會出現 “跳轉來自 xxx” ,選中它右鍵轉到跳轉B的來源處

  9. 就是這個跳轉B在搞鬼,在這裏F2下斷點,並把之前的消息框斷點刪掉,然後運行程序證明一下

    PS:

    • 沒必要重新載入這個程序,只要點擊F9運行,然後再輸一次註冊碼就可以到斷點位置了。

    • 當上下滾動分析代碼時,雙擊右側寄存器窗口中的 EIP ,可以回到當前執行的代碼行了!因爲EIP指向當前執行位置。

  10. 把這個跳轉nop掉即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章