注册机制的研究
文章目錄
- 實驗目的
- 實驗工具
- 實驗思想
- 實驗原理和步驟
- U盤監控器注冊破解
- Free Internet Window Washer注冊破解
- 實驗總結
實驗目的
研究軟件注冊機制,利用OD等工具破解U盤監控器、Free Internet Window Washer,繞過或發現注冊碼,達到注冊成功目的。
實驗工具
OllyDBG、W32DASM、WinHex等。
實驗思想
OllyDbg動態分析的基本流程如下:
1、通常拿到一個軟件先試著運行軟件,如果有幫助文檔查閱幫助文檔,熟悉軟件的基本用法,接著嘗試輸入錯誤的注冊碼,觀察錯誤提示。
2、如果沒有輸入注冊碼的地方,要考慮是否是讀取注冊表或Key文件(程序讀取一個文件中的內容判斷是否注冊),這些可以用其他工具來輔助分析。
3、如果都不是,原程序只是一個功能不全的試用版,那要注冊為正式版需要手動寫代碼完善。
4、如果需要輸入注冊碼,如上圖所示,則調用查殼軟件檢查程序是否加殼(如PeiD、FI),有殼的需要脫殼之后再調用OllyDbg分析調試,無殼的直接調用工具調試。
實驗原理和步驟
U盤監控器注冊破解
U 盤監控器需要注冊才能使用全部功能,我們的任務是使得輸入任何注冊碼均能注冊成功 。通常在注冊時,程序會讀取注冊碼,然后對注冊碼進行判 斷: 正確則顯示注冊成功,轉到正常的程序運行狀態:錯誤則顯示注冊失敗 ,轉到未注冊運行狀態。
1.1、運行軟件,獲得與破解有關的信息;
1.2、尋找注冊失敗字符串地址;
1.3、使用 OD 獲取引用該字符串的指令在內存中的地址;
內存地址:0x0400000+0x81A79,跳轉到0x00481A79得到
1.4、使用W32DASM獲得判斷語句的位置;
分析:紅框處提示錯誤信息代碼位置:00405CD2,找到該位置,這是個分支語句,jg:表示跳轉,其相反指令是jl,將jg改為jl,使其判斷條件相反。
1.5、使用OD修改指令字節碼。
如果我們將判斷轉移條件更改一下,錯誤則轉到正常的運行狀態,反之則轉到來注冊的運行狀態 。這樣,如果我們輸入了錯誤的注冊號,程序也會像輸入了正確的注冊號 一樣運行,流程 如圖所示。
1.6、OD中找到jg指令所在位置00405CD2,選擇使用NOP填充,將jg改為jl.即可成功注冊
Free Internet Window Washer注冊破解
2.1、運行安裝軟件FIWWSetup2.9.exe,找到安裝文件夾;
2.2、查殼:使用PEID工具檢驗是否加殼;
打開安裝目錄,將Clearpch.exe放入OD查殼,發現程序是無殼的
2.3、注冊,發現報錯字符串;
2.4、輸入錯誤注冊碼,調試跟蹤,發現注冊判斷代碼位置;
1)既然程序沒有加殼,那么直接用OD載入,然后使用OD的插件查找,由于軟件是用Delphi編寫的,則搜索的時候選擇ACSII方式查詢。
(2)在查詢的時候遇到困難,并沒有找到“Registration is not valid,please try agin?!边@樣的注冊失敗信息。
(3)由于該程序支持多國語言,來到安裝目錄下發現一個名為WLan_English.ini的文件,打開得知這是英文顯示語言包,嘗試在該文件中搜索注冊失敗信息,結果如下圖:
在WLan_English.ini中查找到“RES_Registration_Error = Registration is not valid, please try again.”這樣一條信息,于是嘗試在OD(以管理員身份運行)中查找RES_Registration_Error,果然找到了 一處,如下圖所示:
(5)雙擊RES_Registration_Error信息,來到反匯編窗口進行爆破
(6)為了簡單,一般會在這個函數的頭部下斷點來進行調試,根據OD中函數頭部的提示,函數頭部在004D3874處,按F2下斷點,然后進行動態調試
(7)下好斷點之后就可以運行程序進行動態調試了,按F9運行程序,程序運行后,重新打開FIWWSetup2.9.exe用假注冊碼進行注冊,輸入完成后,點擊OK按鈕,那么程序就會停止在我們下的斷 點處,如下圖所示,那么就可以進行動態調試了
(8)開始單步調試,按fn+F8進行單步調試,每一次按F8后注意寄存器和緩沖區值的變化,尤其是要關注注冊碼信息是否出現,當執行到004D389E時,出現假注冊碼
(9)出現我們輸入的假注冊碼,此時要特別留意,一般注冊算法會在這個附近出現。根據經驗來看,一般注冊算法會出現在004D348E后的第一個call指令處,而關鍵跳則是 出現在004D348E后的跳向注冊失敗信息的的跳轉。為了驗證這個想法,修改004D3498 處的跳轉使其實現,跳過注冊失敗的信息,修改如下圖所示:
(10)保存修改后的文件,然后打開注冊,發現可以注冊成功,爆破成功!
實驗總結
經過這次實驗,我學會了怎么使用OD等工具破解U盤監控器和Free Internet Window Washer,繞過或發現注冊碼,達到注冊成功目的,查閱資料和老師給的指導書慢慢完成了實驗,但其中也遇到一些問題,比如對OD操作不熟練,因為自己下載的是英文版的OD,加上自己英語不好,導致找一些操作的時候有些麻煩,下載漢化版會方便些,但以后還是要好好學習英語啊,然后就是在調式跟蹤錯誤代碼時,自己粗心大意沒仔細看緩沖區的內容導致在找JP指令花了不少時間。總而言之,這次實驗收獲好多,以后有軟件注冊不成功可以嘗試分析理解了。
總結
- 上一篇: 算法常见高数知识
- 下一篇: Visio2019中插入数学公式