[發明專利]基于動態關鍵指令序列胎記的軟件抄襲檢測方法有效
| 申請號: | 201310449858.1 | 申請日: | 2013-09-27 |
| 公開(公告)號: | CN103577323A | 公開(公告)日: | 2014-02-12 |
| 發明(設計)人: | 鄭慶華;田振洲;劉烴;范銘 | 申請(專利權)人: | 西安交通大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 西安通大專利代理有限責任公司 61200 | 代理人: | 汪人和 |
| 地址: | 710049 *** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 動態 關鍵 指令 序列 胎記 軟件 抄襲 檢測 方法 | ||
1.基于動態關鍵指令序列胎記的軟件抄襲檢測方法,其特征在于,包括如下步驟:
1)基于動態插樁技術,對待分析程序實施運行時監控;同時結合數據流分析,進行動態關鍵指令的識別和記錄,生成動態關鍵指令序列;
2)對抽取的動態關鍵指令序列進行預處理,剝離操作數,生成助記符序列;
3)基于助記符序列,利用k-gram算法,分別為待分析的第一程序及第二程序生成動態關鍵指令序列胎記;
4)進行第一程序及第二程序胎記相似性的計算;
5)依據多次輸入下生成的胎記相似性的均值,及給定的閾值判斷是否抄襲。
2.根據權利要求1所述的方法,其特征在于,所述步驟1)中動態關鍵指令定義及識別原則為:令trace(p,I)表示程序p在輸入I下的一條執行trace,對于該trace中的任一條匯編指令ins,當滿足如下兩個條件時,認為ins是程序p在輸入I下的一條關鍵指令,即a)ins屬于值更新指令b)ins屬于輸入關聯指令。
3.根據權利要求1所述的方法,其特征在于,所述步驟1)中監控實施方法為:針對二進制的待分析程序,使用動態插樁技術,在待分析程序的每條指令執行之前植入相應的分析代碼,實現運行時監控,捕獲指令級執行信息。
4.根據權利要求1所述的方法,其特征在于,所述步驟1)中關鍵指令序列生成方法為:通過指令級的運行時監控,捕獲每一條待執行的匯編指令,分析該指令的類型,是否為值更新指令;同時結合動態污點分析技術,通過污點源的識別及污點信息的傳播擴散,輔助識別輸入關聯指令;最后根據分析結果,對關鍵指令進行記錄,將其加入動態關鍵指令序列,否則不進行記錄。
5.根據權利要求1所述的方法,其特征在于,所述步驟1)具體包括以下步驟:
步驟S201:判斷是否還存在待執行的指令,如果有則跳至步驟S202,否則直接轉入步驟S208;
步驟S202:對于待分析的指令,解析指令類型,判斷其是否為污點傳播指令,如果是則轉入步驟S203,否則轉入步驟S204;
步驟S203:依據預定義的污點傳播規則,進行污點數據的擴散傳播;
步驟S204:對指令進行解析,據其操作符判斷是否為值更新指令;如果是則轉入步驟S205,不是則轉入步驟S207;
步驟S205:根據污點的擴散狀態,識別該指令是否為輸入關聯指令;如果為輸入關聯指令則轉入步驟S206,否則轉入步驟S207;
步驟S206:識別出該指令為關鍵指令,并將之加入動態關鍵指令序列中;
步驟S207:執行該指令,并轉入步驟S201進行下一輪的分析;
步驟S208:輸出動態關鍵指令序列。
6.根據權利要求1所述的方法,其特征在于,所述步驟2)中指令序列預處理方法為:對抽取的關鍵指令序列中的每條匯編指令,解析其語法結構,剝離其操作數,保留其助記符,生成相應的助記符序列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安交通大學,未經西安交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310449858.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種存儲數據處理方法及裝置
- 下一篇:一種石灰消化機





