一種增強(qiáng)軟件保護(hù)易用性的方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種增強(qiáng)軟件保護(hù)易用性的方法及裝置。所述方法包括:插件獲取軟件源文件和工程配置信息,根據(jù)需要更改工程和文件設(shè)置,設(shè)置自定義生成工具、生成/鏈接事件從而調(diào)用保護(hù)工具并提供參數(shù)。通過本發(fā)明提供的方法,只需少量用戶輸入即可完成軟件的生成和保護(hù),簡化操作,提高了使用便捷性。
【專利說明】一種增強(qiáng)軟件保護(hù)易用性的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件保護(hù)領(lǐng)域,特別涉及一種增強(qiáng)軟件保護(hù)易用性的方法及裝置。
【背景技術(shù)】
[0002]軟件保護(hù)裝置是一種通過計(jì)算機(jī)接口(包括但不限于并口或者USB接口 )連接到計(jì)算機(jī)主機(jī)上的硬件設(shè)備。該設(shè)備內(nèi)部具有非易失性存儲(chǔ)空間可供讀寫,通常還具有單片機(jī)或者微處理控制芯片等計(jì)算處理單元。軟件開發(fā)者可以通過接口函數(shù)和軟件保護(hù)裝置進(jìn)行數(shù)據(jù)交換(即對(duì)軟件保護(hù)裝置進(jìn)行讀寫),來檢查軟件保護(hù)裝置是否插在接口上;或者直接用軟件保護(hù)裝置附帶的工具進(jìn)行加密。這樣,軟件開發(fā)者可以在軟件中設(shè)置多處軟件鎖,利用軟件保護(hù)裝置作為鑰匙來打開這些鎖;如果沒插軟件保護(hù)裝置或軟件保護(hù)裝置不對(duì)應(yīng),軟件將不能正常執(zhí)行。
[0003]此外,軟件保護(hù)裝置內(nèi)部包含特定的功能,例如一部分存儲(chǔ)空間、一些密碼算法或者一些用戶自定義的算法或者功能。在軟件發(fā)行之前,軟件開發(fā)者修改自己的軟件代碼,使得軟件在運(yùn)行過程中需要使用到軟件保護(hù)裝置內(nèi)部的一些功能,這樣軟件離開軟件保護(hù)裝置之后就會(huì)無法運(yùn)行,而軟件保護(hù)裝置作為一種硬件設(shè)備復(fù)制的難度較大,從而起到防止盜版軟件非法傳播的作用。
[0004]當(dāng)前市場上主要的軟件保護(hù)裝置包括:美國SafeNet公司的Sentinel Superpro>以色列Aladdin公司的Hasp HL、中國北京深思洛克軟件股份有限公司的精銳系列、德國W1-Bu公司的WIBU-Key等。所有這些軟件保護(hù)裝置都提供了內(nèi)置的存儲(chǔ)空間、私有或公開的密碼算法,當(dāng)軟件運(yùn)行過程中可以調(diào)用這些功能來檢驗(yàn)是否屬于正版。這些軟件保護(hù)裝置采用了智能卡芯片作為硬件的基礎(chǔ),而且支持用戶將自己定義的功能寫入到軟件保護(hù)裝置內(nèi)部,甚至可以直接將軟件的部分功能移植到軟件保護(hù)裝置內(nèi)部完成,從而大大提高了軟件被盜版的難度,通常稱這種將自己定義的功能或者軟件的部分功能移植到軟件保護(hù)裝置內(nèi)部的技術(shù)為代碼移植。本發(fā)明人現(xiàn)在對(duì)應(yīng)網(wǎng)站為http://www.sense, com.cn/,其中詳細(xì)公開了本發(fā)明人開發(fā)的軟件保護(hù)裝置的具體參數(shù)性能和工作原理。
[0005]現(xiàn)有保護(hù)方法中,一般為開發(fā)一種工具對(duì)文件進(jìn)行處理。工具可使用若干參數(shù)或界面?,F(xiàn)有軟件保護(hù)工具或?yàn)榭刂婆_(tái)程序或?yàn)橛脩艚缑娉绦蚧蚣娑兄???刂婆_(tái)程序設(shè)定了各種可選的啟動(dòng)參數(shù),用戶界面程序設(shè)計(jì)各種界面要素供用戶使用,有的工具可在界面上設(shè)定各種參數(shù)然后保存為配置文件可供下次直接獲取各參數(shù),都是為了從用戶獲取信息,實(shí)現(xiàn)用戶對(duì)工具功能的定制。隨著工具軟件的開發(fā),功能逐漸強(qiáng)大,往往參數(shù)或配置信息也變得復(fù)雜。實(shí)現(xiàn)一次軟件保護(hù)傳遞十幾個(gè)甚至幾十個(gè)參數(shù)的情況很普遍,配置信息文件也常常長達(dá)數(shù)十甚至數(shù)百行,這對(duì)用戶造成很大的不便。
[0006]另一方面,由于軟件開發(fā)與軟件保護(hù)割裂開來,許多開發(fā)階段的參數(shù)不能直接傳遞到保護(hù)工具(即前述軟件保護(hù)裝置),如工程配置、目標(biāo)文件、源文件、各函數(shù)/變量/類的相關(guān)信息。用戶不得不研究保護(hù)工具各參數(shù)的功能,手動(dòng)更改;即便是有方便的界面,每當(dāng)信息有所改變,仍需要手動(dòng)配置??傊?,保護(hù)工具隨著強(qiáng)大功能而來的復(fù)雜性使得其易用性下降,難以實(shí)現(xiàn)自動(dòng)保護(hù)。
[0007]IDE (Integrated Development Environment,集成開發(fā)環(huán)境)集成開發(fā)環(huán)境(簡稱IDE)軟件是用于程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。如微軟的Visual Studio系列,Borland的C++Builder,Delphi系列等。該應(yīng)用程序可以獨(dú)立運(yùn)行,也可以和其他程序并用。
[0008]Virbox是北京深思數(shù)盾科技有限公司研發(fā)的一種軟加密工具,可對(duì)C和C++語言代碼進(jìn)行保護(hù),應(yīng)用于Visual Studio和Delphi之中。Virbox對(duì)C和C++語言源文件經(jīng)過一系列的編譯和加密步驟,生成適用于Visual Studio或Delphi的.0bj文件。例如在Visual Studio中使用時(shí),先配置好Virbox的應(yīng)用環(huán)境之后,只需要在Visual Studio中進(jìn)行簡單的設(shè)置,將默認(rèn)的編譯器改為Virbox即可。除了最基本的保護(hù)之外,Virbox還提供了增強(qiáng)保護(hù),包括多態(tài)混淆、反調(diào)試和私有數(shù)據(jù)保護(hù)功能,這三種功能還可以隨意組合使用。
【發(fā)明內(nèi)容】
[0009]有鑒于此,本發(fā)明提供了一種增強(qiáng)軟件保護(hù)易用性的方法。
[0010]本發(fā)明提供一種軟件保護(hù)裝置,所述軟件保護(hù)裝置為插件。所述插件包括配置讀取模塊、文件信息提取模塊、參數(shù)生成模塊和設(shè)置模塊,其中,
所述配置讀取模塊,用于讀取Visual Studio的配置信息,包括:解決方案配置信息、工程配置、文件配置,進(jìn)一步包括編譯配置信息、鏈接配置信息;
文件信息提取模塊,用于從源文件及目標(biāo)文件等中間文件提取必要信息,包括:函數(shù)、變量、類等相關(guān)彳目息;
參數(shù)生成模塊,用于根據(jù)配置讀取模塊讀取的配置信息和軟件保護(hù)工具本身的要求生成必要的參數(shù),包括設(shè)置自定義生成步驟、生成/鏈接事件。進(jìn)一步包括:自定義生成步驟(Custom build Step)、預(yù)生成事件(Pre-Build Event)、生成后事件(Post-BuildEvent)、預(yù)鏈接事件(Pre-Link Event);
配置寫入模塊,用于根據(jù)參數(shù)生成模塊生成的參數(shù)和軟件保護(hù)工具本身的要求更改解決方案配置、工程配置、文件配置。
[0011]根據(jù)本發(fā)明的一個(gè)方面,還提供了一種增強(qiáng)軟件保護(hù)易用性的方法,所述方法具體步驟包括:
步驟1:讀取IDE集成開發(fā)環(huán)境的配置信息;
步驟2:從源文件及目標(biāo)文件等中間文件中提取必要信息;
步驟3:根據(jù)需要更改解決方案配置、工程配置、文件配置、源文件及目標(biāo)文件等中間文件;
步驟4:計(jì)算軟件保護(hù)工具參數(shù),設(shè)置自定義生成步驟、生成/鏈接事件。
[0012]根據(jù)本發(fā)明的一個(gè)方面,所述步驟I中的IDE集成開發(fā)環(huán)境為微軟的VisualStudio。
[0013]根據(jù)本發(fā)明的一個(gè)方面,所述步驟I中IDE集成開發(fā)環(huán)境的配置信息具體包括:解決方案配置信息、工程配置、文件配置,進(jìn)一步包括編譯配置信息、鏈接配置信息。
[0014]根據(jù)本發(fā)明的一個(gè)方面,所述步驟2中提取的必要信息包括:函數(shù)、變量、類等相關(guān)信息。
[0015]根據(jù)本發(fā)明的一個(gè)方面,所述步驟4進(jìn)一步包括:自定義生成步驟(Custom buildStep)、預(yù)生成事件(Pre-Build Event)、生成后事件(Post-Build Event)、預(yù)鏈接事件(Pre-Link Event)。
[0016]根據(jù)本發(fā)明的一個(gè)方面,所述步驟4中計(jì)算軟件保護(hù)工具參數(shù)即為計(jì)算插件的相
關(guān)參數(shù)。
[0017]本發(fā)明基于微軟公司的Visual Studio的插件技術(shù),通過插件獲取軟件源文件和工程配置信息,根據(jù)需要更改工程和文件設(shè)置,設(shè)置自定義生成工具、生成/鏈接事件從而調(diào)用保護(hù)工具并提供參數(shù),只需少量用戶輸入即可完成軟件的生成和保護(hù),具有操作簡便、使用便捷等特點(diǎn)。
【專利附圖】
【附圖說明】
[0018]圖1為按照本發(fā)明的一種增強(qiáng)軟件保護(hù)易用性的裝置的一優(yōu)選實(shí)施方式的結(jié)構(gòu)關(guān)系圖。
[0019]圖2為按照本發(fā)明的一種增強(qiáng)軟件保護(hù)易用性的方法的一優(yōu)選實(shí)施方式的流程示意圖。
[0020]圖3為按照本發(fā)明的一種增強(qiáng)軟件保護(hù)易用性的方法的實(shí)施例1的圖形化用戶交互界面示意圖。
[0021]圖4為按照本發(fā)明的一種增強(qiáng)軟件保護(hù)易用性的方法的實(shí)施例1的流程示意圖?!揪唧w實(shí)施方式】
[0022]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
[0023]實(shí)施例1
本實(shí)施例以北京深思數(shù)盾科技有限公司的Virbox 1.6為例,闡述本方法的實(shí)施方法。開發(fā)工具以Visual Studio 2008為例。
[0024]Virbox可對(duì)源文件進(jìn)行編譯和轉(zhuǎn)換,生成Visual Studio下可直接使用的.0bj文件??膳渲玫膮?shù)包括:
表I Virbox參數(shù)列表
【權(quán)利要求】
1.一種軟件保護(hù)裝置,所述軟件保護(hù)裝置包括配置讀取模塊、文件信息提取模塊、參數(shù)生成模塊和設(shè)置模塊,其中: 所述配置讀取模塊,用于讀取Visual Studio的配置信息,包括:解決方案配置信息、工程配置、文件配置; 文件信息提取模塊,用于從中間文件提取必要信息,包括:函數(shù)、變量、類等相關(guān)信息; 參數(shù)生成模塊,用于根據(jù)配置讀取模塊讀取的配置信息和軟件保護(hù)工具本身的要求生成必要的參數(shù),包括設(shè)置自定義生成步驟、生成/鏈接事件; 配置寫入模塊,用于根據(jù)參數(shù)生成模塊生成的參數(shù)和軟件保護(hù)工具本身的要求更改解決方案配置、工程配置、文件配置。
2.如權(quán)利要求1所述的軟件保護(hù)裝置,所述軟件保護(hù)裝置為插件。
3.如權(quán)利要求1或2所述的軟件保護(hù)裝置,其中配置讀取模塊讀取的配置信息進(jìn)一步包括編譯配置信息、鏈接配置信息。
4.如權(quán)利要求1或2所述的軟件保護(hù)裝置,其中中間文件包括源文件、目標(biāo)文件。
5.如權(quán)利要求3所述的軟件保護(hù)裝置,其中中間文件包括源文件、目標(biāo)文件。
6.如權(quán)利要求1或2所述的軟件保護(hù)裝置,其中自定義生成步驟、生成/鏈接事件進(jìn)一步包括:自定義生成步驟、預(yù)生成事件、生成后事件、預(yù)鏈接事件。
7.如權(quán)利要求3所述的軟件保護(hù)裝置,其中自定義生成步驟、生成/鏈接事件進(jìn)一步包括:自定義生成步驟、預(yù)生成事件、生成后事件、預(yù)鏈接事件。
8.如權(quán)利要求5所述的軟件保護(hù)裝置,其中自定義生成步驟、生成/鏈接事件進(jìn)一步包括:自定義生成步驟、預(yù)生成事件、生成后事件、預(yù)鏈接事件。
9.一種增強(qiáng)軟件保護(hù)易用性的方法,所述方法包括: 步驟1:讀取IDE集成開發(fā)環(huán)境的配置信息; 步驟2:從源文件及目標(biāo)文件等中間文件中提取必要信息; 步驟3:根據(jù)需要更改解決方案配置、工程配置、文件配置、源文件及目標(biāo)文件等中間文件; 步驟4:計(jì)算軟件保護(hù)工具參數(shù),設(shè)置自定義生成步驟、生成/鏈接事件。
10.如權(quán)利要求9所述的方法,其中步驟I中的IDE集成開發(fā)環(huán)境為微軟的VisualStudio。
11.如權(quán)利要求9或10所述的方法,其中步驟I中IDE集成開發(fā)環(huán)境的配置信息具體包括:解決方案配置信息、工程配置、文件配置。
12.如權(quán)利要求11所述的方法,其中IDE集成開發(fā)環(huán)境的配置信息進(jìn)一步包括編譯配置信息、鏈接配置信息。
13.如權(quán)利要求9所述的方法,其中步驟2中提取的必要信息包括:函數(shù)、變量、類等相關(guān)信息。
14.如權(quán)利要求9所述的方法,其中步驟4進(jìn)一步包括:自定義生成步驟、預(yù)生成事件、生成后事件、預(yù)鏈接事件。
15.如權(quán)利要求9所述的方法,其中步驟4中計(jì)算軟件保護(hù)工具參數(shù)即為計(jì)算插件的相關(guān)參數(shù)。
【文檔編號(hào)】G06F21/12GK103870723SQ201410104815
【公開日】2014年6月18日 申請(qǐng)日期:2014年3月20日 優(yōu)先權(quán)日:2014年3月20日
【發(fā)明者】孫吉平, 韓勇 申請(qǐng)人:北京深思數(shù)盾科技有限公司