[發明專利]一種基于smali中間語言的靜態檢測系統及方法在審
| 申請號: | 201611198355.1 | 申請日: | 2016-12-22 |
| 公開(公告)號: | CN106598866A | 公開(公告)日: | 2017-04-26 |
| 發明(設計)人: | 王鑫 | 申請(專利權)人: | 合肥國信車聯網研究院有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京和信華成知識產權代理事務所(普通合伙)11390 | 代理人: | 胡劍輝 |
| 地址: | 230000 安徽省合肥市蜀山*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 smali 中間 語言 靜態 檢測 系統 方法 | ||
技術領域
本發明涉及到移動應用軟件的分析技術領域,特別是一種基于smali中間語言的靜態檢測系統及方法。
背景技術
一般情況下,移動應用軟件靜態分析技術是反編譯到源代碼,因為Android代碼本身的問題,并不能完全匹配Java語法并且在反編譯到源代碼的過程中會有信息缺失或反編譯失敗,無法進行完整的信息分析,因此設計并實現了一種基于smali中間語言的靜態檢測系統,對比基于源代碼的靜態檢測系統有較好的檢測精確度和較低的誤報率,并在檢測效率上有極大的提高。
目前,國內外對應用軟件的靜態檢測技術做了大量的研究,對Android應用軟件的靜態檢測技術主要分為基于特征的檢測技術和基于行為的檢測技術兩大類,基于特征的檢測技術是根據由已知類別的惡意軟件類別中提取的通用特征碼進行檢測;而基于行為的檢測方法則是將應用軟件反編譯到源代碼或中間代碼。
基于特征代碼的檢測技術,是將惡意軟件中的代碼或自身信息等進行提取處理為特征碼,再通過檢測文件中是否存在特征碼來判斷其是否為惡意軟件。這種檢測技術是現狀病毒檢測最常用及核心的技術之一。Thomas等人將Android應用程序反編譯到源代碼,再對源代碼中的模型特征進行匹配檢測。吳俊昌等人將Android移動應用使用的權限作為特征,進而設計了一種基于權限特征的靜態檢測方法。Desnos等人從應用程序中提取方法特征再進行距離壓縮和相似度比較來對應用軟件的相似度和惡意軟件進行檢測。童正飛將從動態鏈接表中提出的Android程序調用關系作為特征,對惡意軟件進行分類檢測。然而基于特征的檢測技術只能通過特征代碼進行檢測,無法對未知病毒或已知病毒的變種進行檢測。
基于敏感行為的檢測技術依靠監視程序的行為,與已知的惡意行為模式進行匹配,來判斷目標文件是否具備惡意趨向。這種檢測技術一般通過逆向手段,分析應用軟件中的函數調用序列等,即一般會將應用軟件進行反編譯,得到中間文件代碼或者源代碼,針對得到的文件提取控制流和數據流,根據命中的敏感API進行流追蹤,判斷是否為后臺行為以及參數是否為敏感數據。
然而由于Android應用軟件的特殊性,其在反編譯到源代碼的過程中有部分信息丟失,從而無法完全匹配Java語言的語法規則,進行中間抽象模型構建時也無法構造出完整準確的抽象語法樹。由于檢驗所針對的檢查對象不是程序本身而是構建出的的模型,程序在向模型轉化的過程中有稍微一點點偏差以至于獲得的模型具有偏差,都會造成最終的檢查結果與程序中實際存在的敏感行為存在誤差。
發明內容
為解決上述技術問題,本發明提供了一種基于smali中間語言的靜態檢測系統,其包括預處理模塊、規則庫模塊、敏感行為檢測模塊、結果生成模塊,所述預處理模塊用于對移動應用軟件做簡單快速的初步篩選分析,判斷當前移動應用軟件是否存在可能的敏感行為,并判斷是否需要進行后續靜態行為分析程序;
所述規則庫模塊為所述預處理模塊在進行敏感行為分析時依賴的規則;
所述敏感行為檢測模塊是對所述預處理模塊判斷出的存在敏感行為的移動應用軟件進行詳細的行為檢測;所述結果生成模塊用于將移動應用軟件的基本信息和敏感信息生成報告并輸出。
較佳地,所述規則庫模塊包括一類規則:敏感行為API、二類規則:參數規則以及三類規則:用戶行為規則,所述參數規則為確定所述敏感行為API的參數是否為符合條件的類型,所述用戶行為規則用于確定命中的符合條件的敏感行為API是后臺行為還是用戶行為。
較佳地,所述預處理模塊用于實現快速從資源文件和dex文件中獲取當前應用軟件中所有使用的字符串,即獲取常量池中的數據;
對于從資源文件的分解,可以使用SAXBuilder對xml文件進行解析,按照格式獲取AndroidManifest.xml中的信息;從dex文件中獲取常量表則通過文件格式,進行編碼對dex文件中的字符串列表進行提取,在通過dex文件格式獲取字符串偏移地址后,第一個字節即為當前字符串的大小,當前字符串長度大于預設閾值時,表明該字符串為無意義字符,將該字符串從常量池中剔除;
在獲取了整個應用軟件的常量池后,需要進行常量對比,對比的對象為一類規則和常量池中的數據,如果兩者有重合的則表明當前應用軟件中可能存在敏感行為需要進行進一步的行為檢測,若沒有則表明當前軟件中不含有敏感行為。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于合肥國信車聯網研究院有限公司,未經合肥國信車聯網研究院有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611198355.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種軟件測試方法及裝置
- 下一篇:用戶界面的測試方法及測試裝置





