Ollydbg使用教程学习总结(四)
解密系列之OD使用教程13——迷途
程序:XoftSpy41._96.exe
用PEID查看,是VC6編寫的程序,用OD載入
獲取文本框輸入內容API:GetWindowTextA
API下斷方法:
a.右鍵=>查找=>所有模塊間的調用,直接輸入API,找到后右鍵該行=>在每個調用到GetWindowTextA上設置斷點;
b.Ctrl+N,找到后右鍵=>在每個參考上設置斷點;
按F9運行程序,刪除輸入注冊碼之前就觸發的斷點,最后輸入注冊信息之后,在如下位置斷下
繼續按F8瀏覽程序,在有跳轉處仔細判斷是否應該使之實現,來到下面地址處,查看該跳轉后所在位置,可知應使其實現,上面有關鍵call,下斷重新運行程序并跟進分析,仔細瀏覽下面的程序,發現還有與這段完全相同的程序段
可知程序可能在多處地方都存在驗證注冊代碼,跟進后可看到這個子程序有2個返回點,在第1個返回點附近有mov al,1這條指令,猜測是成功的標志;在第2個返回點有xor al,al指令,猜測是失敗的標志;按F8單步運行,遇到跳轉時修改ZF標志位使其從第1個返回點返回,最終提示“恭喜注冊成功”的信息,但是點擊確定后發現并沒有注冊成功!這就是“迷途”!
解密系列之OD使用教程14——知返
程序:XoftSpy41._96.ex.
上一講用獲取編輯框內容的方法并不能實現破解,這次換個思路,采用字符串查找法。
雙擊高亮這行,來到
發現關鍵call,繼續往上瀏覽,在子程序開始處下斷,發現切換到主程序界面就會觸發該斷點
跟進關鍵call,發現子程序只有1個返回點,繼續按F8單步執行,來到
根據棧頂所示,推測這個call是驗證算法call。繼續往下看,如果注冊成功的話,會執行以下2句指令
因此,將第2句指令改為mov al, 1即可,保存到可執行文件,測試成功。
解密系列之OD使用教程15——inline patch “內嵌補丁”
程序:DVDMen.Studio.exe
運行程序,有NAG窗口,有30天的試用期,將系統日期調至提前1年,發現軟件過期不可用了,再重新將系統的日期調回,但軟件還是過期不可用,說明程序在某個地方寫入了是否過期的標志。
用PEID查看為VC6編寫的程序,用OD載入程序,輸入注冊信息并點擊確定,發現程序并不會斷下。輸入完注冊信息后先不點擊OK按鈕,在OD中按下Ctrl+N,輸入KillTimer,并在每個參考上設置斷點,然后返回軟件點擊OK,程序斷下(此處KillTimer是break的作用,構成switch case語句)。根據分析程序提示信息,得到eax必須等于4才可實現破解成功,如圖
選中cmp eax, 4這行,下面提示“跳轉來自004DC1A0”,右鍵=>轉到jnz來自004DC1A0,最終找到switch case語句的開始處
在該子程序頭部下斷,按F9運行程序,輸入注冊信息,最后斷下,單步執行,發現eax的值來源于上圖高亮這行,直接修改為mov eax, 1,但是修改后會覆蓋后面2條指令,因此需要采用“內嵌補丁”的方式進行修補,補丁所在位置為005E47D0,即程序后面填補為0的區域。
在004DBD9E處右鍵=>Bookmark=>Insert Bookmark插入書簽,對該句指令進行修改如下
同樣,在5E47D0處進行修改如下,最后跳轉回004DBDA3(即轉到下一句繼續執行)
將所做的修改保存到可執行文件,打開程序測試,發現程序進入死循環,這是為什么呢?繼續載入未修改的程序進行分析,發現把eax的值修改為4后,程序并不能跳出switch case語句,而把eax的值改為0B后即可正常跳出。(此處解釋有點牽強,但事實卻是如此,還需深究原因)
解密系列之OD使用教程16——“堆棧法”
程序:DVDMenuStudiX.ex.
運行程序,先產生主窗口,再出現NAG窗口。用OD載入,按F9運行,NAG窗口出現后,按下暫停鍵,在打開堆棧窗口如下
雙擊最后一行,來到
在該行下斷,并在該子程序開始處下斷
004DBD80 . 55 push ebp 004DBD81 . 8BEC mov ebp, esp重新載入,按F9,來到斷點處,按F8單步執行發現
004DBDBE . 83B8 64010000>cmp dword ptr [eax+164], 1 004DBDC5 . 75 1F jnz short 004DBDE6 004DBDC7 . 8BCF mov ecx, edi如果上面跳轉實現的話,就會004DC0D1處的call而調出NAG窗口,因此NOP掉該條指令,保存,即可破解。
總結
以上是生活随笔為你收集整理的Ollydbg使用教程学习总结(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国际货运代理企业备案表在哪里办理(国际货
- 下一篇: linux删除文件恢复工具(linux删