作業系統環境:Windows XP Pro 32bit 版本2002 SP3
使用工具:Immunity Debugger ,用OllyDbg也可以,(這邊我自己是使用別人改良過的簡體中文化Immunity )
要破解的軟體:某個需要密碼登入才能播放的影片軟體 下載點,壓縮密碼lonelysec
(下載的練習程式不保證是安全無毒的,所以建議都下載安裝在虛擬機上。如載點失效,請私訊波波粉專)
首先利用Immunity Debugger 將要破解的影片軟體打開。
我們可以先F9執行影片軟體,先了解一下他整體的運作流程、模式。
並觀察下有沒有什麼值得注意的動作或是訊息。
這邊我們觀察到在一開始需要輸入Key(密碼),驗證通過後才能觀看影片。
如果密碼輸入錯誤就會顯示 Password Wrong!
依照上一集(零基礎學破解-第一集),我們一樣使用老方法
記住 Password Wrong!這個關鍵字,然後我們在Immunity Debugger上,右鍵-->中文搜尋引擎-->搜索ASCII
這邊我們使用ASCII的方式,你要使用智能搜索也是可以。
然後我們搜索關鍵字,"Password Wrong!"
建議 不要輸入全名,因為怕找不到,所以你可以輸入 Password或Wrong之類的短關鍵字。
搜尋找到後,我們右鍵-->Follow,繼續追蹤下去。
整理一下思路,我們輸入錯誤密碼後,然後程式會顯示Password Wrong!
所以我們往上看一下程式,我們可以觀察到 0040203F地址有一個箭頭,並且是 je。
je ;等於則跳轉。
會跳轉到00402056地址,而我們的Password Wrong是在 0040203F地址與00402056地址的中間00402048地址
這邊我們可以直接在0040203F地址下斷點,然後進一步觀察從0040203F地址F8一步一步執行到00402056地址會發生什麼事情。
右鍵-->斷點-->切換。或者你可以直接 F2 直接下斷點。
下完斷點後,我們就來執行程式吧。F9執行。
並且隨便輸入一組密碼後按下確定。
按下確定後,可以注意到的是,當我們點擊確定後,沒有顯示 Password Wrong!。
我們切換回來,可以發現到我們下斷點的地方變成白底紅字,並且卡在0040203F地址。
代表可能是在這邊做了一個判斷,判斷你的密碼有沒有輸入正確。
如果密碼錯誤,就會繼續執行下去。
如果密碼正確,就會跳過 Password Wrong這個畫面。
還記得吧? JE ;等於則跳轉
這邊我們直接F8一步一步執行下去。F8執行到 0040204F地址,大概這個位置。
我們切換回影片軟體,可以發現顯示了一個視窗 Password Wrong!
現在我們切換回來Immunity Debugger,然後重新整理一下思路
現在我們確定了0040203F地址是去判斷密碼的,所以我們將這個0040203F地址更改一下,嘗試去破解繞過他。
這邊我們滑鼠右鍵 --> 匯編
你要直接在0040203F地址 按下鍵盤的空白鍵也可以。
然後將0040203F地址的 je 改成 jmp。
jmp 為 無條件跳轉
更改成jmp後,我們可以在繼續F9執行程式。
這樣就破解成功了。
破解成功後,我們需要將修改過的程式碼保存起來。
右鍵-->複製到可執行文件-->選擇
一樣是存檔,隨便取一個名稱。
存檔完畢後,我們關閉所有程式,然後執行看看破解檔。
最後成功!