加密狗的一些介紹

加密狗是目前流行的一種軟件加密工具。它是插在計算機接口上的軟硬件結合的軟件加密產品。通常有USB口和並口兩種,又稱USB加密狗和並口加密狗,目前流行的通常是USB加密狗,並口加密狗在前幾年的時候用得比較多。算法

加密狗內部通常都有幾十到幾十K字節的存儲空間可供讀寫,有的內部還增添了一個單片機。軟件運行時經過向狗發送消息,判斷從接口返回密碼(簡單的就是返回0或1)數據正確與否來檢查加密狗是否存在。此種方式能夠經過直接修改返回值,來達到破解的目的。編程

另外一種能夠在加密狗內寫入一些數據,程序執行時須要從加密狗內讀取數據,這種狀況下,若是隻是簡單的修改返回值,程序是確定不能正常運行的,因此就有了複製加密狗的破解方法。安全

加密狗技術實際上並非很高深的技術,由於主要的加密狗的芯片和內部文件都有專業的黑客及廠家提供,軟件做者通常只是把數據文件用專用軟件寫入狗中,因此不存在技術先進不先進之分。函數

這裏只是簡單的分析了加密狗破解的一些常見思路,對於軟件做者來講,仍是有相應的策略的,這也就是矛與盾的關係,互相促進,互相提升。加密狗的破解大體能夠分爲三種方法,一種是經過硬件克隆或者複製,一種是經過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文件,這時候再運行應用軟件,軟件訪問加密狗的操做就所有會被攔截,攔截程序永遠會返回正確的數據給軟件,從而實現了模擬加密狗的運行。

通過上面的介紹你們能夠基本瞭解到咱們常見的加密狗的基本破解方法,而你們最多見的免加密狗補丁破解則就是屬於第三種破解方式。

而你們購買加密狗常見的兩種所謂有驅加密和無驅加密狗則分別對應第三種dll文件破解和複製狗破解,有驅狗的最大特色就是安裝完程序和必要的驅動(這個是官方驅動)後還須要打一個補丁,這個補丁名字繁多,什麼所謂升級補丁、新版驅動等等,其實都是破解補丁而已,只不過通過了二次加密須要驗證加密狗,固然這也是爲了促進銷售的舉措,實際上那個加密狗只是一個擺設,僅僅驗證補丁的加密而已,因此價格極爲低廉。

無驅加密狗直接可以使用正版程序,廣泛都是和正版一樣加密狗芯的加密狗複製的。雖然平時你們看不出這兩種加密狗有什麼問題,可是注意細節的可能已經看到了,有驅加密狗其實就是無論你軟件發出任何請求,一概返回數字0給軟件,從而達到破解目的,試問,若是軟件開發者使壞恰恰須要返回1的話豈不是形成嚴重錯誤?因此購買結構計算軟件應當以複製狗爲主,除非沒有複製狗提供的才能考慮有驅狗。而僅僅是繪圖軟件施工資料等通常性軟件則不須要如此嚴格,有驅無驅都是同樣使用了,就不必追求過度的完美。

相關文章
相關標籤/搜索