[發明專利]一種軟件代碼存儲方法在審
| 申請號: | 201710306198.X | 申請日: | 2017-05-04 |
| 公開(公告)號: | CN107168759A | 公開(公告)日: | 2017-09-15 |
| 發明(設計)人: | 劉述;田輝;曹薊光;段世惠;張俊霞;李文宇 | 申請(專利權)人: | 工業和信息化部電信研究院 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京德琦知識產權代理有限公司11018 | 代理人: | 謝安昆,宋志強 |
| 地址: | 100191 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟件 代碼 存儲 方法 | ||
1.一種軟件代碼存儲方法,其特征在于,該方法包括:
讀取軟件代碼文件中的軟件代碼;
按照預設規則對該軟件代碼的內容分塊,形成多個代碼塊;
針對每個代碼塊對應的內容分別進行掃描,識別該代碼塊中的邏輯判斷,以及邏輯判斷嵌套的層次,以各邏輯判斷的層次號形成一個數字序列,作為該代碼塊的特征序列;
將各代碼塊的名稱,以及各代碼塊的特征序列,作為該軟件代碼的特征集合進行存儲。
2.根據權利要求1所述的方法,其特征在于,所述按照預設規則對該軟件代碼的內容分塊,包括:
若該軟件代碼為面向過程的代碼,則按照代碼里的函數對該軟件代碼的內容進行分塊,以函數的名稱作為對應代碼塊的名稱;
針對不屬于任何函數中的語句,作為一個獨立主函數劃分為一個代碼塊。
3.根據權利要求1所述的方法,其特征在于,所述按照預設規則對該軟件代碼的內容分塊,包括:
若該軟件代碼為面向對象的代碼,則按照代碼里的對象內的方法對該軟件代碼的內容進行分塊,以對象和對應方法的名稱作為對應代碼塊的名稱;
針對不屬于任何對象內的語句,作為一個獨立方法劃分為一個代碼塊。
4.根據權利要求1所述的方法,其特征在于,所述針對每個代碼塊對應的內容分別進行掃描,識別該代碼塊中的邏輯判斷,以及邏輯判斷嵌套的層次,以各邏輯判斷的層次號形成一個數字序列,包括:步驟
A、針對該代碼塊設置邏輯嵌套計數器初始值為0;
B、掃描該代碼塊,若掃描到代碼塊中存在邏輯判斷詞,則將邏輯嵌套計數器增加1,并記錄;
C、若在滿足邏輯判斷而執行的代碼中又有新的邏輯判斷,則邏輯嵌套計數器加1,并記錄;
D、當代碼完成一個滿足邏輯判斷的執行過程,邏輯嵌套計數器減1,不記錄;以此類推,直到掃描完該代碼塊的全部內容。
5.根據權利要求1所述的方法,其特征在于,所述方法進一步包括:
在存儲軟件代碼的特征集時,存儲附加信息;其中,所述附加信息包括下述一項或任意項組合:軟件版本、特征集生成時間、特征集對應的哈希值、數字簽名、軟件編寫者名稱、軟件備注和說明;所述哈希值和數字簽名用于軟件代碼的特征集唯一性的標識。
6.根據權利要求5所述的方法,其特征在于,
以json格式生成并存儲軟件代碼的特征集。
7.根據權利要求1-6任一項所述的方法,其特征在于,
所述軟件代碼為高級計算機語言編寫,且能夠正確編譯的軟件代碼。
8.根據權利要求1-6任一項所述的方法,其特征在于,所述方法進一步包括:
當需要確定第一軟件代碼與存儲的軟件代碼是否相同時,確定第一軟件代碼的特征集,并確定第一軟件代碼的特征集中的每一特征序列與存儲的軟件代碼的特征集中每一特征序列的相似度;
若第一軟件代碼有特征序列和存儲的軟件代碼的特征集中一特征序列相似度大于預設相識度值,則確定第一軟件代碼中對應代碼塊與存儲的軟件代碼中對應代碼塊有相同特征;
若第一軟件代碼和存儲軟件代碼有相同特征的代碼塊數目大于預設相同數目值,則通過對第一軟件代碼文件和存儲的軟件代碼源文件中的軟件代碼進行比較,確定第一軟件代碼與存儲的軟件代碼是否相同。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于工業和信息化部電信研究院,未經工業和信息化部電信研究院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710306198.X/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:多代碼庫的代碼編譯檢查方法及裝置
- 下一篇:語言的變量檢測方法和裝置





