[發明專利]代碼混淆方法、代碼運行方法及裝置在審
| 申請號: | 201610076963.9 | 申請日: | 2016-02-03 |
| 公開(公告)號: | CN107038354A | 公開(公告)日: | 2017-08-11 |
| 發明(設計)人: | 孫澤奪;泮曉波;丁健生 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京博浩百睿知識產權代理有限責任公司11134 | 代理人: | 宋子良 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 混淆 方法 運行 裝置 | ||
1.一種代碼混淆方法,其特征在于,包括:
從目標應用程序中獲取第一目標文件及第二目標文件;
解析所述第一目標文件及所述第二目標文件,按照預設規則生成混淆表,其中,所述混淆表中不包含從所述第二目標文件中解析出的對象名;
對所述第一目標文件執行靜態替換操作;
按照所述混淆表,將所述第一目標文件的對象名混淆為與所述對象名對應的混淆名;
將混淆后的所述第一目標文件存入所述目標應用程序。
2.根據權利要求1所述的方法,其特征在于,所述從所述目標應用程序中獲取所述第一目標文件及所述第二目標文件包括:
解壓縮所述目標應用程序,得到所述第一目標文件;以及
反編譯所述目標應用程序,得到所述第二目標文件。
3.根據權利要求1所述的方法,其特征在于,所述解析所述第一目標文件及所述第二目標文件,按照預設規則生成所述混淆表包括:
解析所述第一目標文件,得到所述第一目標文件中的對象名;
解析所述第二目標文件,得到所述第二目標文件中的對象名;
從所述第一目標文件中的對象名中,濾除所述第二目標文件中的對象名,得到不包含所述第二目標文件中的對象名的對象名集合;
根據所述對象名集合,生成所述混淆表。
4.根據權利要求1所述的方法,其特征在于,所述對所述第一目標文件執行靜態替換操作包括:
修改所述第一目標文件中的函數調用關系以及常量,以使所述目標應用程序在運行時通過所述靜態替換操作獲取待調用的對象名,其中,所述函數調用關系包括影響類加載的關鍵函數的調用關系和/或類加載函數的調用關系,所述常量包括影響類加載的且與注解相關的常量。
5.根據權利要求4所述的方法,其特征在于,所述對所述第一目標文件執行靜態替換操作還包括:
在所述第一目標文件中添加包含混淆前后映射轉換方法的類;
處理含有第一調用的有關類加載的類,重新在所述含有第一調用的有關類加載的類中生成私有方法,并且將第一調用為第二調用,其中,所述第一調用為用于調用父類的調用,所述第二調用為用于調用類中的私有方法的調用;
對于有關類加載機制中繼承自系統的類加載器但未實現類加載方法的類,重新在所述有關類加載機制中繼承自系統的類加載器但未實現類加載方法的類中生成私有方法,并對私有方法進行重載調用。
6.根據權利要求1所述的方法,其特征在于,所述按照所述混淆表,將所述第一目標文件的對象名混淆為與所述對象名對應的混淆名包括:
解析所述混淆表,將對象名與混淆名的對應關系存放在哈希表中;
解析出所述第一目標文件中的對象名;
重新將解析出的對象名寫入所述第一目標文件,其中,在寫入所述解析出的對象名時,查詢所述哈希表,將所述解析出的對象名混淆為與所述解析出的對象名對應的混淆名。
7.根據權利要求1所述的方法,其特征在于,所述將混淆后的所述第一目標文件存入所述目標應用程序包括:
將混淆后的所述第一目標文件進行壓縮,并對混淆后的所述第一目標文件進行重新簽名;
將預先配置的用于獲取待調用的對象名的第三目標文件以及混淆后的所述第一目標文件打包寫入所述目標應用程序。
8.根據權利要求7所述的方法,其特征在于,在將預先配置的用于獲取待調用的對象名的第三目標文件以及混淆后的所述第一目標文件打包寫入所述目標應用程序之后,所述方法還包括:
對所述目標應用程序進行重新簽名。
9.根據權利要求1至8中任一項所述的方法,其特征在于,所述對象名包括以下一種或幾種的組合:類名、方法名以及成員變量名。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610076963.9/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種EL型全電動汽車轉移器
- 下一篇:一種管片快速卸載裝置





