新四季網

一種基於遺傳算法的軟體代碼混淆操作選擇方法與流程

2023-06-03 04:14:11

本發明屬於信息安全技術領域,涉及一種基於遺傳算法的軟體代碼混淆操作選擇方法。



背景技術:

隨著軟體逆向技術的快速發展,軟體出售之後,被非授權用戶破解的可能性有所提高,一旦攻擊者通常利用靜態反彙編或動態調試等逆向工程技術對軟體的可執行程序進行分析和破解,那麼,將會盜取該軟體核心算法等智慧財產權,還可能對軟體和灌裝參數表等進行篡改,謀取利益,甚至尋找軟體中的安全漏洞,伺機利用。

軟體代碼混淆技術是防止軟體被非授權用戶破解的一個有效手段,且在軟體代碼保護中逐漸發揮越來越大的作用。軟體代碼混淆將程序代碼進行混淆處理,使得程序功能保持不變,但具體程序結構已經發生了比較大的變化,程序就轉換成難以被他人理解和修改的程序,必須付出較大的代價才能夠理解程序,這樣就極大的保護了程序本身的智慧財產權。

由於軟體代碼混淆對於軟體本身的性能會有一定程度的影響,因此,要平衡性能和混淆程度,得到滿意的代碼混淆工作。當前研究者的工作主要集中在代碼混淆方法和技術的選擇和探索方面,甚少提出平衡軟體可執行程序本身性能和代碼混淆程度的優化方法。《基於垃圾代碼的控制流混淆算法》一文中,曾經提出「當操作模塊數過大時(大於某個值m),則採用hash函數選取操作模塊,進行混淆操作,以限制混淆操作的次數,減小程序混淆後的時空開銷」的方法,但是該方法隨機性較強,在軟體代碼性能和混淆程度平衡的優化選擇方面尚有欠缺。

因此,需要提出一種優化算法,在進行軟體代碼混淆的過程中,對代碼混淆操作進行優化選擇,選擇既能對軟體代碼進行有效的充分的混淆,又能夠將對軟體性能的影響降到最低的選擇方法,提高軟體代碼混淆的功效。



技術實現要素:

本發明解決的技術問題是:克服現有技術的不足,提供一種基於遺傳算法的軟體代碼混淆操作選擇方法,實現了對軟體代碼有效的充分的混淆,同時將對軟體性能的影響降到最低,提高了軟體代碼混淆的有效性。

本發明的技術解決方案是:一種基於遺傳算法的軟體代碼混淆操作選擇方法,包括步驟如下:

(1)建立混淆操作模塊庫,所述混淆操作模塊庫由混淆操作構成,混淆操作包括控制流混淆操作、數據混淆操作以及綜合控制流混淆和數據混淆的混淆操作;

(2)找到待混淆可執行程序的入口,對待混淆可執行程序進行反彙編;

(3)對反彙編後的代碼進行遍歷,尋找其中的jump、call、xor代碼,以此作為混淆操作的加入位置;

(4)從混淆操作模塊庫中隨機選擇若干個混淆操作,將所選的混淆操作分配給各個混淆操作的加入位置,形成n種混淆操作分配方式;

(5)採用遺傳算法對n種混淆操作分配方式進行優化選擇,選擇最優的混淆操作分配方式作為本次軟體代碼混淆操作的選擇結果。

所述步驟(5)的實現方法如下:

(2.1)確定混淆操作組合為遺傳算法的特徵,對n種混淆操作分配方式進行編碼,形成n個染色體,n個染色體構成遺傳算法的種群;

(2.2)為每個染色體設定適應度,其中染色體ri的適應度為fi,fi為經過染色體ri混淆操作後的軟體代碼響應時間的倒數;

(2.3)每個染色體進行交叉或變異;

(2.4)當達到設定的遺傳代數後,選擇適應度最高的染色體rh,作為最優的混淆操作分配方式。

所述步驟(2.1)中,染色體ri={h1,h2…hj…hm},其中hj表示第j個加入位置處分配的混淆操作組合,hj可以為空。

所述步驟(2.3)中,對染色體ri進行交叉的方法如下:

從ri中隨機選取一個特徵值hj,對於該特徵值的兩邊特徵hj-1和hj+1進行交叉處理,得到交叉之後的結果;

對染色體ri進行變異的方法如下:

從ri中隨機選取一個特徵值hc,將hc的混淆操作組合變異為混淆操作模塊庫中其他混淆操作的組合,實現變異。

本發明與現有技術相比的優點在於:

(1)本發明建立了包括多種混淆實現方式的混淆操作模塊庫,根據可執行程序中加入位置的不同,形成多種混淆操作分配方式,每種混淆操作分配方式均為不同類型不同實現方式的混淆操作組合,從而能夠實現對待混淆可執行程序的充分有效混淆。

(2)本發明方法採用遺傳算法對可執行程序混淆操作的多個混淆操作分配方式,進行選擇、交叉和變異,優化選擇出對可執行程序響應時間影響最小的混淆操作分配方式,避免了隨機選擇方式的不足,使得選擇得到的軟體代碼混淆操作能夠在充分進行代碼混淆的前提下,儘可能小的影響代碼本身的運行效率,將對軟體性能的影響降到最低。

附圖說明

圖1為本發明流程圖。

具體實施方式

如圖1所示,本發明提出一種基於遺傳算法的軟體代碼混淆操作選擇方法,具體步驟包括:

(1)建立混淆操作模塊庫,混淆操作模塊庫由混淆操作構成,混淆操作包括控制流混淆操作、數據混淆操作以及綜合控制流混淆和數據混淆的混淆操作。例如,控制流混淆操作包括在程序裡面加入多餘跳轉、重新組織程序裡面的控制流等,數據混淆操作包括對變量進行重組、對數值變量進行混合變換等。

(2)找到待混淆可執行程序的入口,對待混淆可執行程序進行反彙編。

(3)對反彙編得到的代碼進行遍歷,尋找其中的jump、call、xor代碼,以此作為混淆操作的加入位置。

一種實現方式為:

(3.1)建立空的指令鍊表;

(3.2)判斷第k行程序是否為jump、call、xor指令,如果是,則將該代碼段存入指令鍊表,如果不是,則進入步驟(3.3),k的初值為1;

(3.3)判斷是否為最後一條指令,如果為否,則k的值加1,返回步驟(3.2);如果是最後一條指令,則進入步驟(4)。

(4)從混淆操作模塊庫中隨機選擇若干個混淆操作,並組合,將組合後的混淆操作分配給各個混淆操作的加入位置,形成n種混淆操作分配方式。

(5)採用遺傳算法對n種混淆操作分配方式進行優化選擇,選擇最優的混淆操作分配方式作為本次軟體代碼混淆操作的選擇結果。

採用遺傳算法對n種混淆操作分配方式進行優化選擇的具體實現方法為:

1)特徵選擇及編碼

針對遺傳算法,確定混淆操作組合為遺傳算法的特徵。

對n種混淆操作分配方式進行編碼,形成n個染色體,n個染色體構成遺傳算法的種群,ri={h1,h2…hj…hm},其中hj表示第j個加入位置處分配的混淆操作組合,hj可以為空。j∈[1,m]。m表示待混淆可執行程序需要加入混淆操作的位置數量。h1,h2…hj…hm為遺傳算法的特徵。

n個染色體構成遺傳算法的種群r,

r={r1,r2…ri…rn}

2)適應度確定

採用遺傳算法中的輪盤賭選擇方法,每一個染色體佔據虛擬輪盤中的一個扇區,各染色體佔據的扇區面積正比於適應度數值,染色體ri對應的適應度為fi,fi為經過染色體ri混淆操作後的軟體代碼響應時間的倒數,軟體代碼響應時間越長,所對應的染色體適應度越低,反之亦然。

3)特徵交叉及變異

採用簡單交叉的方法,在每個染色體中隨機設定一個交叉點,實行交叉的時候,該點前後兩個特徵進行交換,生成一個新的染色體。即,從染色體ri中隨機選取一個特徵值hj,對於特徵值的兩邊特徵hj-1和hj+1進行交叉處理,得到交叉之後的結果。

變異過程中,隨機選擇染色體ri一個特徵值hc,將hc的混淆操作組合變異為混淆操作模塊庫中其他混淆操作組合,實現變異。c∈[1,m]。

4)遺傳終止條件

預先設定遺傳代數d,經過選擇、交叉和變異操作,到規定代數d之後,選擇適應度最高的染色體rh,作為優化選擇的結果。

(5)遺傳算法結束後,rh所對應的混淆操作分配方式即為本次軟體代碼混淆操作的選擇結果。

本發明首先建立混淆操作模塊庫,然後從反彙編後的代碼中確定混淆操作的加入位置,從混淆操作模塊庫中選擇多個混淆操作,並組合,形成n種混淆操作分配方式;最後採用遺傳算法,對形成的n種混淆操作分配方式進行優化篩選,篩選出適應程度最高的混淆操作分配方式。本發明對可執行程序的代碼混淆操作進行篩選,能夠綜合考慮程序響應時間和代碼混淆程度兩個因素,在對軟體代碼進行有效充分混淆的前提下,儘量提高程序響應時間,極大的減少程序混淆對於程序執行效率的影響。

本發明說明書中未作詳細描述的內容屬本領域技術人員的公知技術。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀