[發明專利]基于張量分解的安卓APP重打包檢測方法有效
| 申請號: | 201910428020.1 | 申請日: | 2019-05-22 |
| 公開(公告)號: | CN110245492B | 公開(公告)日: | 2021-04-20 |
| 發明(設計)人: | 劉烴;池劍磊;王子駿;鄭慶華;范偉杰 | 申請(專利權)人: | 西安交通大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06K9/62 |
| 代理公司: | 西安通大專利代理有限責任公司 61200 | 代理人: | 田洲 |
| 地址: | 710049 *** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 張量 分解 app 打包 檢測 方法 | ||
1.基于張量分解的安卓APP重打包檢測方法,其特征在于,包括以下步驟:
步驟S1):構建Java的API調用類集合SA={si|1≤i≤I},其中si表示第i個API調用類,I表示Java的API調用類的總數,然后對所有待檢測的安卓APP進行反編譯,得到各個APP的全部Smali文件集合,并對得到的Smali文件進行第三方庫過濾;
步驟S2):利用API調用在Smali文件中出現的位置,得到各個Smali文件的協同出現矩陣,對每個APP的所有Smali文件的協同出現矩陣取并集操作,獲得每個APP的協同出現矩陣SC={sk|1≤k≤K},其中sk表示第k個APP的協同出現矩陣,K表示待檢測的APP總數;
步驟S3):利用所有APP的協同出現矩陣組成三階張量
步驟S4):采用張量分解算法將得到的三階張量X降維為二階矩陣,從而,將每個APP的協同出現矩陣表示成一階向量;
步驟S5):利用張量分解后得到的APP的向量表示,計算APP兩兩之間的歐氏距離Di,j;利用排序算法,將距離每個APP最近的前個APP與該APP相連;若兩個APP被相連,則認為它們是重打包關系。
2.根據權利要求1所述基于張量分解的安卓APP重打包檢測方法,其特征在于,步驟S1)具體包括:爬取Java的全部API調用類,構建Java的API調用類集合SA={si|1≤i≤I},其中si表示第i個API調用類,I表示Java的API調用類的總數;然后使用反編譯工具apktool,得到各個APP的Smali文件;并使用第三方庫過濾工具libradar,對現有的庫進行聚類后,得到白名單,對得到的Smali文件進行過濾。
3.根據權利要求1所述基于張量分解的安卓APP重打包檢測方法,其特征在于,步驟S2)中利用API調用在Smali文件中出現的位置,得到各個Smali文件的協同出現矩陣,從而得到APP的協同出現矩陣;具體包括以下步驟:
步驟S201:抽取下一個待分析的APP;
步驟S202:對于第k個APP所有的待分析Smali文件,均分別初始化一個全為0的協同出現矩陣其中表示第k個APP的第n個Smali文件的協同出現矩陣,N表示第k個APP的Smali文件數,并設置一個滑動窗ω;
步驟S203:抽取當前APP待分析的Smali文件中的下一條語句;
步驟S204:判斷該語句是否是一條API調用語句,如果是則跳至步驟S205,否則轉入步驟S203;
步驟S205:判斷在該API調用語句的滑動窗內是否出現其他的API調用語句,若出現則跳至步驟S206,否則轉入步驟S203;
步驟S206:將協同出現矩陣中對應于兩種API的位置置1;
步驟S207:判斷當前APP的所有Smali文件是否分析完畢,若分析完畢則跳至步驟S208,否則轉入步驟S203;
步驟S208:對該APP的所有Smali文件的協同出現矩陣取并集,得到該APP的協同出現矩陣
步驟S209:若所有APP都已分析完畢,則停止算法,如果尚存在未分析的APP,則返回步驟S201繼續迭代。
4.根據權利要求1所述基于張量分解的安卓APP重打包檢測方法,其特征在于,步驟S3)具體包括:將各個APP的協同出現矩陣按次序沿豎直方向排放在一起,組成三階張量其中X(i,j,k)表示第k個APP中第i種API調用類和第j種API調用類在預先定義的滑動窗內出現的情況。
5.根據權利要求1所述基于張量分解的安卓APP重打包檢測方法,其特征在于,步驟S4)中,采用張量CP分解算法將得到的三階張量X降維為二階矩陣,從而,將每個APP的協同出現矩陣表示成一階向量,具體分解方法如下:
步驟S401:將三階張量X近似地表示為有限個秩為一的張量外積和,即成分個數R為APP協同出現矩陣向量表示的維數;
步驟S402:張量X任意位置(i,j,k)上的元素估計值為將分解后的一階向量組合為三個因子矩陣A=[a1a2…aR],B=[b1b2…bR],
步驟S403:在嵌入空間中,利用矩陣C的各行表示各APP的協同出現矩陣,得到各APP的一階向量表示。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安交通大學,未經西安交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910428020.1/1.html,轉載請聲明來源鉆瓜專利網。





