軟體保護

看雪資料發表於2015-11-15

軟體保護

  軟體的破解技術與保護技術這兩者之間本身就是矛與盾的關係,它們是在互相鬥爭中發展進化的。這種技術上的較量歸根到底是一種利益的衝突。軟體開發者為了維護自身的商業利益,不斷地尋找各種有效的技術來保護自身的軟體版權,以增加其保護強度,推遲軟體被破解的時間;而破解者則或受盜版所帶來的高額利潤的驅使,或出於純粹的個人興趣,而不斷製作新的破解工具並針對新出現的保護方式進行跟蹤分析以找到相應的破解方法。從理論上說,幾乎沒有破解不了的保護。對軟體的保護僅僅靠技術是不夠的,而這最終要靠人們的智慧財產權意識和法制觀念的進步以及生活水平的提高。但是如果一種保護技術的強度強到足以讓破解者在軟體的生命週期內無法將其完全破解,這種保護技術就可以說是非常成功的。軟體保護方式的設計應在一開始就作為軟體開發的一部分來考慮,列入開發計劃和開發成本中,並在保護強度、成本、易用性之間進行折衷考慮,選擇一個合適的平衡點。

  在桌面作業系統中,微軟的產品自然是獨霸天下,一般個人使用者接觸得最多,研究得自然也更多一些。在DOS時代之前就有些比較好的軟體保護技術,而在DOS中使用得最多的恐怕要算軟盤指紋防複製技術了。由於DOS作業系統的脆弱性,在其中執行的普通應用程式幾乎可以訪問系統中的任何資源,如直接訪問任何實體記憶體、直接讀寫任何磁碟扇區、直接讀寫任何I/O埠等,這給軟體保護者提供了極大的自由度,使其可以設計出一些至今仍為人稱道的保護技術;自Windows 95開始(特別是WinNT和Windows 2000這樣嚴格意義上的多使用者作業系統),作業系統利用硬體特性增強了對自身的保護,將自己執行在Ring 0特權級中,而普通應用程式則執行在最低的特權級Ring 3中,限制了應用程式所能訪問的資源,使得軟體保護技術在一定程度上受到一些限制。開發者要想突破Ring 3的限制,一般需要編寫驅動程式,如讀寫並口上的軟體狗的驅動程式等,這增加了開發難度和週期,自然也增加了成本。同時由於Win32程式記憶體定址使用的是相對來說比較簡單的平坦定址模式(相應地其採用的PE檔案格式也比以前的16-bit的EXE程式的格式要容易處理一些),並且Win32程式大量呼叫系統提供的API,而Win32平臺上的偵錯程式如SoftICE等恰好有針對API設斷點的強大功能,這些都給跟蹤破解帶來了一定的方便。

相關文章