[發明專利]代碼加固方法、裝置有效
| 申請號: | 202111115647.5 | 申請日: | 2021-09-23 |
| 公開(公告)號: | CN113704706B | 公開(公告)日: | 2023-10-27 |
| 發明(設計)人: | 劉鵬 | 申請(專利權)人: | 深圳市騰訊信息技術有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F8/41 |
| 代理公司: | 北京派特恩知識產權代理有限公司 11270 | 代理人: | 彭奇;張穎玲 |
| 地址: | 518054 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 加固 方法 裝置 | ||
1.一種代碼加固方法,其特征在于,所述方法包括:
確定源代碼的第一語法樹,其中,所述第一語法樹用于表征所述源代碼的語法結構;
對所述第一語法樹進行解析,得到與所述源代碼中的待加固函數對應的第二語法樹,其中,所述第二語法樹為所述第一語法樹的子樹結構;
對所述第二語法樹中對應所述待加固函數的函數邏輯進行編譯處理,得到目標二進制代碼;
根據所述目標二進制代碼和運行時,生成與所述待加固函數對應的可執行二進制代碼;
將與所述待加固函數對應的可執行二進制代碼替換所述源代碼中的所述待加固函數,得到加固代碼。
2.根據權利要求1所述的方法,其特征在于,所述根據所述目標二進制代碼和運行時,生成與所述待加固函數對應的可執行二進制代碼,包括:
將所述目標二進制代碼轉換為與所述目標二進制代碼對應的字節碼,其中,所述字節碼為所述目標二進制代碼的文本抽象描述;
基于所述字節碼調用所述運行時執行以下處理:將所述字節碼中的字符依次存儲至所述運行時的堆棧數據結構中;
基于存儲后的所述堆棧數據結構執行所述字節碼中的字符,得到與所述待加固函數對應的可執行二進制代碼。
3.根據權利要求2所述的方法,其特征在于,
所述字節碼中的字符包括指令字符和非指令字符;
所述將所述字節碼中的字符依次存儲至所述運行時的堆棧數據結構中,包括:
從所述字節碼中裁剪掉所述非指令字符;
將所述字節碼中剩余的所述指令字符依次存儲至所述運行時的所述堆棧數據結構中;
所述基于存儲后的所述堆棧數據結構執行所述字節碼中的字符,得到與所述待加固函數對應的可執行二進制代碼,包括:
基于存儲有所述指令字符的所述堆棧數據結構執行所述字節碼中的指令字符,得到與所述指令字符對應的可執行二進制代碼;
基于與所述指令字符對應的可執行二進制代碼和剩余二進制代碼,生成與所述待加固函數對應的可執行二進制代碼,其中,所述剩余二進制代碼為所述目標二進制代碼中除所述指令字符對應的二進制代碼以外的二進制代碼。
4.根據權利要求1所述的方法,其特征在于,所述確定源代碼的第一語法樹,包括:
基于所述源代碼的字符序列進行詞法解析,得到所述源代碼的標記序列;
基于所述源代碼的標記序列進行語法解析,得到所述源代碼的第一語法樹。
5.根據權利要求1所述的方法,其特征在于,所述對所述第一語法樹進行解析,得到與所述源代碼中的待加固函數對應的第二語法樹,包括:
基于所述待加固函數的字符序列進行詞法解析,得到所述待加固函數的標記序列;
對所述第一語法樹進行解析,得到所述第一語法樹中每個節點的字符;
將所述標記序列的起始字符與所述第一語法樹每個節點的字符進行匹配,得到所述第一語法樹中與所述標記序列的起始字符匹配的節點;
將所述第一語法樹中與所述標記序列的起始字符匹配的節點確定為所述第二語法樹的根節點;
將所述第一語法樹中與所述第二語法樹的根節點對應的子樹結構,確定為與所述源代碼中的待加固函數對應的第二語法樹。
6.根據權利要求1所述的方法,其特征在于,所述對所述第二語法樹中對應所述待加固函數的函數邏輯進行編譯處理,得到目標二進制代碼,包括:
對所述第二語法樹進行邏輯遍歷處理,得到所述待加固函數的函數邏輯;
基于所述待加固函數的函數邏輯調用編譯器進行編譯處理,得到與所述待加固函數對應的中間代碼;
基于所述中間代碼調用所述編譯器進行轉換處理,得到所述目標二進制代碼。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市騰訊信息技術有限公司,未經深圳市騰訊信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111115647.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種鉆石啫喱高光及其制備方法
- 下一篇:一種鈑金件加工用防變形沖壓設備





