當前流行的一些軟體保護技術

來源:互聯網
上載者:User

當前流行的一些軟體保護技術

  1   序號保護

  數學演算法一項都是密碼加密的核心,但在一般的軟體加密中,它似乎並不太為人們關心,因為大多數時候軟體加密本身實現的都是一種編程的技巧。但近幾年來隨著序號加密程式的普及,數學演算法在軟體加密中的比重似乎是越來越大了。

   看看在網路上大行其道的序號加密的工作原理。當使用者從網路上下載某個shareware——共用軟體後,一般都有使用時間上的限制,當過了共用軟體的 試用期後,你必須到這個軟體的公司去註冊後方能繼續使用。註冊過程一般是使用者把自己的私人資訊(一般主要指名字)連同信用卡號碼告訴給軟體公司,軟體公司會根據使用者的資訊計算出一個序列碼,在使用者得到這個序列碼後,按照註冊需要的步驟在軟體中輸入註冊資訊和註冊碼,其註冊資訊的合法性由軟體驗證通過後,軟 件就會取消掉本身的各種限制,這種加密實現起來比較簡單,不需要額外的成本,使用者購買也非常方便,在互連網上的軟體80%都是以這種方式來保護的。

  軟體驗證序號的合法性過程,其實就是驗證使用者名稱和序號之間的換算關係是否正確的過程。其驗證最基本的有兩種,一種是按使用者輸入的姓名來產生註冊碼,再同使用者輸入的註冊碼比較,公式表示如下:

  序號 = F(使用者名稱)

  但這種方法等於在使用者軟體中再現了軟體公司產生註冊碼的過程,實際上是非常不安全的,不論其換算過程多麼複雜,解密者只需把你的換算過程從程式中提取出來就可以編製一個通用的註冊程式。

  另外一種是通過註冊碼來驗證使用者名稱的正確性,公式表示如下:

  使用者名稱稱 = F逆(序號)(如ACDSEE)

  這其實是軟體公司註冊碼計算過程的反演算法,如果正向演算法與反向演算法不是對稱演算法的話,對於解密者來說,的確有些困難,但這種演算法相當不好設計。

  於是有人考慮到以下的演算法:

  F1(使用者名稱稱) = F2(序號)

   F1、F2是兩種完全不同的的演算法,但使用者名稱通過F1演算法計算出的特徵字等於序號通過F2演算法計算出的特徵字,這種演算法在設計上比較簡單,保密性相對 以上兩種演算法也要好的多。如果能夠把F1、F2演算法設計成無法復原演算法的話,保密性相當的好;可一旦解密者找到其中之一的反演算法的話,這種演算法就不安全了。一元演算法的設計看來再如何努力也很難有太大的突破,那麼二元呢?

  特定值 = F(使用者名稱,序號)

  這個演算法看上去相 當不錯,使用者名稱稱與序號之間的關係不再那麼清晰了,但同時也失去了使用者名稱於序號的一一對應關係,軟體開發人員必須自己維護使用者名稱稱與序號之間的唯一性,但這似乎不是難以辦到的事,建個資料庫就可以了。當然也可以把使用者名稱稱和序號分為幾個部分來構造多元的演算法。

  特定值 = F(使用者名稱1,使用者名稱2,...序號1,序號2...)

  現有的序號密碼編譯演算法大多是軟體開發人員自行設計的,大部分相當簡單。而且有些演算法作者雖然下了很大的功夫,效果卻往往得不到它所希望的結果。

  2   時間限制

  有些程式的試用版每次運行都有時間限制,例如運行10分鐘或20分鐘就停止工作,必須重新運行該程式才能正常工作。這些程式裡面自然有個定時器來統計程式啟動並執行時間。

  這種方法使用的較少。

  3   Key File 保護

   Key File(註冊檔案)是一種利用檔案來註冊軟體的保護方式。Key File一般是一個小檔案,可以是純文字檔案,也可以是包含不可顯示字元的二進位檔案,其內容是一些加密過或未加密的資料,其中可能有使用者名稱、註冊碼等資訊。檔案格式則由軟體作者自己定義。試用版軟體沒有註冊檔案,當使用者向作者付費註冊之後,會收到作者寄來的註冊檔案,其中可能包含使用者的個人資訊。使用者只 要將該檔案放入指定的目錄,就可以讓軟體成為正式版。該檔案一般是放在軟體的安裝目錄中或系統目錄下。軟體每次啟動時,從該檔案中讀取資料,然後利用某種演算法進行處理,根據處理的結果判斷是否為正確的註冊檔案,如果正確則以註冊版模式來運行。

  這種保護方法使用也不多。

  4   CD-check

   即光碟片保護技術。程式在啟動時判斷光碟機中的光碟片上是否存在特定的檔案,如果不存在則認為使用者沒有正版光碟片,拒絕運行。在程式啟動並執行過程當中一般不再檢查光碟片的存在與否。Windows下的具體實現一般是這樣的:先用GetLogicalDriveStrings( )或GetLogicalDrives( )得到系統中安裝的所有磁碟機的列表,然後再用GetDriveType( )檢查每一個磁碟機,如果是光碟機則用CreateFileA( )或FindFirstFileA( )等函數檢查特定的檔案存在與否,並可能進一步地檢查檔案的屬性、大小、內容等。

  5   軟體狗

  軟體狗是一種智 能型加密工具。它是一個安裝在並口、串口等介面上的硬體電路,同時有一套使用於各種語言的介面軟體和工具軟體。當被狗保護的軟體運行時,程式向插在電腦上的軟體狗發出查詢命令,軟體狗迅速計算查詢並給出響應,正確的響應保證軟體繼續運行。如果沒有軟體狗,程式將不能運行,複雜的軟硬體技術結合在一起防止 軟體盜版。真正有商業價值得軟體一般都用軟體狗來保護。

  平時常見的狗主要有“洋狗”(國外狗)和“土狗”(國產狗)。這裡“洋狗”主要 指美國的彩虹和以色列的HASP,“土狗”主要有金天地(現在與美國彩虹合資,叫“彩虹天地”)、深思、尖石。總的說來,“洋狗”在軟體介面、加殼、反跟 蹤等“軟”方面沒有“土狗”好,但在硬體上破解難度非常大;而“土狗”在軟的方面做的很好,但在硬體上不如“洋狗”,稍有單片機功力的人,都可以複製。

  6   磁碟片加密

  通過在磁碟片上格式化一些非標準磁軌,在這些磁軌上寫入一些資料,如軟體的解密密鑰等等。這種磁碟片成為“鑰匙盤”。軟體運行時使用者將磁碟片插入,軟體讀取這些磁軌中的資料,判斷是否合法的“鑰匙盤”。

  磁碟片加密還有其它一些技術,如弱位加密等等。

  隨著近年來磁碟片的沒落,這種方法基本上退出了曆史舞台。

  7   將軟體與機器硬體資訊結合

   使用者得到(買到或從網上下載)軟體後,安裝時軟體從使用者的機器上取得該機器的一些硬體資訊(如硬碟序號、BOIS序號等等),然後把這些資訊和使用者 的序號、使用者名稱等進行計算,從而在一定程度上將軟體和硬體部分綁定。使用者需要把這一序號用Email、電話或郵寄等方法寄給軟體供應商或開發商,軟體 開發商利用註冊機(軟體)產生該軟體的註冊號寄給使用者即可。軟體加密雖然加密強度比硬體方法較弱,但它具有非常廉價的成本、方便的使用方法等優點。非常適合做為採用光碟片(CDROM)等方式發授軟體的加密方案。

  此種密碼編譯演算法的優點

  ·    不同機器註冊碼不同。使用者獲得一個密碼只能在一台機器上註冊使用軟體。不同於目前大多軟體採用的註冊方法,即只要知道註冊碼,可在任何機器上安裝註冊。

  ·    不需要任何硬體或磁碟片

  ·    可以選擇控制軟體運行在什麼機器、運行多長時間或次數等

  ·    可讓軟體在不註冊前的功能為示範軟體,只能運行一段時間或部分功能。註冊後就立即變為正式軟體

  ·    採用特別技術,解密者很難找到產生註冊號碼的規律

  ·    在使用註冊號產生軟體(註冊機)時可採用使用密碼、密鑰盤、總次數限制等方法

  ·    方便易用,價格低廉。

  這種加密還有以下特點

  1、 註冊加密的軟體,只能在一台機器上安裝使用。把軟體拷貝到其它機器上不能運行。

  2、 若使用者想在另一機器上安裝運行,必須把軟體在這一機器上運行時的序號,寄給軟體出版商換取註冊密碼。當然應再交一份軟體費用。

  3、 此加密方法特別適應在網際網路上發布的軟體及用光碟片發布的軟體。

 

  注釋:

  1、“加密技術概述”部分內容參考了大學教材“密碼學基礎”。

  2、“當前流行的一些軟體保護技術”部分內容參考了“加密與解密--軟體保護技術及完全解決方案”一文。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.