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

2021-05-27 15:49:57 字數 3043 閱讀 2463

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

1   序列號保護

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

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

序列號 = 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   將軟體與機器硬體資訊結合

此種加密演算法的優點

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

·    不需要任何硬體或軟盤

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

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

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

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

·    方便易用,**低廉。

這種加密還有以下特點

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

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

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

注釋:1、「加密技術概述」部分內容參考了大學教材「密碼學基礎」。

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

保護腰帶一些方法

脊柱外科學專家告誡人們 久坐傷腰!長期坐位工作,使腰背肌長期處於緊張狀態,從而出現痙攣 缺血 水腫 粘連,腰背肌無力,甚至疼痛。有人測量了一位35歲婦女的腰3 4椎間盤在各種體位下的壓力承擔 躺下時為3.5千克 平方厘公尺 站立時為9.6千克 平方厘公尺 坐位時竟高達15.3千克 平方厘公尺。可見坐...

一些技術書籍

今天下班回來時順便去那個熟悉的舊書攤逛了逛,竟有意外驚喜。之前曾在那裡淘過不少好書,編譯原理 5塊,加密與解密 10塊。比 還便宜不少,而且還是正版書!剛看了看,猛然發現一本好書 資料結構 c 語言描述,近九百頁磚頭般的好書,原價近百塊,老闆開價15塊,大喜,但不能表現出來,還留著砍價的。後來又看上...

nginx一些技術

proxy ignore client abort on autoindex on 開啟目錄瀏覽功能 autoindex localtime on 開啟以伺服器本地時區顯示檔案修改日期 autoindex exact size off 關閉詳細檔案大小統計,讓檔案大小顯示mb,gb單位,預設為b l...