作為一名程序員,由于我所編寫的幾款小軟件經常被人破解,所以就對常見的軟件破解方式比較關注。在這篇文章中,我把各種軟件破解方式一網打盡,如算法注冊機、內存破解法、補丁破解法和文件注冊法等,以便大家“知己知彼,百戰不殆”。同時,我也想讓大家認識到,軟件的加密和破解是一場長期的“貓和老鼠”的較量。(注:本文內容僅限于學術研究。)
一、算法注冊機
算法注冊機是在破解者分析了軟件的注冊碼算法后,制作出來的一種可以自動生成軟件注冊碼的程序(一般軟件作者自己也編寫得有算法注冊機,用于賣軟件)。由于用這種方式破解的軟件和正版注冊的一模一樣,功能上沒有任何區別,所以它是最完美的軟件破解方式。下面介紹算法注冊機的三種工作流程。
1.運行未注冊軟件,得到軟件機器碼,再用算法注冊機算號注冊
這類軟件加密的特點是一個注冊碼只能在一臺電腦上使用,像和電腦進行了一對一的綁定。在此以“南方排八字 4.6”為例說明。安裝該軟件后點擊幫助菜單中的“注冊”項,在注冊窗口中就可以看到一個根據你的電腦而生成的惟一機器碼。把這個機器碼復制到對應的算法注冊機中,點擊Generate按鈕就可得到軟件的注冊碼(如圖1)。最后,把算出來的注冊碼填入軟件的注冊碼窗口,并隨意填寫注冊人的姓名,就完成了軟件的注冊。
圖1為:運行未注冊軟件,得到軟件機器碼后,用算法注冊機算號注冊
2.用算法注冊機直接算出注冊碼
這類軟件的加密方式最普遍,用一個注冊碼就可以給不同的電腦上的同一軟件注冊。在此以UltraEdit v10.10c為例說明。安裝該軟件后它會提示你輸入用戶名和注冊碼。這時啟動它所對應的算法注冊機,輸入一個自定義的用戶名(如hacker),注冊碼就在下面自動生成了(如圖2)。最后,把得到的注冊碼復制到UltraEdit的注冊窗口中,并填上剛才自定義的用戶名,注冊結束。
圖2為:用算法注冊機直接算出軟件的注冊碼
3.用算法注冊機直接注冊
采用這種注冊方式的軟件非常少,其特點是一旦運行算法注冊機,軟件便注冊成功了!在此以Clone.CD.4.3.2.2為例說明。安裝好該軟件后,不要啟動它。先運行它所對應的算法注冊機,保持默認用戶名不變(也可自定義),當點擊Exit按鈕退出后,該軟件便被成功注冊了(如圖3)。
圖3為:利用算法注冊機直接注冊軟件
二、內存破解法
內存破解法是先加載破解程序(內存注冊機),再通過它去讀取內存中軟件的注冊碼,或修改內存中軟件相關的某些數據,來達到破解軟件的目的。
1.直接從內存中得到注冊碼
這種方法只須知道軟件注冊碼的內存地址就行,無須掌握軟件注冊碼的算法,很節省編寫內存注冊機的時間。在此以“玩轉手機V3.12”為例。安裝該軟件后,把它的內存注冊機復制到軟件安裝目錄中。把你的手機連接到電腦上,并運行內存注冊機。內存注冊機會自動把該軟件啟動,跟著出現的手機向導往下走,會自動檢測到手機。當檢測完成后,內存注冊機就自動彈出一個窗口,里面便是軟件的注冊碼。把注冊碼記下來后點擊“確定”按鈕,會彈出軟件注冊窗口,填入注冊碼即可完成注冊(如圖4)。
圖4為:直接從內存中得到軟件的注冊碼
2.使用Loader程序
此方法是在沒有找到很好的破解方法時采用,它可以去掉軟件運行時的注冊提示窗口(或軟件過期提示窗口),可在內存中模擬軟件已注冊的運行環境,甚至有的還能給軟件帶來一定的功能擴展。玩過網絡游戲“傳奇”的朋友應該知道這種破解方式,它有點像“傳奇”的外掛。在此以UltraFXP v1.06為例說明。安裝該軟件后,把它對應的Loader程序復制到軟件安裝目錄中,并把UltraFXP的快捷運行方式從原來指向的UltraFxp.exe改為指向Loader程序。這樣運行軟件時就是先運行Loader程序,再運行該軟件,而此時的軟件環境就是“已注冊”。網上流行的QQLDR程序也屬于這種,它的作用是去掉QQ的廣告,并顯示對方的IP。這種外掛性質的破解方式優點是完全不用修改軟件的程序文件(如圖5)。
圖5為:像網絡游戲外掛一樣的Loader程序
三、補丁破解法
補丁破解法是指用相關的補丁程序來修改軟件,以達到破解軟件的目的。此方法一般是破解軟件的驗證注冊碼或時間,基本上都是修改原程序的判斷語句。
在此以MSN Messenger 6.1為例說明。先不要運行它,而運行其破解補丁程序。在補丁程序中點擊“Apply Patch”按鍵,指定MSN Messenger的安裝目錄。當點擊“OK”按鈕后,即可完成軟件的破解(如圖6)。經過以上操作,MSN Messenger的廣告條就沒有了,而且可以同時運行幾個。
圖6為:用補丁破解MSN Messenger
四、文件注冊法
文件注冊法是把軟件的注冊內容放到一個文件里,以方便自己或別人用它來注冊。
1.注冊表導入
這種注冊方式是通過運行.reg注冊表文件進行注冊,而軟件注冊碼的注冊表信息就存放在這個注冊表文件中。破解的操作步驟是先安裝軟件,然后雙擊它的.reg破解文件,出現是否導入注冊表的詢問窗口后,點擊“確定”按鈕就完成了注冊。Nokia LogoManager 1.3就是采用的這種破解方式,不過它的破解包含了主程序文件破解和注冊表導入兩種。
2.注冊文件
采用這種注冊方式的典型代表是WinRAR,其注冊文件名為Rarreg.key,里面含有用戶名和注冊碼等信息。安裝WinRAR后,把Rarreg.key復制到軟件的安裝目錄。當WinRAR運行時,就會自動讀取注冊文件里的信息,以驗證軟件的注冊是否正確。
五、破解版
破解版是指用戶到手的軟件已經被破解,可以直接當正版的已注冊軟件使用。這種已破解的軟件如果破解得不徹底,運行時就會出現一些問題(如隨機性出錯等),不像用注冊機破解的效果那么好。
比如LogoManager File Converter,它下載后便可直接使用,因為它是被破解過的。還有一種破解版是只破解了軟件的主程序文件。當軟件安裝好后,把已破解的主程序文件復制到軟件的安裝目錄中,覆蓋原主程序文件就完成破解了。
六、其他與破解相關的內容
1.查看NFO文件中的破解信息
很多從網上下載的軟件都帶有NFO文件,它里面有該軟件的詳細破解信息,如破解時間、組織、發布方式、破解方式以及安裝方法等(如圖7)。不過NFO文件基本上都是英語的,要有一定的英語基礎才能看懂。查看NFO文件可用DAMN NFO Viewer(下載地址:點擊下載),用記事本有時看不到里面的圖案。
圖7為:LogoManager File Converter的NFO破解信息文件
2.0day與Warez
講到破解軟件,就不能不說0day與Warez。0day并不是指那些破解專家不到一天就能“搞定”某個軟件,而是說他們能在最短的時間里把軟件“解鎖”,并發布在網上。0day的真正意思是“即時發布”,我們可以把它看做一種精神。Warez是對軟件破解的泛稱,其中“z”既表示復數,形容非常多,也表示0day中的“0”(即zero),一語雙關。0day其實就是Warez的一種傳播形式。
世界上并不存在叫0day或Warez的跨國“邪惡”組織。如果有人說他屬于“0day組織”,很多時候并不是指他真的在一個叫“0day”的破解組織里干活,而是指他(或他的組織)的軟件破解行為符合0day精神。0day是非商業化、非盈利的軟件志愿破解行為,市場上那些把0day軟件做成盜版光盤銷售的行為,與0day的本意無關。
通過本文,相信大家對軟件的破解方式有了深刻的認識。提醒大家,非法的軟件破解是對軟件著作權人的一種侵害。下面是《計算機軟件保護條例》的在線閱讀地址: http://www.people.com.cn/GB/it/20011228/637650.html,里面有些內容值得大家注意,如未經軟件著作權人許可,不得修改、翻譯其軟件,不得故意避開或者破壞著作權人為保護其軟件著作權而采取的技術措施等。