超級狗保護(2)


序:本文繼續介紹超級狗的二次開發流程。

1. 特征

"特征"是指程序中可被識別的功能組件,可以是一個可執行文件、軟件模塊、.NET 方法或者打印、保存、繪制等特定功能。特征被分配一個唯一的標識號碼,稱作特征 ID。

使用超級狗許可設計工具可以編輯特征信息。

產品或業務經理需要准備產品計划。產品計划的准備包括以下方面:

  • 確定功能組件

   分析所有應用程序,確定可被指定許可類型的功能組件。

  • 定義軟件產品

   把各功能組件 ( 特征 ) 組合成可銷售的軟件產品。

  • 指定許可類型

   分別對各功能組件 ( 特征 ) 指定許可類型。

 

超級狗提供了以下四種許可類型:

  • 永久:可以永久使用,沒有時間和次數的限制。
  • 執行次數:限制可以使用的最多次數。
  • 過期日期:在過期日期到達之前可以使用。
  • 執行天數:從首次使用開始的一定天數內可以使用。

 

2. 數據文件

數據文件是超級狗中用於存放數據信息的地方,包括只讀類型,讀寫類型和寫一次類型。

通常存儲數據文件的時候建議采用加密的方式存儲。可以使用超級加密狗助手加密數據,然后寫入數據文件中。

3. 編程超級狗

超級狗編程可以采用超級狗編程工具或許可設計工具進行,由於使用套件中不能使用超級狗編程工具,所以我采用的是許可設計工具編程超級狗。

4. 登錄驗證

采用 Licensing API 和程序結合的特征可以加強軟件保護。 Licensing API 的保護我主要采用了登錄驗證和獲取加密的數據兩種保護方式。

在程序執行初始時,通過調用Licensing API 中的dog_login()函數,驗證是否連接了超級狗設備。

C#版登錄方法demo :

其中vendorCodeSafeNet\SuperDog\[version]\VendorCodes中的.hvc文件中獲取。

注:需要同時將api_dsp_windows.dll和api_dsp_windows_x64.dll拷貝到bin目錄下,運行時會根據系統判斷。

5. 獲取參數

軟件運行時的命令行參數可以通過調用Licensing API 中的dog_read()函數讀取超級狗中的數據文件,其中參數需要調用dog_decrypt()函數解密。

C#版獲數據文件方法demo:

 

對於使用命令行運行的軟件,可以把命令行參數編寫到數據文件中,從數據文件中獲取,這樣可以雙擊運行程序,避免輸入的麻煩。

6. 軟件外殼加密

超級狗的外殼加密工具用於實施快速、簡單的軟件保護,無需像使用 Licensing API 函數那樣對源代碼進行改動,就可以自動給可執行應用程序加一個保護層。
外殼保護后,被保護程序在開始運行和運行當中會自動地訪問超級狗是否存在。如果超級狗不存在,應用程序將不能運行。一旦被保護的軟件無法訪問超級狗,被保護的軟件將提示錯誤信息。
外殼加密工具可以保護 Win32、Windows x64、以及 .NET 可執行文件 (EXE) 與動態庫 (DLL)。外殼加密工具可以防止逆向工程和其他調試措施。

可以通過修改保護設置加強保護方式。

7. 許可升級

最后一個問題就涉及到許可的升級,在一定的情況下賦予用戶更多的權限。

步驟:

a. 通過遠程升級界面定制工具,生成RUS程序,提供給最終用戶。

b. 最終用戶使用步驟1提供的RUS程序,生成升級請求c2v文件,並發送給軟件開發商。

c. 軟件開發商使用超級狗許可設計工具,導入請求c2v文件,修改許可信息后,生成許可升級v2c文件,並發送給最終用戶。

d. 最終用戶通過遠程升級工具,應用許可升級文件,完成一次許可升級。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM