硬件加密鎖,俗程"加密狗",關于加密狗的破解大(dà)緻能夠分為(wèi)三種辦法,一種是通(tōng)過硬件克隆或許仿制(zhì),一種是通(tōng)過SoftICE等Debug東西調試盯梢解密,一種是通(tōng)過編寫阻攔程序修正軟件和(hé)加密狗之間(jiān)的通(tōng)訊。
關于Debug調試破解,因為(wèi)軟件的雜亂度越來(lái)越高(gāo),編譯器(qì)發生(shēng)的代碼也越來(lái)越多(duō),通(tōng)過反彙編等辦法盯梢調式破解的雜亂度現已變得(de)越來(lái)越高(gāo),破解本錢(qián)也越來(lái)越高(gāo),當前現已很(hěn)少(shǎo)有(yǒu)人(rén)情願花(huā)費很(hěn)多(duō)精力進行(xíng)如此雜亂的破解,除非被破解的軟件具有(yǒu)極高(gāo)的價值。
當前加密鎖(加密狗)的解密破解作(zuò)業首要會(huì)集在運用程序與加密動态庫之間(jiān)的通(tōng)訊阻攔。這種辦法本錢(qián)較低(dī),也易于完成,對待以單片機等芯片為(wèi)中心的加密鎖(加密狗)具有(yǒu)不錯的解密作(zuò)用。
硬件克隆仿制(zhì)首要是關于國産芯片的加密狗,因為(wèi)國産加密狗公司一般沒有(yǒu)中心加密芯片的制(zhì)作(zuò)才能,因而有(yǒu)些(xiē)運用了市場(chǎng)上(shàng)通(tōng)用的芯片,破解者分分出芯片電(diàn)路 以及芯片裏寫的內(nèi)容後,就能夠馬上(shàng)仿制(zhì)或克隆一個(gè)完全相同的加密狗。不過國外的加密狗就無法運用這種辦法,國外加密狗硬件運用的是安全性極好的自個(gè)研發開(kāi)發的芯片,一般很(hěn)難進行(xíng)仿制(zhì),并且如今國內(nèi)加密狗也在運用進口的智能卡芯片,因而這種硬件克隆的解密辦法用途越來(lái)越少(shǎo)。
因為(wèi)加密鎖(加密狗)的運用程序接口(API)基本上(shàng)都是揭露的,因而從網上(shàng)能夠很(hěn)簡單下載到加密狗的編程接口API、用戶手冊、和(hé)其它有(yǒu)關材料,還(hái)能夠曉得(de)加密狗技(jì)能的最新進展。
數(shù)據值比較好了解,數(shù)據值是用戶存儲在可(kě)讀寫的單元中的數(shù)據,就和(hé)存儲在硬盤裏相同,用戶能夠運用Read函數(shù)讀出存儲單元裏邊的數(shù)據,也能夠運用Write函數(shù)保管自個(gè)的信息到存儲單元。
計(jì)數(shù)器(qì)是這樣一種單元,軟件開(kāi)發商在其軟件中運用Decrement函數(shù)能夠把其值減一,當計(jì)數(shù)器(qì)和(hé)某種活動的(active)算(suàn)法相關時(shí),計(jì)數(shù)器(qì)為(wèi)零則會(huì)關閉(deactive)這個(gè)算(suàn)法。
算(suàn)法單元較難了解一些(xiē),算(suàn)法(algorithm)是這樣一種技(jì)能,你(nǐ)用Query(queryData)函數(shù)拜訪它,其間(jiān)queryData是查詢 值,上(shàng)述函數(shù)有(yǒu)一個(gè)回來(lái)值,被加密的程序曉得(de)一組這樣的查詢值/回來(lái)值對,在需求加密的當地,用上(shàng)述函數(shù)查看狗的存在和(hé)真僞。關于被指定為(wèi)算(suàn)法的單元,軟 件上(shàng)是無法讀和(hé)修正的,即便你(nǐ)是合法的用戶也是如此,我了解這種技(jì)能除了添加程序雜亂性以外,首要是為(wèi)了抵擋運用模仿器(qì)技(jì)能的破解。
此加密鎖(加密狗)的一切API函數(shù)調用都會(huì)有(yǒu)回來(lái)值,回來(lái)值為(wèi)0的時(shí)分表明(míng)成功。
例如,某個(gè)國內(nèi)聞名的美國加密狗提供商的一款很(hěn)有(yǒu)名的加密狗,其悉數(shù)編程材料就能夠從網上(shàng)獲取到,通(tōng)過對這些(xiē)材料的剖析,咱們曉得(de)這個(gè)加密鎖(加密狗)有(yǒu)64個(gè)內(nèi)存單元,其間(jiān)56個(gè)能夠被用戶運用,這些(xiē)單元中的每一個(gè)都能夠被用為(wèi)三種類型之一:算(suàn)法、數(shù)據值和(hé)計(jì)數(shù)器(qì)。
因而,破解思路就出來(lái)了,即是運用咱們自個(gè)的東西(如VB、VC等)從頭編寫結構一個(gè)和(hé)加密狗API相同的DLL動态庫文件,裏邊也包括Read、 Write等悉數(shù)API中包括的函數(shù),運用的參量及回來(lái)值和(hé)本來(lái)的函數(shù)相同,一切函數(shù)回來(lái)零。然後對Query、Read函數(shù)進行(xíng)處置,回來(lái)運用軟件需求 的數(shù)值即可(kě)。
這個(gè)新的DLL文件編寫成功後,直接替換掉本來(lái)的DLL文件,這時(shí)分再運轉運用軟件,軟件拜訪加密狗的操作(zuò)就悉數(shù)會(huì)被阻攔,阻攔程序永久會(huì)回來(lái)正确的數(shù)據給軟件,然後完成了模仿加密狗的運轉。