[發明專利]一種軟件程序的保護方法和裝置有效
| 申請號: | 201210572410.4 | 申請日: | 2012-12-25 |
| 公開(公告)號: | CN103902857B | 公開(公告)日: | 2017-11-14 |
| 發明(設計)人: | 鐘同圣;王岳 | 申請(專利權)人: | 深圳市騰訊計算機系統有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司11138 | 代理人: | 滕一斌 |
| 地址: | 518000 廣東省深圳市南*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟件 程序 保護 方法 裝置 | ||
1.一種軟件程序的保護方法,其特征在于,所述方法包括:
獲取軟件程序的資源文件和代碼文件;
解析所述代碼文件中的類信息;所述類信息包括類名和類方法名;
解析所述資源文件中與所述代碼文件綁定的類信息,得到資源類集合;
查詢所述代碼文件中解析的每個類信息,當查詢的類信息不在所述資源類集合中且不在用戶預設的類信息白名單中時,隨機生成類信息字符替換所述類信息。
2.根據權利要求1所述的方法,其特征在于,當所述類信息為類名時,所述方法包括:
解析所述資源文件中與Objective C指針或其他擴展類指針綁定的資源類名,得到資源類名集合;
解析所述代碼文件中包含字符串的節,得到字符串類名集合;
查詢所述代碼文件中解析的每個類名,當查詢的類名不在所述資源類名集合中和所述字符串類名集合中、且所述類名不在用戶預設的類名白名單中以及所述類名不是代理類名時,隨機生成類名字符替換所述類名。
3.根據權利要求2所述的方法,其特征在于,所述隨機生成類名字符替換所述類名之后,還包括:
保存所述類名字符以及對應的被替換的類名;
查詢所述軟件程序的代碼文件中的每個類的成員變量和屬性;
當所述成員變量或所述屬性的類型對應的類名為所述被替換的類名時,將所述成員變量或所述屬性的類型對應的類名修改為所述類名字符。
4.根據權利要求1所述的方法,其特征在于,當所述類信息為類方法名時,所述方法包括:
解析所述資源文件中與Objective C指針或其他擴展類指針綁定的資源類方法名,得到所述資源類方法名集合;
獲取所述代碼文件中的導入表,查找所述導入表所導入的類名和其他導入庫,解析所述導入的類名和所述其他導入庫對應的類方法名,得到導入類方法名集合;
解析所述代碼文件中的每個類,查找類符合的所有協議Protocol,得到所有Protocol要求實現的類方法名集合,得到協議類方法名集合;
解析所述代碼文件中的每個類的成員變量,得到成員變量名集合;
查詢所述代碼文件中的每個類的類方法名,當解析的類方法名不在所述資源類方法名集合中、所述導入類方法名集合中、所述協議類方法名集合中、所述成員變量名集合中和用戶預設的類方法名白名單中時,隨機生成類方法名字符替換所述類方法名。
5.一種軟件程序的保護裝置,其特征在于,所述裝置包括:
獲取模塊,用于獲取軟件程序的資源文件和代碼文件;所述軟件程序為基于蘋果公司開發的系統平臺的面向對象的Objective C程序;
第一解析模塊,用于解析所述代碼文件中的類信息;所述類信息包括類名和類方法名;
第二解析模塊,用于解析所述資源文件中與所述代碼文件綁定的類信息,得到資源類集合;
替換模塊,用于查詢所述代碼文件中解析的每個類信息,當查詢的類信息不在所述資源類集合中且不在用戶預設的類信息白名單中時,隨機生成類信息字符替換所述類信息。
6.根據權利要求5所述的裝置,其特征在于,當所述第一解析模塊解析的所述類信息為類名時,
所述第一解析模塊,包括:第一解析單元,用于當所述第一解析模塊解析的所述類信息為類名時,解析所述代碼文件中包含字符串的節,得到字符串類名集合;
相應地,所述第二解析模塊,包括:第二解析單元,用于當解析的所述類信息為類名時,解析所述資源文件中與Objective C指針或其他擴展類指針綁定的資源類名,得到資源類名集合;
相應地,所述替換模塊,包括:類名替換單元,用于當所述第一解析模塊解析的所述類信息為類名時,查詢所述代碼文件中解析的每個類名,當查詢的類名不在所述資源類名集合中和所述字符串類名集合中、且所述類名不在用戶預設的類名白名單中以及所述類名不是代理類名時,隨機生成類名字符替換所述類名。
7.根據權利要求6所述的裝置,其特征在于,所述替換模塊,還包括:
變量替換單元,用于隨機生成類名字符替換所述類名之后,保存無意義的類名字符以及對應的被替換的類名;查詢所述代碼文件中的每個類的成員變量和屬性;當所述成員變量或所述屬性的類型對應的類名為所述被替換的類名時,將所述成員變量或所述屬性的類型對應的類名修改為所述類名字符。
8.根據權利要求5所述的裝置,其特征在于,當所述類信息為類方法名時,
所述第一解析模塊,包括:第三解析單元,用于獲取所述代碼文件中的導入表,查找所述導入表所導入的類名和其他導入庫,解析所述導入的類名和所述其他導入庫對應的類方法名,得到導入類方法名集合;
第四解析單元,用于解析所述代碼文件中的每個類,查找類符合的所有協議Protocol,得到所有Protocol要求實現的類方法名集合,得到協議類方法名集合;
第五解析單元,用于解析所述代碼文件中的每個類的成員變量,得到成員變量名集合;
相應地,所述第二解析模塊,包括:第六解析單元,用于解析所述資源文件中與Objective C指針或其他擴展類指針綁定的資源類方法名,得到所述資源類方法名集合;
相應地,所述替換模塊,包括:類方法名替換單元,用于查詢所述代碼文件中的每個類的類方法名,當解析的類方法名不在所述資源類方法名集合中、所述導入類方法名集合中、所述協議類方法名集合中、所述成員變量名集合中和用戶預設的類方法名白名單中時,隨機生成類方法名字符替換所述類方法名。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市騰訊計算機系統有限公司,未經深圳市騰訊計算機系統有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210572410.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于監控高空作業車的監控系統
- 下一篇:一種全能源管理方法及系統





