亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

保護(hù)軟件安全的方法及裝置的制作方法

文檔序號:6337376閱讀:154來源:國知局
專利名稱:保護(hù)軟件安全的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種保護(hù)軟件安全的方法及裝置。
背景技術(shù)
黑客和木馬病毒編寫者通過跟蹤調(diào)試軟件,會對軟件的安全造成威脅。以證 券交易軟件為例,通過對證券軟件進(jìn)行跟蹤調(diào)試,可能分析出關(guān)鍵的數(shù)據(jù)加密流程和軟 件保護(hù)流程,從而制作出專門針對這些加密流程和保密流程的升級版惡意代碼程序,盜 取用戶口令,并非法截獲用戶的交易信息,從而給證券交易軟件的安全性帶來極大威 脅。因此需要通過反跟蹤技術(shù)保護(hù)軟件的安全,現(xiàn)有常見的反跟蹤技術(shù)標(biāo)志寄存器反單 步調(diào)試(Anti-Single St印)、修改中斷入口 (Modify Interrupt Entry)、反斷點(diǎn)跟蹤 (Anti-Breakpoint)、調(diào)試器檢測(Debug Detection)等。發(fā)明人在對現(xiàn)有技術(shù)的研究過程中發(fā)現(xiàn),現(xiàn)有常用的反跟蹤技術(shù)需要修改運(yùn)行軟 件的操作系統(tǒng)的底層機(jī)制,因?yàn)檎{(diào)試過程是操作系統(tǒng)結(jié)合硬件中斷實(shí)現(xiàn)的一套內(nèi)部機(jī)制, 為了能對程序進(jìn)行有效的調(diào)試,現(xiàn)有的反跟蹤技術(shù)需要干擾操作系統(tǒng)的機(jī)制。以反斷點(diǎn)跟 蹤技術(shù)為例,當(dāng)有斷點(diǎn)發(fā)生時(shí),原來應(yīng)該進(jìn)入調(diào)試器的流程,被干擾后就進(jìn)入了掛接后函 數(shù),因此干擾了正常的操作系統(tǒng)機(jī)制,必須對操作系統(tǒng)的底層機(jī)制進(jìn)行修改。由此可知,現(xiàn) 有的反跟蹤技術(shù)的軟件兼容性差,過于依賴軟硬件環(huán)境,特別應(yīng)用在證券交易軟件時(shí),難以 滿足其安全需要。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種保護(hù)軟件安全的方法及裝置,以解決現(xiàn)有反跟 蹤技術(shù)兼容性差且依賴軟硬件環(huán)境,導(dǎo)致難以保護(hù)軟件安全性的問題。為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供如下技術(shù)方案一種保護(hù)軟件安全的方法,包括對輸入的源文件進(jìn)行編譯生成中間文件;對所述中間文件進(jìn)行預(yù)處理得到所述中間文件的程序信息,以及生成混淆策略;根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理;當(dāng)所述混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理后的中間文件進(jìn) 行連接處理,并輸出連接處理后的目標(biāo)文件。所述中間文件包括符號表、控制流程和匯編指令。所述對中間文件進(jìn)行預(yù)處理包括對所述中間文件進(jìn)行流程分析、數(shù)據(jù)流分析和 數(shù)據(jù)依存度分析。還包括保存預(yù)先設(shè)置的混淆參數(shù),所述混淆參數(shù)包括混淆強(qiáng)度和混淆彈性。所述生成混淆策略包括根據(jù)需要獲取不同的混淆強(qiáng)度和混淆彈性;
將獲取的混淆強(qiáng)度和混淆彈性進(jìn)行組合得到所述混淆策略。所述根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理包括根據(jù)所述混淆策略對所述中間文件進(jìn)行遍歷;在所述中間文件中插入無用代碼,插入無用代碼后的所述中間文件的執(zhí)行效果與 所述源文件一致。還包括預(yù)先對混淆處理的性能進(jìn)行評估獲得評估指標(biāo),所述評估指標(biāo)包括混淆處理的強(qiáng) 度、混淆處理的彈性和混淆處理的開銷。一種保護(hù)軟件安全性的裝置,包括編譯單元,用于對輸入的源文件進(jìn)行編譯生成中間文件;預(yù)處理單元,用于對所述中間文件進(jìn)行預(yù)處理得到所述中間文件的程序信息;生成單元,用于生成混淆策略;混淆單元,用于根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理;連接單元,用于當(dāng)所述混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理 后的中間文件進(jìn)行連接處理;輸出單元,用于輸出連接處理后的目標(biāo)文件。還包括保存單元,用于保存預(yù)先設(shè)置的混淆參數(shù),所述混淆參數(shù)包括混淆強(qiáng)度和混淆彈 性。所述生成單元包括混淆參數(shù)獲取單元,用于根據(jù)需要獲取不同的混淆強(qiáng)度和混淆彈性;混淆參數(shù)組合單元,用于將獲取的混淆強(qiáng)度和混淆彈性進(jìn)行組合得到所述混淆策 略。所述混淆單元包括文件遍歷單元,用于根據(jù)所述混淆策略對所述中間文件進(jìn)行遍歷;代碼插入單元,用于在所述中間文件中插入無用代碼,插入無用代碼后的所述中 間文件的執(zhí)行效果與所述源文件一致。還包括預(yù)估單元,用于預(yù)先對混淆處理的性能進(jìn)行評估獲得評估指標(biāo),所述評估指標(biāo)包 括混淆處理的強(qiáng)度、混淆處理的彈性和混淆處理的開銷。由以上本發(fā)明實(shí)施例提供的技術(shù)方案可見,本申請實(shí)施例中對輸入的源文件進(jìn)行 編譯生成中間文件,對中間文件進(jìn)行預(yù)處理得到中間文件的程序信息,以及生成混淆策略, 根據(jù)混淆策略中間文件進(jìn)行混淆處理,當(dāng)混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對 混淆處理后的中間文件進(jìn)行連接處理,并輸出連接處理后的目標(biāo)文件。本申請實(shí)施例通過 代碼混淆技術(shù)進(jìn)行反跟蹤,以海量的無用信息來混淆真實(shí)信息,增加了跟蹤者的跟蹤工作 量和復(fù)雜度,從而達(dá)到無法分析出所要保護(hù)軟件的代碼原理的目的,提高了軟件的安全性。


為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領(lǐng)域普通技術(shù)人員而 言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請保護(hù)軟件安全的方法的第一實(shí)施例流程;圖2為本申請保護(hù)軟件安全的方法的第二實(shí)施例流程;圖3為本申請保護(hù)軟件安全的裝置的第一實(shí)施例框圖;圖4為本申請保護(hù)軟件安全的裝置的第二實(shí)施例框圖。
具體實(shí)施例方式在如下本發(fā)明的多個實(shí)施例中,有些實(shí)施例提供了一種保護(hù)軟件安全的方法,有 些實(shí)施例提供了一種保護(hù)軟件安全的裝置。為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí) 施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明實(shí)施例中技術(shù)方 案作進(jìn)一步詳細(xì)的說明。本申請實(shí)施例在對軟件進(jìn)行保護(hù)時(shí),采用了代碼混淆技術(shù),該技術(shù)以海量的無用 信息來混淆真實(shí)信息,從而使軟件跟蹤者無法分析出軟件源代碼,從而保證軟件安全性。參見圖1,為本申請保護(hù)軟件安全的方法的第一實(shí)施例流程圖步驟101 對輸入的源文件進(jìn)行編譯生成中間文件。其中,中間文件包括符號表、控制流程和匯編指令。步驟102 對中間文件進(jìn)行預(yù)處理得到中間文件的程序信息,以及生成混淆策略。其中,對中間文件進(jìn)行預(yù)處理包括對所述中間文件進(jìn)行流程分析、數(shù)據(jù)流分析和 數(shù)據(jù)依存度分析。其中,混淆策略可以根據(jù)預(yù)先設(shè)置的混淆參數(shù)生成,混淆參數(shù)可以包括混淆強(qiáng)度 和混淆彈性。具體的,根據(jù)需要獲取不同的混淆強(qiáng)度和混淆彈性,將獲取的混淆強(qiáng)度和混淆 彈性進(jìn)行組合得到所述混淆策略。步驟103 根據(jù)混淆策略對所述中間文件進(jìn)行混淆處理。根據(jù)所述混淆策略對所述中間文件進(jìn)行遍歷,在所述中間文件中插入無用代碼, 插入無用代碼后的所述中間文件的執(zhí)行效果與所述源文件一致。步驟104 當(dāng)混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理后的中間 文件進(jìn)行連接處理。步驟105 輸出連接處理后的目標(biāo)文件。本申請實(shí)施例在保護(hù)軟件安全時(shí),主要是對軟件的關(guān)鍵代碼進(jìn)行混淆。關(guān)鍵代碼 在沒有混淆前,跟蹤者的跟蹤工作量和復(fù)雜度都不高,因此可以在較短的時(shí)間內(nèi)分析出軟 件的關(guān)鍵流程和加密算法;但在經(jīng)過本申請實(shí)施例的代碼混淆以后,因?yàn)樵谠创a中增加 了海量的混淆信息,因此跟蹤者難以從中獲取真正的代碼信息,從而無法分析出關(guān)鍵流程。 但是CPU處理器對于混淆后的軟件代碼卻依舊可以正確執(zhí)行,只是在執(zhí)行效率上產(chǎn)生微小 的性能損耗。參見圖2,為本申請保護(hù)軟件安全的方法的第二實(shí)施例流程圖步驟201 預(yù)先對混淆處理的性能進(jìn)行評估獲得評估指標(biāo),評估指標(biāo)包括混淆處 理的強(qiáng)度、混淆處理的彈性和混淆處理的開銷。
對代碼進(jìn)行混淆的技術(shù)是一種特殊的編譯技術(shù),它將源程序P轉(zhuǎn)換成目標(biāo)程序 0(p)。O(P)與P相比具有相同的外部行為,但是代碼的安全性能更強(qiáng)。對混淆處理的要求 可以描述為設(shè)T是從源程序P到目標(biāo)程序0⑵的一個變換,如果P和0⑵具有相同的可觀 測行為,并且滿足以下兩個條件①如果P無法中止或者以錯誤的狀態(tài)中止,則O(P)可以中 止,也可以不中止;②否則O(P)必須中止,并且產(chǎn)生和P相同的輸出結(jié)果。則稱T為一個從 P到O(P)的混淆變換。在進(jìn)行混淆處理之前,需要其性能進(jìn)行評估,評估指標(biāo)分別代表了算法為程序增 加的復(fù)雜度(即混淆處理的強(qiáng)度),算法抗機(jī)器攻擊的能力(即混淆處理的彈性),以及 由于對代碼轉(zhuǎn)換而帶來的額外開銷(即混淆處理的開銷)。具體來說,混淆處理的強(qiáng)度 (Potency)指標(biāo)表示混淆處理為程序所增加的復(fù)雜度,程序主要有7類屬性決定它的復(fù)雜 程度,分別是程序長度,謂詞個數(shù),分支與循環(huán)的層次,引用的個數(shù),方法參數(shù)的個數(shù),繼承 樹深度;混淆處理的彈性(Resilience)表征混淆處理抵抗攻擊的能力,它由2個部分組成, 一部分是攻擊者為了攻克混淆處理,設(shè)計(jì)并實(shí)現(xiàn)一個相應(yīng)反混淆器所需花費(fèi)的時(shí)間以及人 力,另一部分是反混淆器對混淆處理進(jìn)行反混淆所花費(fèi)的開銷;混淆處理的開銷(Cost)說 明混淆處理給程序帶來的額外開銷,它包括有兩個方面,一個是在對程序混淆時(shí)所花費(fèi)的 開銷,另一個是混淆后的程序相對于原程序執(zhí)行時(shí)所增加的時(shí)間復(fù)雜度以及空間復(fù)雜度, 通常要求混淆后的程序執(zhí)行時(shí)的絕對延遲不超過3毫秒。步驟202 保存預(yù)先設(shè)置的混淆參數(shù),混淆參數(shù)包括混淆強(qiáng)度和混淆彈性。混淆參數(shù)表不需要每次編譯的時(shí)候都進(jìn)行設(shè)定,針對特定的軟件源代碼只需要設(shè)
置一次即可?;煜齾?shù)可以包括混淆強(qiáng)度和混淆彈性?;煜龔?qiáng)度是指混淆執(zhí)行的迭代次數(shù), 通過加大混淆強(qiáng)度可以增大跟蹤者在跟蹤程序時(shí)的復(fù)雜程度,從而起到保護(hù)程序的目的; 混淆彈性是指為了避免跟蹤者識破混淆代碼的模式,混淆器對需要的花指令進(jìn)行隨機(jī)性選 擇,通過不同花指令的隨機(jī)組合以防止跟蹤者識別出混淆的模式而制作出反混淆器,其中 花指令(junk code)是由程序設(shè)計(jì)者特別構(gòu)思,希望使反匯編的時(shí)候出錯,讓破解者無法清 楚正確地反匯編出程序內(nèi)容。步驟203 對輸入的源文件進(jìn)行編譯生成中間文件。源文件指包含了源代碼的軟件程序,源文件可以采用不同的語言進(jìn)行編寫,例如 C++, JAVA 等。以C++源文件為例,源文件中包含的程序代碼經(jīng)過編譯器的編譯生成中間文件 (例如,*. obj文件),編譯過程包括對源程序代碼的詞法和語法進(jìn)行分析處理。編譯生成的中間文件包括符號表、控制流程和匯編指令。該中間文件所包含的內(nèi) 容與源文件一樣都是用來描述程序邏輯的,只是表達(dá)方式從原來可讀性較高的C++源代碼 轉(zhuǎn)變?yōu)橄鄬勺x性差的機(jī)器語言。步驟204 對中間文件進(jìn)行預(yù)處理得到中間文件的程序信息。對中間文件進(jìn)行預(yù)處理包括對中間文件進(jìn)行流程分析、數(shù)據(jù)流分析和數(shù)據(jù)依存度 分析。步驟205 根據(jù)需要獲取不同的混淆強(qiáng)度和混淆彈性。
本申請實(shí)施例中的混淆策略通過預(yù)先保存的混淆參數(shù)獲得,混淆參數(shù)可以不限于 本申請實(shí)施例中列舉的混淆強(qiáng)度和混淆彈性。步驟206 將獲取的混淆強(qiáng)度和混淆彈性進(jìn)行組合得到混淆策略。根據(jù)混淆參數(shù)種類的不同,可以根據(jù)需要進(jìn)行組合,從而配置出各種強(qiáng)度和不同 花指令的組合,由此使對中間文件的每次混淆都有不同的結(jié)果,從而進(jìn)一步保證軟件安全 性。步驟207 根據(jù)混淆策略對中間文件進(jìn)行遍歷。步驟208 在中間文件中插入無用代碼,插入無用代碼后的中間文件的執(zhí)行效果
與源文件一致。本申請實(shí)施例在對中間文件進(jìn)行混淆處理時(shí),可以設(shè)置一個由一系列混淆算法和 邏輯處理組成混淆引擎,該混淆引擎可以根據(jù)混淆策略的要求,對中間文件進(jìn)行遍歷處理, 在中間文件的機(jī)器語言內(nèi)部插入海量的無用代碼,但是要保證插入無用代碼后的程序在執(zhí) 行效果上與源程序在宏觀上一致?;煜孑敵龅奈募愋团c混淆前輸入的中間文件的類
型一致。步驟209 當(dāng)混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理后的中間 文件進(jìn)行連接處理。當(dāng)混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆處理的強(qiáng)度、混淆處理的彈性和混淆處理的開 銷等評估指標(biāo)時(shí),可以通過連接器并將混淆后的中間文件進(jìn)行連接處理,確定最終的函數(shù) 地址,跳轉(zhuǎn)地址等信息。步驟210 輸出連接處理后的目標(biāo)文件。上述本申請實(shí)施例可以特別應(yīng)用在使用證券軟件的環(huán)境下,通過對證券軟件進(jìn)行 混淆,增加第三人對證券軟件進(jìn)行跟蹤調(diào)試的難度,保護(hù)了證券軟件交易信息及用戶口令 的安全性。與本發(fā)明一種保護(hù)軟件安全的方法的實(shí)施例相對應(yīng),本發(fā)明還提供了一種保護(hù)軟 件安全的裝置的實(shí)施例。參見圖3,為本申請保護(hù)軟件安全的裝置的第一實(shí)施例框圖該裝置包括編譯單元310、預(yù)處理單元320、生成單元330、混淆單元340、連接單 元350和輸出單元360。其中,編譯單元310,用于對輸入的源文件進(jìn)行編譯生成中間文件;預(yù)處理單元320,用于對所述中間文件進(jìn)行預(yù)處理得到所述中間文件的程序信 息;生成單元330,用于生成混淆策略;混淆單元340,用于根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理;連接單元350,用于當(dāng)所述混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處 理后的中間文件進(jìn)行連接處理;輸出單元360,用于輸出連接處理后的目標(biāo)文件。參見圖4,為本申請保護(hù)軟件安全的裝置的第二實(shí)施例框圖該裝置包括預(yù)估單元410、保存單元420、編譯單元430、預(yù)處理單元440、生成單 元450、混淆單元460、連接單元470和輸出單元480。
預(yù)估單元410,用于預(yù)先對所述混淆處理的性能進(jìn)行評估獲得評估指標(biāo),所述評估 指標(biāo)包括混淆處理的強(qiáng)度、混淆處理的彈性和混淆處理的開銷。保存單元420,用于保存預(yù)先設(shè)置的混淆參數(shù),所述混淆參數(shù)包括混淆強(qiáng)度和混淆 彈性。編譯單元430,用于對輸入的源文件進(jìn)行編譯生成中間文件;預(yù)處理單元440,用于對所述中間文件進(jìn)行預(yù)處理得到所述中間文件的程序信 息;生成單元450,用于生成混淆策略;混淆單元460,用于根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理;連接單元470,用于當(dāng)所述混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處 理后的中間文件進(jìn)行連接處理;輸出單元480,用于輸出連接處理后的目標(biāo)文件。具體的,生成單元450可以包括(圖4中未示出)混淆參數(shù)獲取單元,用于根據(jù) 需要獲取不同的混淆強(qiáng)度和混淆彈性;混淆參數(shù)組合單元,用于將獲取的混淆強(qiáng)度和混淆 彈性進(jìn)行組合得到所述混淆策略。具體的,混淆單元460可以包括(圖4中未示出)文件遍歷單元,用于根據(jù)所述 混淆策略對所述中間文件進(jìn)行遍歷;代碼插入單元,用于在所述中間文件中插入無用代碼, 插入無用代碼后的所述中間文件的執(zhí)行效果與所述源文件一致。通過以上的實(shí)施方式的描述可知,本申請實(shí)施例中對輸入的源文件進(jìn)行編譯生成 中間文件,對中間文件進(jìn)行預(yù)處理得到中間文件的程序信息,以及生成混淆策略,根據(jù)混淆 策略中間文件進(jìn)行混淆處理,當(dāng)混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理 后的中間文件進(jìn)行連接處理,并輸出連接處理后的目標(biāo)文件。本申請實(shí)施例通過代碼混淆 技術(shù)進(jìn)行反跟蹤,以海量的無用信息來混淆真實(shí)信息,增加了跟蹤者的跟蹤工作量和復(fù)雜 度,從而達(dá)到無法分析出所要保護(hù)軟件的代碼原理的目的,提高了軟件的安全性。本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需 的通用硬件平臺的方式來實(shí)現(xiàn)。基于這樣的理解,本發(fā)明實(shí)施例中的技術(shù)方案本質(zhì)上或者 說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存 儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以 是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例或者實(shí)施例的某些部分 所述的方法。本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,各個實(shí)施例之間相同相似的部 分互相參見即可,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例 的部分說明即可。以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明 的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種保護(hù)軟件安全的方法,其特征在于,包括對輸入的源文件進(jìn)行編譯生成中間文件;對所述中間文件進(jìn)行預(yù)處理得到所述中間文件的程序信息,以及生成混淆策略;根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理;當(dāng)所述混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理后的中間文件進(jìn)行連接處理,并輸出連接處理后的目標(biāo)文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述中間文件包括符號表、控制流程和 匯編指令。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對中間文件進(jìn)行預(yù)處理包括對所述 中間文件進(jìn)行流程分析、數(shù)據(jù)流分析和數(shù)據(jù)依存度分析。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括保存預(yù)先設(shè)置的混淆參數(shù),所述混淆參數(shù)包括混淆強(qiáng)度和混淆彈性。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述生成混淆策略包括 根據(jù)需要獲取不同的混淆強(qiáng)度和混淆彈性;將獲取的混淆強(qiáng)度和混淆彈性進(jìn)行組合得到所述混淆策略。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述混淆策略對所述中間文件 進(jìn)行混淆處理包括根據(jù)所述混淆策略對所述中間文件進(jìn)行遍歷;在所述中間文件中插入無用代碼,插入無用代碼后的所述中間文件的執(zhí)行效果與所述 源文件一致。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括預(yù)先對混淆處理的性能進(jìn)行評估獲得評估指標(biāo),所述評估指標(biāo)包括混淆處理的強(qiáng)度、 混淆處理的彈性和混淆處理的開銷。
8.一種保護(hù)軟件安全性的裝置,其特征在于,包括 編譯單元,用于對輸入的源文件進(jìn)行編譯生成中間文件;預(yù)處理單元,用于對所述中間文件進(jìn)行預(yù)處理得到所述中間文件的程序信息; 生成單元,用于生成混淆策略;混淆單元,用于根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理; 連接單元,用于當(dāng)所述混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理后的 中間文件進(jìn)行連接處理;輸出單元,用于輸出連接處理后的目標(biāo)文件。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括保存單元,用于保存預(yù)先設(shè)置的混淆參數(shù),所述混淆參數(shù)包括混淆強(qiáng)度和混淆彈性。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述生成單元包括 混淆參數(shù)獲取單元,用于根據(jù)需要獲取不同的混淆強(qiáng)度和混淆彈性;混淆參數(shù)組合單元,用于將獲取的混淆強(qiáng)度和混淆彈性進(jìn)行組合得到所述混淆策略。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述混淆單元包括 文件遍歷單元,用于根據(jù)所述混淆策略對所述中間文件進(jìn)行遍歷;代碼插入單元,用于在所述中間文件中插入無用代碼,插入無用代碼后的所述中間文件的執(zhí)行效果與所述源文件一致。
12.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括預(yù)估單元,用于預(yù)先對混淆處理的性能進(jìn)行評估獲得評估指標(biāo),所述評估指標(biāo)包括混 淆處理的強(qiáng)度、混淆處理的彈性和混淆處理的開銷。
全文摘要
本發(fā)明實(shí)施例公開了一種保護(hù)軟件安全的方法及裝置,所述方法包括對輸入的源文件進(jìn)行編譯生成中間文件;對所述中間文件進(jìn)行預(yù)處理得到所述中間文件的程序信息,以及生成混淆策略;根據(jù)所述混淆策略對所述中間文件進(jìn)行混淆處理;當(dāng)所述混淆處理的結(jié)果達(dá)到預(yù)設(shè)的混淆評估指標(biāo)時(shí),對混淆處理后的中間文件進(jìn)行連接處理,并輸出連接處理后的目標(biāo)文件。本申請實(shí)施例通過代碼混淆技術(shù)進(jìn)行反跟蹤,以海量的無用信息來混淆真實(shí)信息,增加了跟蹤者的跟蹤工作量和復(fù)雜度,從而達(dá)到無法分析出所要保護(hù)軟件的代碼原理的目的,提高了軟件的安全性。
文檔編號G06F21/00GK101986326SQ201010568449
公開日2011年3月16日 申請日期2010年12月1日 優(yōu)先權(quán)日2010年12月1日
發(fā)明者于浩淼, 張宇博, 易崢, 王進(jìn) 申請人:浙江核新同花順網(wǎng)絡(luò)信息股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1