逆向---03.mov、test等匯編指令、EAX、關鍵Call、OD調試技巧


上一篇:逆向---02.je & jmp & jnz 、OD調試

基礎知識:(栗子中也會說的)栗子:鏈接: https://pan.baidu.com/s/1qZbbTvQ 密碼: ifup

1.寄存器的知識:(C里面的一些基礎,一般用32位的比較多)

2.關於運行后搜索中文字符串的說明:沒殼怎么都行,有時候有殼不一定要脫殼再OD調試,直接帶殼破解也是可以的(下節課說下帶殼用中文搜索)

3.快速找跳轉的技巧,右擊來自xxx的跳轉,轉到xxx

4.寄存器窗口看不見了,點擊寄存器窗口的內容部分(不松手),右拉

5.關於程序不知道執行到哪或者調試過程中誤操作的說明雙擊EIP回到當前執行到的代碼處

6.匯編中比較命令cmp&test:cmp屬於加減運算的范疇,而test屬於邏輯運算的范疇

7.調試快捷鍵擴充:F2下斷點,F7進Call,F8單步,F9運行,Shift+F9 忽略異常運行(后面有案例),ALT+F9 從系統領空返回到程序領空(后面會說)

8.關鍵跳說明:跳過了成功到達了失敗,反之亦可

9.關鍵Call舉例說明:Call類似於方法,比如這個地方,直接該je跳轉了,那么這個條件判斷算pass了,但可能還有千千萬萬的判斷,如果改了關鍵call就一勞永逸了

(舉個栗子:登錄驗證,有些頁面必須登錄才能進入,你只改那個頁面的判斷,那么那個頁面可以進了,其他頁面呢?要是直接pass掉登錄驗證,那什么頁面不能進?)

之前說過了nop,je,jnz,jmp之類的,這次說下mov 賦值指令,這幾個基本上是最常見的指令了。下篇文章起就有點難度了,這次栗子就詳細演示一下,也算是對前2課來個復習

OD載入程序(發送到OD,直接拖到OD窗口都可以),F9運行

1.自己摸索摸索軟件,發現了有個提示,我們就以 “注冊” 當做關鍵詞,來中文搜索一下

2.右擊反匯編窗口,中文搜索

3.搜索一下,Ctrl+F

搜注冊的時候發現了這個

4.關鍵跳出現了,F2下個斷(下面我們來用之前講的方法來爆破這個程序)【關鍵跳:跳過了成功或者失敗的跳】

4.快速找跳轉的技巧,右擊來自xxx的跳轉,轉到xxx

5.我們繼續點注冊的時候發現~~斷下來了

6.你決定怎么跳轉,之前講過je,jnz,jmp,nop和Z標志位

(還是復習一下抽象圖吧)

這邊是調試,我們就先該Z標志位(至少得知道結果是不是才去修改啊,不然改一大堆不是白改了?說不定還把程序搞塌了)

7.F8單步跟蹤看看,發現的確是我們想要的(重啟驗證之類的回頭再詳細說)

8.重復上面步驟,到斷點處,修改下指令,nop也行,我這邊就用jnz了(推薦新手用Nop

好處不多說,編過程序的應該知道,亂nop會引發一下不必要的異常(當然了,一般情況下沒問題的)

(比如這個,瞎Nop可能就讓程序業務邏輯亂套了,出現異常也就很正常了)

9.任意選定一些行數,包含你修改的行就行,復制到可執行程序,選擇(所以修改也行,畢竟我們也沒修改其他東西)

10.到了一個其他窗口,不用管它,右擊保存文件

12.運行破解版程序

13.按照以往情況肯定已經破解了,但是這個程序不行,我們繼續來一遍,點<<重新載入

運行》中文搜索關鍵詞“注冊”》關鍵Call處下斷(一般都是關鍵跳的上面一個Call),點注冊按鈕

Call類似於方法,比如這個地方,直接該je跳轉了,那么這個條件判斷算pass了,但可能還有千千萬萬的判斷,如果改了關鍵call就一勞永逸了

(舉個栗子:登錄驗證,有些頁面必須登錄才能進入,你只改那個頁面的判斷,那么那個頁面可以進了,其他頁面呢?要是直接pass掉登錄驗證,那什么頁面不能進?)

test al,al 比較上面Call的返回值,je根據上面比較的返回值來決定跳與不跳,來一個Gif的演示(注意,修改寄存器窗口的值不能保存,這邊只是用來調試用的)

AL是EAX的低位(看GIF的時候,可以直接看看Z標志位,1則紅箭頭,je跳,EAX這時候是0,Z為0,EAX這時候是1)

 知道了關鍵,下面我們來修改匯編代碼,進Call按F7或者

點注冊,在Call斷下的時候我們F7進Call,修改一下Call的內容:mov al,1 (手動給al賦值)retn 返回 

15.保存一下所有修改

打開Crack文件,發現不彈框了==》重啟驗證被滅了

看看注冊內容,我們啥也沒寫,一樣注冊成功(以后要是寫注冊碼之類的,可以寫諸如11111111,2222222等等,調試的時候方便看見)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM