<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 軟件加密狗破解思路和方法

軟件加密狗破解思路和方法

——
作者: 時(shí)間:2007-05-08 來(lái)源: 收藏

  本文介紹的是軟件破解的一般思路和方法。其實(shí)做為軟件開(kāi)發(fā)者,研究好軟件加密的確很重要,不過(guò)也很有必要多了解一些關(guān)于解密和破解的知識,加密和破解就像矛和盾一樣,對于解密知識了解的越多,那么編寫(xiě)的加密代碼就越好,要知道加密永遠都比解密要容易的多,只有知己知彼,方能百戰百勝。

  硬件加密鎖,俗程“”,對于加密狗的破解大致可以分為三種方法,一種是通過(guò)硬件克隆或者復制,一種是通過(guò)SoftICE等Debug工具調試跟蹤解密,一種是通過(guò)編寫(xiě)攔截程序修改軟件和加密狗之間的通訊。

  硬件克隆復制主要是針對國產(chǎn)芯片的加密狗,因為國產(chǎn)加密狗公司一般沒(méi)有核心加密芯片的制造能力,因此有些使用了市場(chǎng)上通用的芯片,破解者分析出芯片電路以及芯片里寫(xiě)的內容后,就可以立刻復制或克隆一個(gè)完全相同的加密狗。不過(guò)國外的加密狗就無(wú)法使用這種方法,國外加密狗硬件使用的是安全性很好的自己研制開(kāi)發(fā)的芯片,通常很難進(jìn)行復制,而且現在國內加密狗也在使用進(jìn)口的智能卡芯片,因此這種硬件克隆的解密方法用處越來(lái)越少。

  對于Debug調試破解,由于軟件的復雜度越來(lái)越高,編譯器產(chǎn)生的代碼也越來(lái)越多,通過(guò)反匯編等方法跟蹤調式破解的復雜度已經(jīng)變得越來(lái)越高,破解成本也越來(lái)越高,目前已經(jīng)很少有人愿意花費大量精力進(jìn)行如此復雜的破解,除非被破解的軟件具有極高的價(jià)值。

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

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

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

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

  計數器是這樣一種單元,軟件開(kāi)發(fā)商在其軟件中使用Decrement函數可以把其值減一,當計數器和某種活動(dòng)的(active)算法關(guān)聯(lián)時(shí),計數器為零則會(huì )封閉(deactive)這個(gè)算法。

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

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

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

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

  以上是目前破解軟件加密狗(加密鎖)的一些常見(jiàn)思路,對于這種破解,軟件開(kāi)發(fā)者還是有相應的一些對策的。

塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理


關(guān)鍵詞: 加密狗

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>