欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種使用軟件保護裝置存儲程序代碼實現(xiàn)軟件保護的方法

文檔序號:6463284閱讀:156來源:國知局
專利名稱:一種使用軟件保護裝置存儲程序代碼實現(xiàn)軟件保護的方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件保護技術(shù),特別涉及一種使用軟件保護裝置存儲程序代 碼實現(xiàn)軟件保護的方法。
背景技術(shù)
軟件保護裝置是實現(xiàn)軟件安全保護和版權(quán)保護的主要手段。軟件保護裝置特指一種附加在計算機接口 (比如,USB接口、串口、并口等接口)上的 硬件設(shè)備,對運行在計算機上的特定的軟件進行軟件安全保護和版權(quán)保護。 現(xiàn)代的軟件保護裝置,例如USB加密鎖,采用高強度智能卡芯片和先進的 密碼學(xué)技術(shù),具有一定的運算和存儲能力,同時難以被破解和復(fù)制,在高強 度軟件版權(quán)保護中具有廣泛的應(yīng)用。采用軟件保護裝置進行軟件保護的通常的方法是將其視作 一個與受保 護軟件并行的運算平臺,將軟件中的一部分功能移植到軟件保護裝置中實 現(xiàn),在軟件運行時調(diào)用這些功能。軟件破解者的目的是使得被保護軟件在沒 有連接軟件保護裝置時也能正常工作,或者制造可以克隆軟件保護裝置功能 的硬件裝置。理想情況下,受保護軟件的運行依賴于軟件保護裝置提供的預(yù) 算功能,而破解者又無法復(fù)制軟件保護裝置,因此可以很好的保護軟件。為了達到一定的保護強度,被移植的功能應(yīng)該是一定復(fù)雜性、且非常見 的算法,而且輸入輸出的數(shù)據(jù)空間必須足夠大,同時又適合在軟件保護裝置 中有限的存儲和計算條件下運行。在實際情況中要找到軟件中滿足上述要求 的功能模塊并非易事,通常要在安全強度和運行效率之間權(quán)衡。另外,由于 軟件保護裝置和PC主機是完全不同的硬件運算平臺,軟件開發(fā)商需要將原 先在PC上的功能在軟件保護裝置的開發(fā)平臺上重新編程實現(xiàn),具有一定的技術(shù)難度,因此提高了軟件開發(fā)和維護成本。 發(fā)明內(nèi)容有鑒于此,本發(fā)明提出了一種使用軟件保護裝置存儲應(yīng)用程序代碼進行 軟件保護的方法。本發(fā)明將可執(zhí)行程序中的部分機器指令或腳本語言存儲在軟件保護裝置中,在程序運行時動態(tài)的從軟件保護裝置中取出并在PC上執(zhí)行,在保護程序的代碼同時無需進行代碼移植,易于實現(xiàn)。同時由于受保護代碼是在PC上執(zhí)行,因此不影響程序的運行效率,可以對程序中多段代碼進行存儲保護,提高了軟件的保護強度。參見圖1,利用軟件保護裝置存儲程序代碼進行軟件保護的方法,具體包括步驟IOI,從受保護軟件的可執(zhí)行程序文件中選取若干代碼段,將代碼 段數(shù)據(jù)和起始地址存儲到軟件保護裝置中,擦除代碼段內(nèi)容,并在代碼段起 始處寫入調(diào)用軟件保護裝置的指令。步驟102,軟件運行到被保護代碼部分時執(zhí)行預(yù)先寫入的調(diào)用軟件保護 裝置的指令,計算被保護代碼段的起始地址,將其發(fā)送到軟件保護裝置中。 軟件保護裝置根據(jù)被保護代碼段的起始地址找到已存儲的代碼段數(shù)據(jù),返回 給軟件。步驟103,軟件分配一塊內(nèi)存,將軟件保護裝置返回的代碼段數(shù)據(jù)存儲 到該內(nèi)存中,調(diào)用其中的入口函數(shù)實現(xiàn)受保護功能,完成后擦除并釋放該塊 內(nèi)存。在上述過程中,為了進一步提高軟件保護強度,可以采用以下措施1. 被存儲的代碼以密文形式從軟件保護裝置發(fā)送到軟件,須解密后才可被執(zhí)行,因此防止了破解者通過監(jiān)控和記錄通信數(shù)據(jù)獲得被存儲代 碼的方法。2. 進一步,解密密鑰是軟件與軟件保護裝置協(xié)商建立的動態(tài)會話密鑰,保證了每次取回的代碼數(shù)據(jù)密文都不相同。以包含對軟件保護裝置的再次調(diào)用,因此軟件要正常運行,首先要從軟件保護裝置中讀取被存儲代碼,而在執(zhí)行該段 代碼時仍需要調(diào)用軟件保護裝置的功能,這種二次調(diào)用方式可以有 效的防止破解者復(fù)制被存儲代碼。4. 進一步,在上述二次調(diào)用軟件保護裝置功能時傳入的參數(shù)是由軟件保護裝置在返回該段代碼時動態(tài)生成的,軟件保護裝置在處理二次調(diào) 用時檢查傳入?yún)?shù)的合法性,這樣保證了軟件每次執(zhí)行的被移植代 碼是不同的,并且與軟件保護裝置結(jié)合緊密。 根據(jù)本發(fā)明的 一個方面,提供一種使用軟件保護裝置實現(xiàn)軟件保護的方法,其特征在于,該方法包括步驟A、 將受保護軟件的可執(zhí)行程序的若干段代碼段數(shù)據(jù)和起始地址存儲到 軟件保護裝置中;B、 在受保護軟件中擦除上述代碼段數(shù)據(jù);C、 在代碼段起始位置處寫入調(diào)用軟件保護裝置的指令;D、 當(dāng)軟件運行到某個已轉(zhuǎn)移存儲到軟件保護裝置中的被保護代碼段 時,將所述代碼段的起始地址發(fā)送給軟件保護裝置;E、 軟件保護裝置返回相應(yīng)的代碼段數(shù)據(jù);F、 軟件將代碼段數(shù)據(jù)存儲到內(nèi)存中,并執(zhí)行該代碼段數(shù)據(jù)。 根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟F之后還包括步驟G、 執(zhí)行完成后擦除該段內(nèi)存數(shù)據(jù)。根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟D中還包括通過執(zhí) 行預(yù)先寫入的調(diào)用軟件保護裝置的指令,計算被保護代碼段的起始地址,然 后將其發(fā)送到軟件保護裝置中。根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟E中還包括軟件保護 裝置根據(jù)被保護代碼段的起始地址找到已存儲的代碼段數(shù)據(jù),返回給軟件。根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟F中還包括軟件首先 分配一塊內(nèi)存,然后將軟件保護裝置返回的代碼段數(shù)據(jù)存儲到所述內(nèi)存中。6根據(jù)本發(fā)明的一個方面,其特征還在于,被存儲的代碼段數(shù)據(jù)以密文形 式從軟件保護裝置發(fā)送到軟件,須解密后才可被軟件執(zhí)行。根據(jù)本發(fā)明的一個方面,其特征還在于,解密密鑰是軟件與軟件保護裝 置協(xié)商建立的動態(tài)會話密鑰。根據(jù)本發(fā)明的一個方面,其特征還在于,被存儲的代碼段數(shù)據(jù)中包含對 軟件保護裝置的再次調(diào)用。根據(jù)本發(fā)明的一個方面,其特征還在于,軟件正常運行時,首先從軟件 保護裝置中讀取被存儲的代碼段數(shù)據(jù),在執(zhí)行所述代碼段數(shù)據(jù)時再次調(diào)用軟 件保護裝置的功能。根據(jù)本發(fā)明的一個方面,其特征還在于,在上述二次調(diào)用軟件保護裝置 的功能時,傳入?yún)?shù)由軟件保護裝置在返回所述代碼段數(shù)據(jù)時動態(tài)生成。根據(jù)本發(fā)明的一個方面,其特征還在于,軟件保護裝置在處理上述二次 調(diào)用時,檢查傳入?yún)?shù)的合法性。根據(jù)本發(fā)明的一個方面,其特征還在于,在上述步驟A中還包括由 軟件開發(fā)商選取受保護軟件的若干段代碼,標(biāo)記代碼段的起始和結(jié)束位置并 計算其長度,將代碼段數(shù)據(jù)和起始地址存儲到軟件保護裝置中。根據(jù)本發(fā)明的一個方面,其特征還在于,還包括軟件開發(fā)商將上述受 保護軟件和軟件保護裝置發(fā)布給授權(quán)的軟件用戶。根據(jù)本發(fā)明的一個方面,其特征還在于,還包括軟件調(diào)用解密后的代 碼段中的功能函數(shù),執(zhí)行完功能函數(shù)后擦除內(nèi)存數(shù)據(jù)并釋放內(nèi)存。根據(jù)本發(fā)明的一個方面,其特征還在于,還包括功能函數(shù)中包含對軟 件保護裝置的進一步調(diào)用,同時調(diào)用的參數(shù)是由軟件保護裝置在返回被存儲 的代碼段數(shù)據(jù)時動態(tài)設(shè)定的。上述過程與軟件的功能無關(guān),可對可執(zhí)行程序中任意的代碼段進行轉(zhuǎn)移 存儲,易于實現(xiàn)自動化的軟件保護方法,降低了軟件保護的技術(shù)難度和開發(fā) 成本。同時受保護的代碼功能不是在軟件保護裝置中而是在PC上運行,因 此對軟件的執(zhí)行效率影響很小。而使用基于硬件的軟件保護裝置,保證了被存儲代碼的私密性,提高了保護的安全性。


圖1為本發(fā)明使用軟件保護裝置存儲程序代碼實現(xiàn)軟件保護的方法的 流程示意圖。圖2為本發(fā)明實施例中使用軟件保護裝置存儲程序代碼實現(xiàn)軟件保護 的方法的流程示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉 實施例,對本發(fā)明進一步詳細說明。圖2為本發(fā)明實施例中基加密數(shù)據(jù)文件實現(xiàn)軟件保護方法的流程示意圖。步驟201,軟件開發(fā)商選取受保護軟件的若干段代碼,標(biāo)記代碼的起始 和結(jié)束位置并計算其長度,將代碼段數(shù)據(jù)和起始地址存儲到軟件保護裝置 中,擦除代碼段內(nèi)容,并在代碼段起始處寫入調(diào)用軟件保護裝置的指令。步驟202,軟件開發(fā)商將上述受保護軟件和軟件保護裝置發(fā)布給授權(quán)的 軟件用戶。步驟203,軟件運行時,當(dāng)執(zhí)行到某個被轉(zhuǎn)移存儲的代碼段時,執(zhí)行預(yù) 設(shè)的調(diào)用軟件保護裝置指令,將該代碼段的起始地址發(fā)送給軟件保護裝置, 后者從根據(jù)該地址找到相應(yīng)的代碼段數(shù)據(jù),用會話密鑰加密后發(fā)送回軟件。步驟204,軟件分配一塊內(nèi)存存儲接收到的加密代碼段數(shù)據(jù),并用會話 密鑰進行解密。步驟205,軟件調(diào)用解密后的代碼段中的功能函數(shù),完成后擦除內(nèi)存數(shù) 據(jù)并釋放內(nèi)存。在步驟205中,功能函數(shù)里可以包含對軟件保護裝置的進一步調(diào)用,同 時調(diào)用的輸入?yún)?shù)可以是由軟件保護裝置在返回被存儲代碼段數(shù)據(jù)時動態(tài)設(shè)定的。這樣可以有效的增加軟件和軟件保護裝置的相互依賴性,使得破解 者難以分析和復(fù)制輸入輸出數(shù)據(jù)。綜上所見,本發(fā)明提供了一種統(tǒng)一而便捷的利用軟件保護裝置進行軟件 保護的方法,極大的降低了 一般的代碼移植方法的技術(shù)難度和軟件局限性,具有易于實施、執(zhí)行效率高和高安全強度的優(yōu)點。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范 圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進等, 均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1. 一種使用軟件保護裝置存儲程序代碼實現(xiàn)軟件保護的方法,其特征在于,該方法包括步驟A、將受保護軟件的可執(zhí)行程序的若干段代碼段數(shù)據(jù)和起始地址存儲到軟件保護裝置中;B、在受保護軟件中擦除上述代碼段數(shù)據(jù);C、在代碼段起始位置處寫入調(diào)用軟件保護裝置的指令;D、當(dāng)軟件運行到某個已轉(zhuǎn)移存儲到軟件保護裝置中的被保護代碼段時,將所述代碼段的起始地址發(fā)送給軟件保護裝置;E、軟件保護裝置返回相應(yīng)的代碼段數(shù)據(jù);F、軟件將代碼段數(shù)據(jù)存儲到內(nèi)存中,并執(zhí)行該代碼段數(shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟F之后還包括步驟G、 執(zhí)行完成后擦除內(nèi)存中所述代碼段數(shù)據(jù)。 -
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟D中還包括通 過執(zhí)行預(yù)先寫入的調(diào)用軟件保護裝置的指令,計算被保護代碼段的起始地 址,然后將其發(fā)送到軟件保護裝置中。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟E中還包括軟 件保護裝置根據(jù)被保護代碼段的起始地址找到已存儲的代碼段數(shù)據(jù),返回給 軟件。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟F中還包括軟 件首先分配一塊內(nèi)存,然后將軟件保護裝置返回的代碼段數(shù)據(jù)存儲到所述內(nèi) 存中。
6、 根據(jù)權(quán)利要求1-5所述的任一方法,其特征在于,被存儲的代碼段 數(shù)據(jù)以密文形式從軟件保護裝置發(fā)送到軟件,須解密后才可被軟件執(zhí)行。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,解密密鑰是軟件與軟件 保護裝置協(xié)商建立的動態(tài)會話密鑰。
8、 根據(jù)權(quán)利要求6所述的方法,其特征在于,被存儲的代碼段數(shù)據(jù)中 包含對軟件保護裝置的再次調(diào)用。
9、 根據(jù)權(quán)利要求8所述的方法,其特征在于,軟件正常運行時,首先 從軟件保護裝置中讀取被存儲的代碼段數(shù)據(jù),在執(zhí)行所述代碼段數(shù)據(jù)時再次 調(diào)用軟件保護裝置的功能。
10、 根據(jù)權(quán)利要求9所述的方法,其特征在于,在上述二次調(diào)用軟件保 護裝置的功能時,傳入?yún)?shù)由軟件保護裝置在返回所述代碼段數(shù)據(jù)時動態(tài)生 成。
11、 根據(jù)權(quán)利要求10所述的方法,其特征在于,軟件保護裝置在處理 上述二次調(diào)用時,檢查傳入?yún)?shù)的合法性。
12、 根據(jù)權(quán)利要求5所述的方法,其特征在于,在上述步驟A中還包 括由軟件開發(fā)商選取受保護軟件的若干段代碼,標(biāo)記代碼段的起始和結(jié)束 位置并計算其長度,將代碼段數(shù)據(jù)和起始地址存儲到軟件保護裝置中。
13、 根據(jù)權(quán)利要求12所述的方法,其特征在于,還包括軟件開發(fā)商 將上述受保護軟件和軟件保護裝置發(fā)布給授權(quán)的軟件用戶。
14、 根據(jù)權(quán)利要求12所述的方法,其特征在于,還包括軟件調(diào)用解 密后的代碼段中的功能函數(shù),執(zhí)行完功能函數(shù)后擦除內(nèi)存數(shù)據(jù)并釋放內(nèi)存。
15、 根據(jù)權(quán)利要求14所述的方法,其特征在于,還包括功能函數(shù)中 包含對軟件保護裝置的進一步調(diào)用,同時調(diào)用的參數(shù)是由軟件保護裝置在返 回被存儲的代碼段數(shù)據(jù)時動態(tài)設(shè)定的。
全文摘要
本發(fā)明提出了一種使用軟件保護裝置存儲應(yīng)用程序代碼進行軟件保護的方法。本發(fā)明將可執(zhí)行程序中的部分機器指令或腳本語言存儲在軟件保護裝置中,在程序運行時動態(tài)地從軟件保護裝置中取出并在PC上執(zhí)行,在保護程序的代碼同時無需進行代碼移植,易于實現(xiàn)。同時由于受保護代碼是在PC上執(zhí)行,因此不影響程序的運行效率,可以對程序中多段代碼進行存儲保護,提高了軟件的保護強度。本發(fā)明為軟件的保護提供了一種簡單、高效、安全的方法。
文檔編號G06F21/00GK101261664SQ20081010366
公開日2008年9月10日 申請日期2008年4月10日 優(yōu)先權(quán)日2008年4月10日
發(fā)明者孫吉平, 勇 韓 申請人:北京深思洛克數(shù)據(jù)保護中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
芦溪县| 孟津县| 新民市| 行唐县| 土默特左旗| 吉林市| 辽阳县| 东平县| 八宿县| 昌都县| 冀州市| 临漳县| 麟游县| 凤凰县| 建瓯市| 民县| 阜平县| 德阳市| 茌平县| 武山县| 西充县| 土默特左旗| 汝城县| 石屏县| 松阳县| 桂东县| 凤山县| 渝中区| 桃江县| 微博| 会同县| 巴林左旗| 苏尼特右旗| 彭阳县| 马山县| 安康市| 南宫市| 金川县| 应城市| 新余市| 阿坝|