fig 1. window 10 dosbox-x debugger |
tifa 很漂亮吧! 從「夜行侦探 EVE burst error 中文化分析」, 得知 dosbox-x 有內建 debugger, 我也想試著用這個 debugger。
linux 版的 dosbox-x 一直沒看到 debug 選單, 找了好久都不知道怎麼用, 原來預設的安裝套件沒有 debug 選單, 從 source code 編譯需要加上 --enable-debug
./configure --enable-sdl2 --enable-debug
這樣就可以看到如 fig 2 的 debug 選單。
![]() |
fig 2. linux dosbox-x debugger |
有點高估自己了, 就算有這個 debugger, 我還是無法看出怎麼追蹤遊戲程式碼, 真的難。在 dos 時代, 想要破解遊戲密碼, 當然也都沒成功過。
最後寫了一個小程式, 用來測試 dosbox-x debugger, 上述的影片跑得程式原本是一個變數檢查, 如果 val == 3, 就執行無窮迴圈, 有2種改法可以跳過這個迴圈, 把檢查的程式碼消去, 影片是用這個方法, 填入 90 90 這個 nop code, 就不會做檢查的 code。另外是把檢查 val 和 3 是不是相等改成 val 和 4 是不是相等, 由於 val 是 3, 因為不等於 4, 就不會一直無窮迴圈。
list 1 的組合語言相等於 L5 ~ 7 的 c++ 語言。離開這個 while loop, 就會印出 cpp_main。基本原理是這樣, 但真的要破解一個程式, 可沒有這麼容易, 繼續努力。
用起來的手感和 gdb 差很多, 不知道怎麼用比較順手。
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。