[發(fā)明專利]符號混淆方法及裝置有效
| 申請?zhí)枺?/td> | 201810192330.3 | 申請日: | 2018-03-08 |
| 公開(公告)號: | CN108416194B | 公開(公告)日: | 2020-10-23 |
| 發(fā)明(設計)人: | 馬明 | 申請(專利權)人: | 北京頂象技術有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F21/12 |
| 代理公司: | 北京超凡志成知識產權代理事務所(普通合伙) 11371 | 代理人: | 王文紅 |
| 地址: | 100000 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 符號 混淆 方法 裝置 | ||
1.一種符號混淆方法,其特征在于,用于Objective-C語言,所述方法包括:
基于源代碼文件對源代碼進行編譯,獲取中間文件;
獲取所述中間文件的類型構造信息;
基于所述類型構造信息和第一預設替換原則,將所述中間文件中的第一符號自動替換為第二符號;
其中,所述基于源代碼文件對源代碼進行編譯,獲取中間文件,包括:
基于至少一個源代碼文件對源代碼進行編譯,獲取至少一個第一中間文件;
將所述至少一個第一中間文件進行合并,獲取第二中間文件;
將所述第二中間文件中賦值相同的全局變量進行合并,獲取中間文件。
2.根據(jù)權利要求1所述的符號混淆方法,其特征在于,所述基于所述類型構造信息和第一預設替換原則,將所述中間文件中的第一符號自動替換為第二符號,包括:
將所述類型構造信息中類的第一名稱替換為第二名稱;
判斷所述類型構造信息中類的方法列表中的第一方法名稱是否滿足第二預設替換原則,獲取第一判斷結果;
在所述第一判斷結果為否時,將所述第一方法名稱替換為第二方法名稱。
3.根據(jù)權利要求2所述的符號混淆方法,其特征在于,所述基于所述類型構造信息和第一預設替換原則,將所述中間文件中的第一符號自動替換為第二符號,還包括:
將所述類型構造信息中類的屬性列表中的第一屬性名稱替換為第二屬性名稱;
判斷所述類型構造信息中類的屬性列表中的第一ivar的類型名稱是否與所述類型構造信息中類的第一名稱相同,在為是時,將所述第一ivar的類型名稱替換為所述第二名稱;
判斷所述類型構造信息中類的屬性列表中的getter方法的第三方法名稱是否與所述第一方法名稱相同,在為是時,將所述第三方法名稱替換為所述第二方法名稱;
判斷所述類型構造信息中類的屬性列表中的setter方法的第四方法名稱是否與所述第一方法名稱相同,在為是時,將所述第四方法名稱替換為所述第二方法名稱。
4.根據(jù)權利要求2所述的符號混淆方法,其特征在于,所述基于所述類型構造信息和第一預設替換原則,將所述中間文件中的第一符號自動替換為第二符號,還包括:
將所述類型構造信息中類的ivar列表中的第二ivar的第三名稱直接替換為第四名稱;
判斷所述類型構造信息中所述第二ivar的第三類型名稱是否與所述第一名稱相同,在為是時,將所述第三類型名稱替換為所述第二名稱。
5.一種符號混淆裝置,其特征在于,用于Objective-C語言,所述裝置包括:
中間文件獲取單元,用于基于源代碼文件對源代碼進行編譯,獲取中間文件;
類型構造信息獲取單元,用于獲取所述中間文件的類型構造信息;
符號替換單元,用于基于所述類型構造信息和第一預設替換原則,將所述中間文件中的第一符號自動替換為第二符號;
其中,所述中間文件獲取單元包括:
第一獲取單元,用于基于至少一個源代碼文件對源代碼進行編譯,獲取至少一個第一中間文件;
第二獲取單元,用于將所述至少一個第一中間文件進行合并,獲取第二中間文件;
第三獲取單元,用于將所述第二中間文件中賦值相同的全局變量進行合并,獲取中間文件。
6.根據(jù)權利要求5所述的符號混淆裝置,其特征在于,所述符號替換單元,包括:
第一符號替換子單元,用于將所述類型構造信息中類的第一名稱替換為第二名稱;
第一判斷判斷單元,用于判斷所述類型構造信息中類的方法列表中的第一方法名稱是否滿足第二預設替換原則,獲取第一判斷結果;
第二符號替換子單元,用于在所述第一判斷結果為否時,將所述第一方法名稱替換為第二方法名稱。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京頂象技術有限公司,未經北京頂象技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810192330.3/1.html,轉載請聲明來源鉆瓜專利網。





