[發明專利]一種軟件程序的保護方法、裝置及系統無效
| 申請號: | 200810055992.2 | 申請日: | 2008-01-03 |
| 公開(公告)號: | CN101216775A | 公開(公告)日: | 2008-07-09 |
| 發明(設計)人: | 孫吉平;韓勇 | 申請(專利權)人: | 北京深思洛克數據保護中心 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45;G06F9/455;G06F21/22 |
| 代理公司: | 北京德琦知識產權代理有限公司 | 代理人: | 王一斌;王琦 |
| 地址: | 100086北京市海淀區中*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟件 程序 保護 方法 裝置 系統 | ||
技術領域
本發明涉及軟件保護技術,具體來說涉及一種軟件程序的保護方法、裝置及系統。
背景技術
隨著經濟技術的飛速發展,軟件作為輔助工具已經深入到了各行各業當中。軟件程序是軟件設計者和軟件編程人員智慧的結晶,軟件企業的生存和發展是軟件產品充足供應的基礎,因而,保護軟件程序的版權,防止軟件程序被盜版、被非法授權使用,具有很重要的現實意義。
傳統的軟件程序保護措施有:序列號保護、使用時間限制、軟件加殼等;其具體實現就是:在軟件程序中設置相應的功能模塊,實現相應的保護功能,例如:防拷貝功能、加密功能、限制使用時間的功能等。破解者要達到破解軟件程序的目的,通常采用以下兩種方式:
第一種方式是靜態分析技術,就是利用反編譯或反匯編技術得到源程序清單,進而分析軟件程序的流程,了解各個模塊所完成的功能,從而通過修改軟件程序來達到破解的目的。例如:可以通過修改某模塊的判斷條件,使相應模塊的保護功能失效,從而達到破解的目的。下面簡要介紹反編譯和反匯編技術:
使用高級語言編寫的軟件程序需要按照運行該軟件程序的計算機的主機系統指令集(也可稱為機器語言指令集),轉換為由一條一條的主機系統指令(也可稱為機器語言指令)構成的機器語言代碼才能被計算機識別并執行。通常,將轉換前的軟件程序稱為源程序,將轉換后得到的代碼稱為目標代碼。
匯編語言是一種介于高級語言與機器語言之間的低級語言,它與機器語言相比具有便于記憶、符合人類語言表達習慣的特性,機器語言與匯編語言之間存在幾乎一一對應的映射關系。由機器語言目標代碼得到匯編語言程序的過程稱為反匯編;由機器語言目標代碼得到高級語言源程序的過程稱為反編譯。因此,只要獲取到軟件程序的機器語言目標代碼,就能通過反匯編技術或反編譯技術將其轉化成便于破解者理解的匯編語言程序或高級語言源程序。
上述靜態分析技術正是通過在軟件程序執行之前,獲取軟件程序的機器語言目標代碼,然后利用反編譯和反匯編技術來達到破解的目的。
第二種方式是動態分析技術,即破解者利用調試工具跟蹤軟件的運行,了解軟件關鍵算法的流程和功能,并通過取消軟件程序的防拷貝或加密功能等,達到破解的目的。這種方式中最重要的工具就是調試器,例如:SoftICE,OllyDbg等。
一方面,目前的通用計算機體系中,不存在對靜態分析技術和動態分析技術進行防范的技術;另一方面,現有技術中存在眾多功能強大的、對應于目前通用的主機系統指令集的調試器及相應的使用手冊,使得破解者能夠非常容易地實施動態分析技術,而且,大部分軟件開發人員對于主機系統指令比較熟悉,可以很方便地對軟件程序進行分析,導致現有軟件程序保護措施無法對軟件程序提供真正有效的保護。
發明內容
有鑒于此,本發明提供一種軟件程序保護的方法、裝置及系統,以對軟件程序的安全性提供有效的保護。
為達到上述目的,本發明實施例的技術方案具體是這樣實現的:
一種軟件程序保護方法,預先設置虛擬系統指令集,由虛擬系統指令集中的虛擬系統指令構成的代碼段為虛擬系統代碼段;并構造能夠識別所述虛擬系統指令集的軟件虛擬系統,所述軟件虛擬系統運行于計算機上,所述軟件虛擬系統是所述軟件程序的運行環境,該方法還包括:
A、按照所述虛擬系統指令集將所述軟件程序中需要保護的程序源代碼轉換為虛擬系統指令,得到包含虛擬系統代碼段的目標代碼;
B、在執行所述目標代碼時,對于虛擬系統代碼段,由所述軟件虛擬系統將其按照所述計算機的主機系統指令集解析為機器語言指令并執行。
進一步地,在所述軟件虛擬系統運行之前或運行過程中,可以包括:
判斷所述軟件虛擬系統是否已經與信息安全硬件設備綁定,如果已經綁定,則運行軟件虛擬系統;否則,終止軟件虛擬系統的運行。
所述步驟A可以包括:
A1、確定軟件程序中需要保護的程序源代碼;
A2、讀取所述軟件程序源代碼,將所讀取到的需要保護的程序源代碼按照虛擬系統指令集轉換為對應的虛擬系統指令,得到對應的虛擬系統代碼段;將所讀取到的除所述需要保護的程序源代碼之外的程序源代碼按照主機系統指令集轉換為對應的機器語言指令,得到對應的機器語言代碼段;
A3、得到由虛擬系統代碼段和機器語言代碼段構成的目標代碼。
進一步地,在執行步驟A2所述將所讀取到的需要保護的程序源代碼按照虛擬系統指令集轉換為對應的虛擬系統指令時,可以使用數據加密變換算法對所讀取到的程序源代碼中的數據進行加密變換;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京深思洛克數據保護中心,未經北京深思洛克數據保護中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810055992.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:含果肉型飲料的定量灌裝閥
- 下一篇:圖像讀取和記錄設備





