軟件加密鎖的編程技巧是很多業內人士所熟知的,以及軟件開發者將如何編寫安全可靠的代碼,如何對付各種各樣的加密狗破解,編寫加密程序時應該盡量避免的一些問題等等。開發商程序通過調用硬件加密狗的接口模塊對硬件加密狗操作,硬件加密狗響應該操作并通過接口模塊將相應數據返回給開發商的應用程序。開發商的應用程序可以對返回值進行判定并采取相應的動作。如果返回無效的響應,表明沒有正確的狗,開發商可以將應用程序終止運行,或者讓應用程序以錯誤的方式執行。常用的解密方法有反匯編后靜態分析: W32Dasm、IDA Pro;用調試工具跟蹤動態分析:SoftICE、TRW2000;針對各種語言的反匯編工具:VB、Delphi、Java等;其他監視工具:FileMon、RegMon 等;破解方法就是使用我們自己的工具(如VB、VC等)重新編寫構造一個和加密狗API一樣的DLL動態庫文件,里面也包含Read、Write等全部API中包含的函數,使用的參量及返回值和原來的函數一樣,所有函數返回零。然后對Query、Read函數進行處理,返回應用軟件需要的數值即可。這個新的DLL文件編寫成功后,直接替換掉原來的DLL文件,這時候再運行應用軟件,軟件訪問加密狗的操作就全部會被攔截,攔截程序永遠會返回正確的數據給軟件,從而實現了模擬加密狗的運行。
|