加密狗複制(zhì)

怎樣破解或複制(zhì)USB加密狗?

電(diàn)腦(nǎo)狗,即加密狗,現在所說的加密狗,一般都是硬件加密狗。是一種類似于u盤一樣的東西,是一種防盜版的方式。一般是把程序的一小(xiǎo)部分或解密部分集合到加密狗的硬件中,防止軟件的盜版。

 

加密狗(dongle),經常被認為(wèi)是硬件保護,它是一個(gè)可(kě)被附加在計(jì)算(suàn)機并口、串口或USB上(shàng)的小(xiǎo)插件,它包含廠家(jiā)燒制(zhì)的EPROM和(hé)定制(zhì)的專用集成電(diàn)路。dongle保護的的原理(lǐ)就是軟件開(kāi)發者在程序裏經常檢查dongle中的單元(Cell)的并對比返回值,這種檢查可(kě)以是直接讀單元或者是使用某種內(nèi)部算(suàn)法(此時(shí)單元受到保護無法直接讀)。

 

既然破解不行(xíng)我就說說複制(zhì)

 

由于加密鎖(加密狗)的應用程序接口(API)基本上(shàng)都是公開(kāi)的,因此從網上(shàng)可(kě)以很(hěn)容易下載到加密狗的編程接口API、用戶手冊、和(hé)其它相關資料,還(hái)可(kě)以了解加密狗技(jì)術(shù)的最新進展。

 

例如,某個(gè)國內(nèi)知名的美國加密狗提供商的一款很(hěn)有(yǒu)名的加密狗,其全部編程資料就可(kě)以從網上(shàng)獲取到,經過對這些(xiē)資料的分析,我們知道(dào)這個(gè)加密鎖(加密狗)有(yǒu)64個(gè)內(nèi)存單元,其中56個(gè)可(kě)以被用戶使用,這些(xiē)單元中的每一個(gè)都可(kě)以被用為(wèi)三種類型之一:算(suàn)法、數(shù)據值和(hé)計(jì)數(shù)器(qì)。

 

數(shù)據值比較好理(lǐ)解,數(shù)據值是用戶存儲在可(kě)讀寫的單元中的數(shù)據,就和(hé)存儲在硬盤裏一樣,用戶可(kě)以使用Read函數(shù)讀出存儲單元裏面的數(shù)據,也可(kě)以使用Write函數(shù)保存自己的信息到存儲單元。

 

計(jì)數(shù)器(qì)是這樣一種單元,軟件開(kāi)發商在其軟件中使用Decrement函數(shù)可(kě)以把其值減一,當計(jì)數(shù)器(qì)和(hé)某種活動的(active)算(suàn)法關聯時(shí),計(jì)數(shù)器(qì)為(wèi)零則會(huì)封閉(deactive)這個(gè)算(suàn)法。

 

算(suàn)法單元較難理(lǐ)解一些(xiē),算(suàn)法(algorithm)是這樣一種技(jì)術(shù),你(nǐ)用QueryqueryData)函數(shù)訪問它,其中queryData是查詢值,上(shàng)述函數(shù)有(yǒu)一個(gè)返回值,被加密的程序知道(dào)一組這樣的查詢值/返回值對,在需要加密的地方,用上(shàng)述函數(shù)檢查狗的存在和(hé)真僞。對于被指定為(wèi)算(suàn)法的單元,軟件上(shàng)是無法讀和(hé)修改的,即使你(nǐ)是合法的用戶也是如此,我理(lǐ)解這種技(jì)術(shù)除了增加程序複雜性以外,主要是為(wèi)了對付使用模拟器(qì)技(jì)術(shù)的破解。

 

此加密鎖(加密狗)的所有(yǒu)API函數(shù)調用都會(huì)有(yǒu)返回值,返回值為(wèi)0的時(shí)候表示成功。

 

因此,破解思路就出來(lái)了,就是使用我們自己的工具(如VBVC等)重新編寫構造一個(gè)和(hé)加密狗API一樣的DLL動态庫文件,裏面也包含ReadWrite等全部API中包含的函數(shù),使用的參量及返回值和(hé)原來(lái)的函數(shù)一樣,所有(yǒu)函數(shù)返回零。然後對QueryRead函數(shù)進行(xíng)處理(lǐ),返回應用軟件需要的數(shù)值即可(kě)。

 

這個(gè)新的DLL文件編寫成功後,直接替換掉原來(lái)的DLL文件,這時(shí)候再運行(xíng)應用軟件,軟件訪問加密狗的操作(zuò)就全部會(huì)被攔截,攔截程序永遠會(huì)返回正确的數(shù)據給軟件,從而實現了模拟加密狗的運行(xíng)。

 

以上(shàng)是目前破解複制(zhì)軟件加密狗(加密鎖)的一些(xiē)常見思路。

 

 




首頁

電(diàn)話(huà)

地址

到底了~