當前位置:首頁 » 密碼管理 » 加密狗原理

加密狗原理

發布時間: 2022-10-23 17:14:04

1. U盤加密狗原理是什麼

加密狗是外形酷似U盤的一種硬體設備,正名加密鎖,後來發展成如今的一個軟體保護的通俗行業名詞,"加密狗"是一種插在計算機並行口上的軟硬體結合的加密產品(新型加密狗也有usb口的)。一般都有幾十或幾百位元組的非易失性存儲空間可供讀寫,現在較新的狗內部還包含了單片機。軟體開發者可以通過介面函數和軟體狗進行數據交換(即對軟體狗進行讀寫),來檢查軟體狗是否插在介面上;或者直接用軟體狗附帶的工具加密自己EXE文件(俗稱"包殼")。這樣,軟體開發者可以在軟體中設置多處軟體鎖,利用軟體狗做為鑰匙來打開這些鎖;如果沒插軟體狗或軟體狗不對應,軟體將不能正常執行。
加密狗通過在軟體執行過程中和加密狗交換數據來實現加密的.加密狗內置單片機電路(也稱CPU),使得加密狗具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它為"智能型"加密狗.加密狗內置的單片機里包含有專用於加密的演算法軟體,該軟體被寫入單片機後,就不能再被讀出。這樣,就保證了加密狗硬體不能被復制。同時,加密演算法是不可預知、不可逆的。加密演算法可以把一個數字或字元變換成一個整數,如DogConvert(1)=12345、DogConvert(A)=43565。
加密狗是為軟體開發商提供的一種智能型的軟體保護工具,它包含一個安裝在計算機並行口或 USB 口上的硬體,及一套適用於各種語言的介面軟體和工具軟體。加密狗基於硬體保護技術,其目的是通過對軟體與數據的保護防止知識產權被非法使用。
工作原理
加密狗的工作原理:
加密狗通過在軟體執行過程中和加密狗交換數據來實現加密的.加密狗內置單片機電路(也稱CPU),使得加密狗具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它為"智能型"加密狗.加密狗內置的單片機里包含有專用於加密的演算法軟體,該軟體被寫入單片機後,就不能再被讀出。這樣,就保證了加密狗硬體不能被復制。同時,加密演算法是不可預知、不可逆的。加密演算法可以把一個數字或字元變換成一個整數,如DogConvert(1)=12345、DogConvert(A)=43565。下面,我們舉個例子說明單片機演算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據常量3來得到變數A的值。於是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-12342)。那麼原程序中就不會出現常量3,而取之以DogConvert(1)-12342。這樣,只有軟體編寫者才知道實際調用的常量是3。而如果沒有加密狗,DogConvert函數就不能返回正確結果,結果算式A=Fx(DogConvert(1)-12342)結果也肯定不會正確。這種使盜版用戶得不到軟體使用價值的加密方式,要比一發現非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。此外,加密狗還有讀寫函數可以用作對加密狗內部的存儲器的讀寫。於是我們可以把上算式中的12342也寫到狗的存儲器中去,令A的值完全取決於DogConvert()和DogRead()函數的結果,令解密難上加難。不過,一般說來,加密狗單片機的演算法難度要低於一些公開的加密演算法,如DES等,因為解密者在觸及加密狗的演算法之前要面對許多難關.

2. 加密狗的原理是什麼樣的

加密狗(dongle),經常被認為是硬體保護,它是一個可被附加在計算機並口、串口或USB上的小插件,它包含廠家燒制的EPROM和定製的專用集成電路。dongle保護的的原理就是軟體開發者在程序里經常檢查dongle中的單元(Cell)的並對比返回值,這種檢查可以是直接讀單元或者是使用某種內部演算法(此時單元受到保護無法直接讀)。
參考資料:http://www.isip.cn/IsipView/2005-7-19/Html_View_900.Htm#

3. 軟體加密狗的工作原理

軟體加密狗的工作原理:
我們舉個例子說明單片機演算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據常量3來得到變數A的值。於是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-12342)。那麼原程序中就不會出現常量3,而取之以DogConvert(1)-12342。這樣,只有軟體編寫者才知道實際調用的常量是3。而如果沒有軟體加密狗,DogConvert函數就不能返回正確結果,結果算式A=Fx(DogConvert(1)-12342)結果也肯定不會正確。這種使盜版用戶得不到軟體使用價值的加密方式,要比一發現非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。此外,軟體加密狗還有讀寫函數可以用作對軟體加密狗內部的存儲器的讀寫。於是我們可以把上算式中的12342也寫到軟體加密狗的存儲器中去,令A的值完全取決於DogConvert()和DogRead()函數的結果,令解密難上加難。不過,一般說來,軟體加密狗單片機的演算法難度要低於一些公開的加密演算法,如DES等,因為解密者在觸及軟體加密狗的演算法之前要面對許多難關。

4. 加密狗原理詳解

加密狗通過在軟體執行過程中和加密狗交換數據來實現加密的.加密狗內置單片機電路(也稱CPU),使得加密狗具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它為"智能型"加密狗.加密狗內置的單片機里包含有專用於加密的演算法軟體,該軟體被寫入單片機後,就不能再被讀出。這樣,就保證了加密狗硬體不能被復制。同時,加密演算法是不可預知、不可逆的。加密演算法可以把一個數字或字元變換成一個整數,如DogConvert(1)=12345、DogConvert(A)=43565。下面,我們舉個例子說明單片機演算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據常量3來得到變數A的值。於是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-12342)。那麼原程序中就不會出現常量3,而取之以DogConvert(1)-12342。這樣,只有軟體編寫者才知道實際調用的常量是3。而如果沒有加密狗,DogConvert函數就不能返回正確結果,結果算式A=Fx(DogConvert(1)-12342)結果也肯定不會正確。這種使盜版用戶得不到軟體使用價值的加密方式,要比一發現非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。此外,加密狗還有讀寫函數可以用作對加密狗內部的存儲器的讀寫。於是我們可以把上算式中的12342也寫到狗的存儲器中去,令A的值完全取決於DogConvert()和DogRead()函數的結果,令解密難上加難。不過,一般說來,加密狗單片機的演算法難度要低於一些公開的加密演算法,如DES等,因為解密者在觸及加密狗的演算法之前要面對許多難關

5. 加密狗破解原理是什麼

硬體加密鎖,俗程「加密狗」,對於加密狗的破解大致可以分為三種方法,一種是通過硬體克隆或者復制,一種是通過SoftICE等Debug工具調試跟蹤解密,一種是通過編寫攔截程序修改軟體和加密狗之間的通訊。

硬體克隆復制主要是針對國產晶元的加密狗,因為國產加密狗公司一般沒有核心加密晶元的製造能力,因此有些使用了市場上通用的晶元,破解者分析出晶元電路 以及晶元里寫的內容後,就可以立刻復制或克隆一個完全相同的加密狗。不過國外的加密狗就無法使用這種方法,國外加密狗硬體使用的是安全性很好的自己研製開 發的晶元,通常很難進行復制,而且現在國內加密狗也在使用進口的智能卡晶元,因此這種硬體克隆的解密方法用處越來越少。

對於Debug調試破解,由於軟體的復雜度越來越高,編譯器產生的代碼也越來越多,通過反匯編等方法跟蹤調式破解的復雜度已經變得越來越高,破解成本也越來越高,目前已經很少有人願意花費大量精力進行如此復雜的破解,除非被破解的軟體具有極高的價值。

目前加密鎖(加密狗)的解密破解工作主要集中在應用程序與加密動態庫之間的通訊攔截。這種方法成本較低,也易於實現,對待以單片機等晶元為核心的加密鎖(加密狗)具有不錯的解密效果。

由於加密鎖(加密狗)的應用程序介面(API)基本上都是公開的,因此從網上可以很容易下載到加密狗的編程介面API、用戶手冊、和其它相關資料,還可以了解加密狗技術的最新進展。

例如,某個國內知名的美國加密狗提供商的一款很有名的加密狗,其全部編程資料就可以從網上獲取到,經過對這些資料的分析,我們知道這個加密鎖(加密狗)有64個內存單元,其中56個可以被用戶使用,這些單元中的每一個都可以被用為三種類型之一:演算法、數據值和計數器。

數據值比較好理解,數據值是用戶存儲在可讀寫的單元中的數據,就和存儲在硬碟里一樣,用戶可以使用Read函數讀出存儲單元裡面的數據,也可以使用Write函數保存自己的信息到存儲單元。

計數器是這樣一種單元,軟體開發商在其軟體中使用Decrement函數可以把其值減一,當計數器和某種活動的(active)演算法關聯時,計數器為零則會封閉(deactive)這個演算法。

演算法單元較難理解一些,演算法(algorithm)是這樣一種技術,你用Query(queryData)函數訪問它,其中queryData是查詢 值,上述函數有一個返回值,被加密的程序知道一組這樣的查詢值/返回值對,在需要加密的地方,用上述函數檢查狗的存在和真偽。對於被指定為演算法的單元,軟 件上是無法讀和修改的,即使你是合法的用戶也是如此,我理解這種技術除了增加程序復雜性以外,主要是為了對付使用模擬器技術的破解。

此加密鎖(加密狗)的所有API函數調用都會有返回值,返回值為0的時候表示成功。

因此,破解思路就出來了,就是使用我們自己的工具(如VB、VC等)重新編寫構造一個和加密狗API一樣的DLL動態庫文件,裡面也包含Read、 Write等全部API中包含的函數,使用的參量及返回值和原來的函數一樣,所有函數返回零。然後對Query、Read函數進行處理,返回應用軟體需要 的數值即可。

這個新的DLL文件編寫成功後,直接替換掉原來的DLL文件,這時候再運行應用軟體,軟體訪問加密狗的操作就全部會被攔截,攔截程序永遠會返回正確的數據給軟體,從而實現了模擬加密狗的運行。

6. 誰知道加密狗的工作原理,還有就是有幾種類型的

簡單來講就是講軟體里寫入加密鎖的「一段代碼」使用「鉤子」的方式調用加密鎖,如果檢測不到,那就不能安裝或者不能打開,或者限制裡面的功能。
現在加密鎖分為普通晶元的和智能晶元的,以及時鍾、網路等加密授權方式。

7. 加密狗的原理是什麼

加密狗通過在軟體執行過程中和加密狗交換數據來實現加密的。

加密狗內置單片機電路(也稱CPU),使得加密狗具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它為"智能型"加密狗。

加密狗內置的單片機里包含有專用於加密的演算法軟體,該軟體被寫入單片機後,就不能再被讀出。這樣,就保證了加密狗硬體不能被復制。同時,加密演算法是不可預知、不可逆的。

加密狗也叫加密鎖,是一種插在計算機並行口上的軟硬體結合的加密產品(新型加密鎖也有usb口的)。加密狗是為軟體開發商提供的一種智能型的具有軟體保護功能的工具,它包含一個安裝在計算機並行口或 USB 口上的硬體,及一套適用於各種語言的介面軟體和工具軟體。

加密狗基於硬體保護技術,其目的是通過對軟體與數據的保護防止知識產權被非法使用。

8. 加密鎖和加密狗有區別嗎 誰能詳細介紹一下他們的相關信息

一、加密狗加密的基本原理
開發商程序通過調用硬體加密狗的介面模塊對硬體加密狗操作,硬體加密狗響應該操作並通過介面模塊將相應數據返回給開發商的應用程序。開發商的應用程序可以對返回值進行判定並採取相應的動作。如果返回無效的響應,表明沒有正確的狗,開發商可以將應用程序終止運行,或者讓應用程序以錯誤的方式執行。

二、常用的解密方法
1、反匯編後靜態分析: W32Dasm、IDA Pro

2、用調試工具跟蹤動態分析:SoftICE、TRW2000

3、針對各種語言的反匯編工具:VB、Delphi、Java等

4、其他監視工具:FileMon、RegMon 等

三、如何提高加密強度
下面,我們以Sentinel SuperPro加密鎖為例,詳細介紹一下使用如何在編程的過程中提高加密強度的方法。

1、反DEBUG解密的編程方法和技巧
訪問狗之後不要立即做判斷,判斷狗不正確後,不要立即提示,或者不提示。開發商在程序各個部分插入校驗演算法的代碼,用以增加程序代碼的復雜性,防止解密者輕易跟蹤發現全部的校驗代碼。校驗代碼插入程序的頻率越高,破解難度越大,軟體就越安全。

重要的字元串不要在程序中以明文出現,應該使用演算法動態生成。

在不影響程序效率的情況下,盡量多寫一些查狗的函數,彼此要有區別,使用不同的演算法,多一些查狗出錯的標志,讓這些標志參與運算,在不同的模塊中,使用不同的查狗函數。

針對某一具體查詢校驗,都有三步驟組成:查詢得到響應串;比較響應串和查詢串是否匹配;根據校驗結果執行相應的步驟。建議三個步驟要延時執行。最好將三步驟相互遠離些,甚至放到不同的子程序或函數中。例如:執行「查詢得到響應串」後,相隔50行執行「比較響應串和查詢串是否匹配」,假如程序需要調用一個函數。那麼就在這個函數里執行「執行相應的步驟」。解密者在跟蹤過程中,即使發現了其中一部分程序代碼,但很難發現另外兩部分代碼和全部三部分之間的關聯。程序難於被破解。

將加密鎖返回的「響應串」作為程序中的參數使用。例如:演算法單元返回「響應串」是「87611123」,而程序中需要使用「123」這個參數。程序中得到「響應串」後,將「響應串」減去「87611000」得到參數。如果解密者修改代碼跳過查詢校驗加密鎖部分,參數將是錯誤值,從而會使程序運行紊亂。

程序在驗證加密演算法過程中,一般情況下驗證數據不正確程序就會選擇退出。這樣一來很容易被解密者發現代碼特徵,跳過查詢校驗部分。開發商設計查詢校驗部分時,如果程序校驗數據不正確,程序也不退出可以繼續執行一些無用的操作使程序紊亂,用以隱蔽代碼迷惑解密者。

開發商的軟體可能有多個模塊,查狗的模塊或介面不要用顯而易見的名字來命名,這樣會令解密者更容易找到加密點,當然也可以利用一些名字來迷惑解密者,尤其是dll,引出函數時甚至可以不用函數名。

給查狗函數加入一定的隨機性,例如,隨機地執行某一API函數,或者在狗的存儲區中劃定一小塊區域作隨機讀寫,讀寫地址、讀寫內容、讀寫長度都是隨機取的,這樣可以很好地防止那些模擬工具。

試用版與正式版要分開,試用版不提供的功能,代碼已經刪掉,使得不可能利用試用版破解得到正式版。

在大多數情況下,破解是通過更改exe 或 dll 文件實現的,要在程序中檢查exe或dll文件的完整性,即利用某種演算法計算出整個文件的校驗和,在程序中比較,如果文件被更改,校驗和就會變化,這類演算法網上有很多,可以查得到。另外,exe和dll之間要相互認證,一方面防止dll被替換,另一方面防止非法exe訪問dll。

小結:應該盡量避免的問題

1)訪問狗、做判斷、提示用戶寫在一起

2)重要的字元串在程序中以明文出現

3)在狗中存放字元串,程序中讀出比較

4)調用同一函數或判斷同一個全局標志查狗

5)試用版軟體同正式版軟體是同一份

6)查狗的模塊或介面名字太明顯

7)程序無隨機性,每次運行執行路徑都一樣

8)沒有檢查exe 或 dll 文件的完整性,exe 和 dll 之間也沒有相互認證

2、反「監聽模擬」軟體保護鎖的編程方法
1)隨機查詢法:開發商使用SuperPro開發工具生成大量查詢、響應對,如:1000 對,並在程序中使用這些校驗數據。在程序運行過程中,從1000 對查詢、響應對之中,隨機的抽出其中一對驗證SuperPro加密演算法。因為,校驗數據很多,每次驗證加密演算法使用的「查詢響應對」可能不同,「監聽模擬」軟體即使紀錄了一部分「查詢響應對」,但無法紀錄全部「查詢響應對」。軟體每次運行時,都可能使用新的查詢響應校驗數據,「監聽模擬」軟體無法響應這些新的查詢。因此,「監聽模擬」也就失去了模擬、模擬SuperPro軟體保護鎖的作用。

2)延時法:開發商可以事先使用開發工具生成大量的校驗數據,即:「查詢、響應」對,比如:200000 組「查詢、響應」對,開發程序過程中,開發商設計定時查詢、校驗加密鎖的機制。在程序運行過程中,每10分鍾查詢並校驗加密鎖一次,使用過的校驗數據,4年內不再重復使用。即使監聽軟體24小時記錄數據,也需要4年才能紀錄完畢。4年後,軟體早已過了「熱賣期」了,使用監聽軟體的解密者也就失去了行動意義。

3)分組、分時法:開發商可以在程序中把查詢響應對分組,比如:1200 對校驗數據可分為12組,每100對一組。程序在一年中的第一月使用第一組校驗數據,第二月使用第二組校驗數據,以此類推。監聽軟體就算記錄了第一月的校驗數據,第二個三個月以後校驗數據沒有紀錄,在以後的時間段軟體仍然無法正常使用,從而「監聽模擬」失去意義。

4)隨機雜訊數據法:開發商可以在程序中隨機產生查詢數據,隨機數據和真實數據混合在一起,監聽軟體即使記錄了查詢數據,也會被其隨機性所迷惑,同時也無法模擬另一個次軟體運行產生的隨機數,加密軟體也就無法破解。

9. 怎麼使用加密狗

加密狗的使用分為二種:

1、加密保護自己的軟體:利用加密狗提供的開發套件,以及操作文檔,對自己的軟體進行加密,當然加密狗供應商,會提供技術支持,通用的加密狗,使用起來也一定是簡單方便的。

2、使用代加密狗的軟體,自動安裝就可以使用,安裝軟體的同時,就會將相應加密狗驅動安裝到電腦中,注意一般是安裝驅動後,再插入加密狗好些,幾乎不用管它就可以使用軟體了。

10. 加密狗是什麼原理如何實現的通訊

加密就是密碼里有密碼,記住密碼就可以了

熱點內容
存儲伺服器分類 發布:2025-05-14 08:39:01 瀏覽:645
xz文件解壓軟體 發布:2025-05-14 08:28:43 瀏覽:969
lua腳本學習 發布:2025-05-14 08:20:55 瀏覽:713
python文件刪除一行 發布:2025-05-14 08:06:58 瀏覽:721
如何下載奧特曼高級化3安卓版 發布:2025-05-14 07:47:31 瀏覽:346
qml文件修改後編譯未生效 發布:2025-05-14 07:31:00 瀏覽:331
內到內演算法 發布:2025-05-14 07:29:11 瀏覽:34
文件夾名字不顯示 發布:2025-05-14 07:27:47 瀏覽:775
oracle的資料庫驅動jar 發布:2025-05-14 07:23:20 瀏覽:556
我的世界電腦版伺服器手機版能進嗎 發布:2025-05-14 07:22:01 瀏覽:680