[發明專利]基于Dex2C與LLVM的Android應用程序保護方法有效
| 申請號: | 201910394117.5 | 申請日: | 2019-05-13 |
| 公開(公告)號: | CN110245467B | 公開(公告)日: | 2023-02-07 |
| 發明(設計)人: | 湯戰勇;何中凱;張宇翔;王薇;龔曉慶;陳曉江;房鼎益 | 申請(專利權)人: | 西北大學 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 西安恒泰知識產權代理事務所 61216 | 代理人: | 李婷 |
| 地址: | 710069 *** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 dex2c llvm android 應用程序 保護 方法 | ||
本發明公開了基于Dex2C與LLVM的Android應用程序保護方法,包括:解壓APK獲取并解析Dex文件,得到每條匯編指令的能夠恢復C代碼的所有必要信息,根據評估模型選擇是否進行Dex2C的轉換,若超過閾值,則進行Dex2C的轉換:轉換預處理操作,包括查找待保護方法、插入匯編指令語句、建立指令的鄰接關系等,逐個根據匯編指令類型選擇三套轉換邏輯中的一種進行轉換;基于LLVM實現編譯時虛擬化,若未超過閾值,則直接執行LLVM編譯虛擬化模塊;通過該框架生成So文件后,進行重打包、簽名,生成功能等效的APK。本發明結合了Dex層和本地層的防護方法,一方面能夠提高APK的執行效率,另一方面極大的提升了惡意攻擊者攻擊的難度和成本。
技術領域
本發明屬于Android應用程序中Dex文件加密與So文件編譯時虛擬化的技術領域,具體涉及到Dex文件到C文件的轉換與基于LLVM編譯時虛擬的 Android應用程序保護方法。
背景技術
近年來,隨著移動互聯網生態系統的蓬勃發展,移動應用程序的數量呈指數級增長。根據Statista的一項調查,截至2019年3月,Google Play共提供了260 萬個Android應用程序。但是,由于逆向工具鏈的成熟,攻擊者使用逆向工具很容易獲取到合法應用程序中So(shared object)文件或classes.dex文件的核心邏輯,然后進行篡改,譬如添加惡意代碼或替換原始廣告等,最終進行重打包簽名,通過非法渠道流入市場。這不僅損害了應用開發者的利益,而且也對用戶財產與隱私構成了威脅,嚴重影響了移動應用行業的健康發展。
市場上大多數APP是由Java語言和C語言開發的,Java代碼在編譯過程中生成Dex文件,C代碼在編譯的過程中生成So文件。目前Dex文件的主要防護方式有以下幾種:整體加密、部分類加載加密及Dex文件虛擬化,但相應的, DexExtractor、ZjDroid及PackGrind工具能夠對這三種Dex層的保護方案進行有效的攻擊。Dex文件目前主流的防護方式還有一個最主要的缺陷是加殼的方法并不會提高Dex文件的執行效率。目前So文件的主要防護方式有:OLLVM與Upx 加殼。但相應的攻擊工具或方案有DecLLVM與Upx Shell Tools。由此可見,一方面,目前的保護方案存在著保護能力不足和保護后效率降低的問題,另一方面,目前市面上還沒有一種能夠同時對Dex文件和So文件同時進行防護的系統。
發明內容
本發明提出了一種基于Dex2C與LLVM(Low Level Virtual Machine)的 Android應用程序保護方法,能夠同時對Dex文件和So文件進行防護,以有效抵御惡意攻擊者的靜態分析和動態分析。
為了實現上述任務,本發明采用以下技術方案:
基于Dex2C與LLVM的Android應用程序保護方法,包括以下步驟:
從待保護的應用程序安裝包中獲取Dex文件,按照文件格式對其進行逐層解析,得到Dex文件中的每一條匯編指令的能夠恢復到C語言代碼的所有必要信息并存儲于數據結構中;確定待保護的方法并將其修改為本地層類型方法然后重寫Dex文件,進行轉換前預處理工作;建立評估模型,將待保護方法運行時的核心調用時間占比作為評估模型的決策依據,通過設置閾值,來判定是否將待保護的方法進行Dex2C轉換,從而盡可能避免頻繁的反射調用和冗余的循環操作;
如待保護的方法進行Dex2C轉換,則將存儲在所述數據結構中對應于待保護方法的必要信息轉換為C語言代碼,轉換過程中針對于不同的匯編指令建立不同的轉換邏輯,并恢復匯編指令前驅、后繼之間的連接關系,同時保證匯編指令類型正確恢復、數據傳遞的一致性;將轉換后的C代碼作為待保護對象;
如待保護的方法不進行Dex2C轉換,則將待保護的應用程序安裝包中的So 文件里的入口函數作為待保護對象;
將待保護對象進行編譯的同時虛擬化,生成虛擬化后的二進制So文件,進行重打包、簽名,生成保護后的應用程序。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西北大學,未經西北大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910394117.5/2.html,轉載請聲明來源鉆瓜專利網。





