[發明專利]基于Go語言代碼分割的眾測任務包生成方法及保護方法無效
| 申請號: | 202110690940.8 | 申請日: | 2021-06-22 |
| 公開(公告)號: | CN113434391A | 公開(公告)日: | 2021-09-24 |
| 發明(設計)人: | 黃松 | 申請(專利權)人: | 中國人民解放軍陸軍工程大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京縱橫知識產權代理有限公司 32224 | 代理人: | 董建林 |
| 地址: | 210014 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 go 語言 代碼 分割 任務 生成 方法 保護 | ||
1.一種基于Go語言代碼分割的眾測任務包生成方法,其特征在于,包括:
對項目文件的Go語言源代碼進行掃描,獲取包括Go語言源代碼中所有函數聲明信息的聲明總表;
從項目文件中選定待分割的函數聲明;
根據所述聲明總表將每個待分割的函數聲明進行代碼分割生成代碼分割單元;
將預設數量的代碼分割單元打包生成眾測任務包。
2.根據權利要求1所述的一種基于Go語言代碼分割的眾測任務包生成方法,其特征在于,所述獲取包括Go語言源代碼中所有函數聲明信息的聲明總表包括:
通過依賴掃描器獲取Go語言源代碼的所有Go代碼包;
使用轉換器將每個Go代碼包下所有文件轉化為抽象語法樹;
使用函數分析器通過分析抽象語法樹中的函數聲明結點,獲取每個函數聲明,并將結果保存為每個Go代碼包的聲明表;
使用聲明分析器提取每個Go代碼包的聲明表,匯總后得到聲明總表。
3.根據權利要求2所述的一種基于Go語言代碼分割的眾測任務包生成方法,其特征在于,所述函數聲明包括函數聲明在其函數體中調用的其他函數聲明信息、變量聲明信息以及常量聲明信息。
4.根據權利要求1所述的一種基于Go語言代碼分割的眾測任務包生成方法,其特征在于,所述根據所述聲明總表將每個待分割的函數聲明進行代碼分割生成代碼分割單元包括:
在聲明總表中查找待分割的函數聲明與其相關聲明生成聲明關系表;
根據聲明關系表生成聲明關系圖,并將聲明關系圖作為代碼分割單元。
5.根據權利要求4所述的一種基于Go語言代碼分割的眾測任務包生成方法,其特征在于,所述在聲明總表中查找待分割的函數聲明與其相關聲明生成聲明關系表包括:
在聲明總表中查找待分割的函數聲明使用的各類聲明;
在聲明總表中查找各類聲明使用的其他聲明,通過不斷遞歸分析,直到所有聲明不再使用其他聲明;
將各類聲明及所有使用的其他聲明作為待分割的函數聲明的相關聲明保存為聲明關系表。
6.根據權利要求5所述的一種基于Go語言代碼分割的眾測任務包生成方法,其特征在于,所述根據聲明關系表生成聲明關系圖包括:
根據聲明關系表在聲明總表中查找待分割的函數聲明對各類聲明的調用關系以及各類聲明對所有使用的其他聲明的調用關系,獲取完整的聲明調用關系并生成聲明關系圖。
7.根據權利要求1所述的一種基于Go語言代碼分割的眾測任務包生成方法,其特征在于,所述代碼分割單元為代碼分割的最小單元。
8.一種基于權利要求1-7任一項所述的眾測任務包生成方法的保護方法,其特征在于,包括:
根據預設的閾值保證單個眾測任務包的信息占比大小,從而保護項目文件涉及的Go語言源代碼的安全性;
其中,所述信息占比為單個眾測任務包中聲明數量在聲明總表的聲明數量的占比。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍陸軍工程大學,未經中國人民解放軍陸軍工程大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110690940.8/1.html,轉載請聲明來源鉆瓜專利網。





