一種嵌入式設備程序的防拷貝方法
【技術領域】
[0001]本發明涉及一種嵌入式設備程序的防拷貝方法,屬于嵌入式設備技術領域。
【背景技術】
[0002]嵌入式系統程序采用定制方法寫入裝置,用于控制、監視裝置、工廠等大規模的系統中,隨著其應用領域的擴展,其盜版風險也隨之增大,有必要提供一種嵌入式程序防拷貝的方法來防范這種風險。而目前有授權保護的程序運行流程如圖1所示,設備授權有效性計算程序識別ID和License信息,確認后即可運行程序。ID和License信息一般存儲在只讀存儲器上,出廠時即被寫入,受硬件限制比較大,而且加授權保護雖然可以有效控制非法拷貝,但是授權的License信息容易被破解,存在的眾多黑客工具支持ID運算為License信息。因此有必要提供一種有效方式對ID和License進行保護,提高程序的防拷貝能力,進而減少盜版風險。
[0003]例如CN201110389076.4公開了一種基于進程線程的防拷貝系統和防拷貝存儲介質,通過在防拷貝存儲介質中設置防拷貝引導模塊、防拷貝核心模塊和防拷貝卷加載解密模塊,通過三個模塊的配合操作,保證防拷貝信息在任何狀況下無法被非法拷貝;將信息安全防拷貝技術的基本單元鎖定為操作系統中當前存在的基本執行單元一進程和線程,結合相應的防拷貝存儲介質技術,防拷貝可移動存儲介質數據結構如圖2所示,以此展開所有的安全防線,從而達到保護用戶的數據和媒體資產不被非法拷貝、復制和盜版的目的。將用戶需要版權保護和內容保護的文檔和數據經過加密、以亂序的方式保存在防拷貝存儲介質中,存儲介質的產品唯一性信息和用戶密碼作為打開防拷貝卷的鑰匙,而密匙的編碼規則在代碼中受進程和線程的監視。因此這種通過機制的方式進行程序的保護,算法復雜,且為了考慮防拷貝,在進程和線程中增加了防拷貝機制,實現過程繁瑣。
【發明內容】
[0004]本發明的目的是提供一種嵌入式設備程序的防拷貝方法,以實現對設備授權程序的多重保護。
[0005]本發明為實現上述目的提供了一種嵌入式設備程序的防拷貝方法,該防拷貝方法包括以下步驟:
[0006]I)將嵌入式設備ID和License信息存儲在隱藏區域;
[0007]2)判斷嵌入式設備程序的授權狀態,在嵌入式設備程序授權后從隱藏區域讀取設備ID信息至IJ RAM區域;
[0008]3)根據讀取設備ID信息和授權算法計算出License信息;
[0009]4)將計算出的License信息和隱藏區域的License信息比對,若兩者相同,則程序進入運行狀態,否則,需進行授權請求。
[0010]所述設備ID和License信息所存儲的隱藏區域僅授權程序可以訪問。
[0011]所述設備ID信息在RAM中的偏移地址是隨機的,且具有唯一性。
[0012]所述RAM中設備ID和License信息存放程序位置掉電不保存,無法復制。
[0013]所述設備ID和License信息存儲在隱藏區域的路徑在程序寫入ID時確定,程序記憶的是其相對路徑。
[0014]所述ID信息讀取到RAM區域時,其偏移量隨著RAM的實際工作情況而定,其偏移量對程序開放,程序可根據偏移量讀取RAM中的ID信息。
[0015]所述步驟2)中是通過設備程序的授權標志位來判斷設備程序是否處于授權狀
??τ O
[0016]本發明的有益效果是:本發明首先將嵌入式設備ID和License信息存儲在隱藏區域,在設備程序授權后從隱藏區域讀取設備ID信息到RAM區域,然后根據讀取設備ID信息和授權算法計算出License信息,最后將計算出的License信息和隱藏區域的License信息比對,若兩者相同,則程序進入運行狀態,否則,需進行授權請求。本發明將ID和License存儲在隱藏區域,對其進行技術保護,再通過ID和License對程序進行授權管理,即使盜取了程序,由于沒有密碼無法訪問隱藏區域,也無法實現數據拷貝,進而實現對程序的保護。該方法簡單易行,無需算法復雜的加解密,也無需在進程和線程中增加防拷貝機制,只需通過對ID和License信息的存儲機制進行處理即可實現對授權過程進行有效保護。
【附圖說明】
[0017]圖1是目前有授權保護的程序運行流程圖;
[0018]圖2是現有技術中防拷貝可移動存儲介質數據結構圖;
[0019]圖3是本發明防拷貝授權流程圖;
[0020]圖4是本發明實施例中ID與License信息存儲位置示意圖。
【具體實施方式】
[0021]下面結合附圖對本發明的【具體實施方式】做進一步的說明。
[0022]本發明所提出的嵌入式設備程序的防拷貝方法將ID和License信息存儲在隱藏區域,對其進行保護,在設備程序授權確認后進入隱藏區域,讀取設備ID到RAM區域,在RAM區域中,結合ID偏移信息和授權算法計算License,最后將計算出的License與隱藏區域的License進行比較,僅在兩者一致時,程序才進入運行狀態。
[0023]下面以某一嵌入式設備程序為例進行說明,該嵌入式設備程序的授權標識位為0X00時為未授權狀態,為0X01時為授權狀態;設備程序標識如ID = 97 (實際工作中由授權服務器隨機生成);對應的授權碼為abcdef,存放在隱藏區;RAM的存儲容量為16KX8位,如圖4所示。該嵌入式設備程序防拷貝的過程如圖3所示,具體實施過程如下:
[0024]1.將嵌入式設備ID和License信息存儲在隱藏區域。
[0025]設備ID和License信息存儲在隱藏區域的路徑在程序寫入ID時確定,程序記憶的是其相對路徑。設備ID和License信息所存儲的隱藏區域僅授權程序可以訪問,隱藏區域不限于內存、硬盤等存儲介質。
[0026]2.判斷設備程序的授權狀態,在設備程序授權后從隱藏區域讀取設備ID信息到RAM區域。
[0027]該過程通過查看設備程序授權標志位來判斷設備是否處于授權狀態,本實施例中設備程序的授權標識位為0X00時為未授權狀態,為0X01時為授權狀態,當授權標識位為0X00時,進行授權請求,當授權標識位為0X01時,讀取該設備ID信息到RAM區域。
[0028]ID在RAM中的偏移地址是隨機,具有唯一性,ID讀取到RAM區域時,其偏移量隨著RAM的實際工作情況而不定,其偏移量對程序開放,程序根據偏移量讀取RAM中ID信息。本實施例中根據寫入ID時的相對路徑,從隱藏區域讀取ID = 97到RAM區域,存儲地址在范圍[0000H ?3FFFH]之間。
[0029]3.根據讀取設備ID信息和授權算法計算出License信息。
[0030]在RAM區域中,結合ID信息和授權算法共同計算出License,RAM中ID和License信息存放程序位置掉電不保存,無法復制。
[0031]本實施例中在RAM中按照上述存儲地址,讀取ID并計算出以ID為首位的連續的六個數,即 97、98、99、100、101、102 ;按照 ASCII 碼的格式得出 License 為 abcdef。
[0032]4將計算出的License信息和隱藏區域的License信息比對,若兩者相同,則程序進入運行狀態,否則,需進行授權請求。
[0033]本實施例中當輸入License等于abcdef時,說明裝置正常,且已授權,程序進入運行狀態,當輸入License不等于abcdef時,發出授權請求。
[0034]通過上述過程,本發明對設備授權有效性計算程序具有多重保護,首先ID和License信息存儲在隱藏區域內,只有授權程序可訪問;其次ID信息在RAM中地址的不確定可防止ID信息被拷貝;同時根據設備ID信息和某種算法計算出的License是唯一的,在硬件和程序同時被仿制的情況下,沒有License解密也無法運行。
【主權項】
1.一種嵌入式設備程序的防拷貝方法,其特征在于,該防拷貝方法包括以下步驟: 1)將嵌入式設備ID和License信息存儲在隱藏區域; 2)判斷嵌入式設備程序的授權狀態,在嵌入式設備程序授權后從隱藏區域讀取設備ID信息到RAM區域; 3)根據讀取設備ID信息和授權算法計算出License信息; 4)將計算出的License信息和隱藏區域的License信息比對,若兩者相同,則程序進入運行狀態,否則,需進行授權請求。2.根據權利要求1所述的嵌入式設備程序的防拷貝方法,其特征在于,所述設備ID和License信息所存儲的隱藏區域僅授權程序可以訪問。3.根據權利要求2所述的嵌入式設備程序的防拷貝方法,其特征在于,所述設備ID信息在RAM中的偏移地址是隨機的,且具有唯一性。4.根據權利要求3所述的嵌入式設備程序的防拷貝方法,其特征在于,所述RAM中設備ID和License信息存放程序位置掉電不保存,無法復制。5.根據權利要求4所述的嵌入式設備程序的防拷貝方法,其特征在于,所述設備ID和License信息存儲在隱藏區域的路徑在程序寫入ID時確定,程序記憶的是其相對路徑。6.根據權利要求5所述的嵌入式設備程序的防拷貝方法,其特征在于,所述ID信息讀取到RAM區域時,其偏移量隨著RAM的實際工作情況而定,其偏移量對程序開放,程序可根據偏移量讀取RAM中的ID信息。7.根據權利要求1-6中任一項所述的嵌入式設備程序的防拷貝方法,其特征在于,所述步驟2)中是通過設備程序的授權標志位來判斷設備程序是否處于授權狀態。
【專利摘要】本發明涉及一種嵌入式設備程序的防拷貝方法,該方法首先將嵌入式設備ID和License信息存儲在隱藏區域,在設備程序授權后從隱藏區域讀取設備ID信息到RAM區域,然后根據讀取設備ID信息和授權算法計算出License信息,最后將計算出的License信息和隱藏區域的License信息比對,若兩者相同,則程序進入運行狀態,否則,需進行授權請求。本發明將ID和License存儲在隱藏區域,對其進行技術保護,再通過ID和License對程序進行授權管理,盜取程序沒有密碼,無法訪問隱藏區域,也無法實現數據拷貝,進而實現對程序的保護。該方法簡單易行,無需算法復雜的加解密,也無需在進程和線程中增加防拷貝機制,只需通過對ID和License信息的存儲機制進行處理即可實現對授權過程進行有效保護。
【IPC分類】G06F21/12
【公開號】CN105260627
【申請號】CN201510601362
【發明人】陳玉峰, 王永剛, 應站煌, 王旭寧, 王龍洋, 鄭曉慶
【申請人】許繼集團有限公司, 許繼電氣股份有限公司, 許昌許繼軟件技術有限公司, 國家電網公司
【公開日】2016年1月20日
【申請日】2015年9月18日