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文件,這時候再運行應用軟體,軟體訪問加密狗的操作就全部會被攔截,攔截程序永遠會返回正確的數據給軟體,從而實現了模擬加密狗的運行。
以上是目前破解軟體加密狗(加密鎖)的一些常見思路,對於這種破解,軟體開發者還是有相應的一些對策的,下一回我將在《軟體加密鎖編程技巧》一文中具體介紹一下軟體開發者將如何編寫安全可靠的代碼,使得這種類似的破解方法失效。
2. 軟體的加密狗怎麼破解
加密狗怎麼破解狗是什麼?狗是一種智能型計算機軟體加密工具。它有一個安裝在微機後部的並行口上的硬體電路,同時有一套適用於各種語言的介面軟體和工具軟體。 當被狗保護的軟體運行時,程序向插在計算機上的軟體保護鎖發出查詢命令。軟體保護鎖迅速計算查詢並給出響應。正確的響應保證軟體繼續運行。如果軟體保護鎖被拔掉,程序將不能運行。復雜的軟硬體技術結合在一起以防止非法發布和使用。採用狗保護軟體只能在指定的裝有狗的微機才能運行,使用時很不方便,如果不小心狗損壞,軟體就不能運行,真是欲除而後快!
目前市面常見的狗技術有聖天諾(Sentinel)和HASP等。現在狗的技術發展很快,針對不同的應用場合有不同的類型,如:
強勁狗: 自由定義演算法的高強度加密方案
微狗: 面向單機環境的高強度加密方案
USB狗:USB介面的微狗全兼容產品
軟體狗: 面向單機環境的低成本加密方案
網路狗: 面向網路環境的加密方案
卡式狗: 面向網路環境的加密方案
現在的狗一般採取了各種的加密技術,目前較先進的加密技術有如下幾種:
①AS技術: API函數調用與SHELL外殼加密結合,即使外殼被破壞,加密程序依然不能正常運行。
②反跟蹤:
1.數據交換隨機雜訊技術:有效地對抗邏輯分析儀分析及各種調試工具的攻擊。
2.迷宮技術:在程序入口和出口之間包含大量判斷跳轉干擾,動態改變執行次序,提升狗的抗跟蹤能力。
③抗共享: 可從硬體對抗並口共享器,由開發商選擇是否共享狗。
④口令: 可由軟體開發商設置32位口令,口令錯誤將不能對存儲區進行讀寫。
⑤時間閘: 某些狗內部設有時間閘,各種操作必須在規定的時間內完成。狗正常操作用時很短,但跟蹤時用時較長,超過規定時間狗將返回錯誤結果。
⑥單片機: 硬體內置單片機,固化的單片機軟體保證外部不可讀,從而保證狗不可仿製。
⑦存儲器: 提供200位元組掉電保持存儲器供開發商存放關鍵數據、配置參數等信息。
1、普通的狗一般是通過讀取I/O埠的狗來進行驗證的,因此可用SOFTICE或其它調試工具來監視I/O埠。一般常用的指令:
BPIO -h 278 R
BPIO -h 378 R
2、要注意的是,用上面2中所提的方法只能對付一般的應用程序,也就是等級為3 的普通程序,這些程序屬於直接讀取狗的那一類,基本上使用像 SOFTICE 之類的調試工具就可以輕易的解開了,現在世面 上有不少使用 VxD 來讀取狗的程序,VxD 屬於等級 0 ,也就是最高等級,理論上是不可能攔截得了的,這也是為什麼有許多廠商要使用 .VxD 來讀狗的原因。
3、其它常用函數斷點
CreateFileA (讀狗驅動程序), DeviceIOControl, FreeEnvironmentStringsA (對付HASP非常有效). Prestochangoselector (16-bit HASP』s), 』7242』 查找字元串 (對付聖天諾).
3. USB類型的加密狗怎麼破解
1,通過硬體托殼,對他進行硬體復制,找一個一樣的加密狗,破解掉他的加密號就可以了
2,通道攔截,加密狗與軟體之間的傳輸數據給截取掉,剔除,反饋值你自己搞就行了
4. 軟體加密狗(鎖)破解原理和方法,高手如何破解軟體加密狗
目前軟體加密狗(加密鎖)的解密破解工作主要集中在應用程序與加密動態庫之間的通訊攔截。這種軟體加密狗破解方法成本較低,也易於實現,對待以單片機等晶元為核心的軟體加密狗(加密鎖)具有不錯的解密破解效果。 由於軟體加密狗(加密鎖)的應用程序介面(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文件,這時候再運行軟體加密狗破解軟體,軟體訪問軟體加密狗的操作就全部會被攔截,攔截程序永遠會返回正確的數據給軟體加密狗破解軟體,從而實現了模擬軟體加密狗的運行。