一種檢測Android權限提升攻擊的應用程序重寫方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種用于檢測Android權限提升攻擊的應用程序重寫方法,包括:將用戶上傳的Android應用程序進行反編譯,以生成中間文件和應用程序配置文件,對生成的中間文件插入調用鏈構建代碼,以使應用程序在運行時自動地構建調用鏈,對生成的中間文件插入調用鏈獲取代碼,以使應用程序在運行時自動地獲取調用程序發(fā)送的調用鏈,對生成的中間文件插入檢測代碼,以使應用程序訪問系統(tǒng)敏感資源時自動地判斷是否存在權限提升攻擊,對修改完的中間文件以及應用程序配置文件重新打包成新的應用程序,對生成的應用程序進行簽名,以使該應用程序能夠被安裝到移動設備中。本發(fā)明能夠有效地避免對Android系統(tǒng)源碼的修改,從而能夠更容易地被普通用戶所采用。
【專利說明】-種檢測Android權限提升攻擊的應用程序重寫方法和系 統(tǒng)
【技術領域】
[0001] 本發(fā)明屬于計算機安全和移動安全領域,更具體地,涉及一種檢測Android權限 提升攻擊的應用程序重寫方法和系統(tǒng)。
【背景技術】
[0002] 近年來,智能終端在全球范圍內廣泛普及,尤其是以Google的Android系統(tǒng)和 Apple的iOS系統(tǒng)為代表的智能終端。據(jù)Gartner公司報告,2012年第一季度Android和 iOS系統(tǒng)手機占全球智能手機總市場的79%,其中Android系統(tǒng)手機占56%。由于Android 市場占有率高、系統(tǒng)開放源碼等特性,本專利針對目前較流行的Android系統(tǒng)移動終端。隨 著Android智能終端的流行,針對Android系統(tǒng)的惡意代碼也日益增多,據(jù)最新卡巴斯基公 司報告,2012年第二季度超過14, 900個新增的惡意代碼樣本被添加到卡巴斯基的數(shù)據(jù)庫 中,這些惡意代碼主要是吸費程序和遠程控制的木馬。此外,雖然目前Android系統(tǒng)的安全 機制(主要包含虛擬機隔離和基于權限的訪問控制策略)能夠盡可能地保證應用程序間的 隔離性,然而最近的研究表明,Android系統(tǒng)中間層存在權限提升攻擊(主要是權限重授權 攻擊),該攻擊能夠在未經用戶許可的情況下獲得特權權限從而繞過Android系統(tǒng)的安全 機制。
[0003] 由于Android權限系統(tǒng)無法抵御權限提升攻擊,因此用戶需要采取必要的安全 措施檢測和阻止該攻擊。目前,針對Android中間層的權限提升攻擊,已經存在一些解 決方案來檢測這種攻擊,其中IPC Inspection、Quire和XmanDroid是3種主要的方法, 這些方法要么通過減少接收程序的權限,要么通過構造組件間通信(Inter-component communication,簡稱ICC)調用圖來防止或檢測該攻擊。然而,目前這些方案均需要修 改Android系統(tǒng)源碼,由于Android碎片化問題嚴重,這導致作者需要提供多種修改后的 Android系統(tǒng)版本,從而增加開發(fā)者工作量。此外,用戶需要刷機才能使用以上檢測方法,但 是目前刷機操作對于普通用戶來說存在很大的難度,因此這會影響這些檢測方法地普及。
[0004] 因此,如何在保障安全性和易部署性的基礎上設計一個權限提升攻擊檢測系統(tǒng)是 必要的。從安全性角度出發(fā),該檢測系統(tǒng)能夠有效地檢測Android中間層權限攻擊。從易 部署性角度出發(fā),該檢測系統(tǒng)需要盡可能地對用戶和開發(fā)者透明,從而更容易地普及到普 通用戶中。
【發(fā)明內容】
[0005] 針對現(xiàn)有技術的以上缺陷或改進需求,本發(fā)明提供了一種檢測Android權限提升 攻擊的應用程序重寫方法和系統(tǒng),其目的在于,針對現(xiàn)有Android生態(tài)系統(tǒng)的特點,解決現(xiàn) 有檢測方法存在的部署困難的技術問題。
[0006] 為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種用于檢測Android權限提 升攻擊的應用程序重寫方法,包括以下步驟:
[0007] (1)將用戶上傳的Android應用程序進行反編譯,以生成中間文件和應用程序配 置文件;
[0008] (2)對步驟(1)生成的中間文件插入調用鏈構建代碼,以使應用程序在運行時自 動地構建調用鏈;
[0009] (3)對步驟(1)生成的中間文件插入調用鏈獲取代碼,以使應用程序在運行時自 動地獲取調用程序發(fā)送的調用鏈;
[0010] (4)對步驟(1)生成的中間文件插入檢測代碼,以使應用程序訪問系統(tǒng)敏感資源 時自動地判斷是否存在權限提升攻擊;
[0011] (5)對步驟(2)、步驟(3)和步驟(4)修改完的中間文件以及應用程序配置文件重 新打包成新的應用程序;
[0012] (6)對步驟(5)生成的應用程序進行簽名,以使該應用程序能夠被安裝到移動設 備中。
[0013] 優(yōu)選地,步驟(1)是采用反編譯工具apktool,其將APK反編譯成smali格式的中 間文件以及AndroidManifest. xml應用程序配置文件,其中應用程序配置文件定義了應用 程序各個組件的信息,組件包括行為、服務、廣播接收機和內容提供商。
[0014] 優(yōu)選地,步驟(2)包括以下子步驟:
[0015] (2-1)自動生成調用鏈構建代碼,該代碼用于應用程序運行時產生調用鏈并傳遞 調用鏈到被調用程序;;
[0016] (2-2)從Android源碼或者開發(fā)者文檔中獲得Android框架層定義的所有ICC的 API信息;
[0017] (2-3)根據(jù)步驟(2-2)獲得的ICC應用程序編程接口信息查找中間文件中所有ICC API調用位置;
[0018] (2-4)根據(jù)所有ICC API調用位置在中間文件中調用ICC位置前插入(2-1)生成 的調用鏈構建代碼。
[0019] 優(yōu)選地,步驟(3)包括以下子步驟:
[0020] (3-1)自動生成調用鏈獲取代碼,該代碼用于應用程序組件啟動時獲取調用鏈并 驗證調用鏈的完整性;
[0021] (3-2)解析應用程序配置文件,以獲得中間文件的各個組件的文件路徑;
[0022] (3-3)根據(jù)步驟(3-2)獲得的文件路徑在中間文件的組件入口處插入(3-1)生成 的調用鏈獲取代碼。
[0023] 優(yōu)選地,步驟(4)包括以下子步驟:
[0024] (4-1)自動生成攻擊檢測代碼,該代碼用于檢測調用鏈上所有程序是否含有權限。
[0025] (4-2)在Android系統(tǒng)中構建權限表,其包括所有特權API以及相應的權限信息;
[0026] (4-3)根據(jù)(4-2)的權限表查找中間文件,以獲得應用程序中所有調用特權API的 位置;
[0027] (4-4)根據(jù)應用程序中所有調用特權API的位置在中間文件中調用特權API位置 前插入(4-1)生成的攻擊檢測代碼。
[0028] 按照本發(fā)明的另一方面,提供了一種用于檢測Android權限提升攻擊的應用程序 重寫系統(tǒng),包括:
[0029] 第一模塊,用于將用戶上傳的Android應用程序進行反編譯,以生成中間文件和 應用程序配置文件;
[0030] 第二模塊,用于對第一模塊生成的中間文件插入調用鏈構建代碼,以使應用程序 在運打時自動地構建調用鏈;
[0031] 第三模塊,用于對第一模塊生成的中間文件插入調用鏈獲取代碼,以使應用程序 在運行時自動地獲取調用程序發(fā)送的調用鏈;
[0032] 第四模塊,用于對第一模塊生成的中間文件插入檢測代碼,以使應用程序訪問系 統(tǒng)敏感資源時自動地判斷是否存在權限提升攻擊;
[0033] 第五模塊,用于對第一模塊、第二模塊、以及第三模塊修改完的中間文件以及應用 程序配置文件重新打包成新的應用程序;
[0034] 第六模塊,用于對第五模塊生成的應用程序進行簽名,以使該應用程序能夠被安 裝到移動設備中。
[0035] 優(yōu)選地,第二模塊包括:
[0036] 第二十一模塊,用于自動生成調用鏈構建代碼,該代碼用于應用程序運行時產生 調用鏈并傳遞調用鏈到被調用程序;
[0037] 第二十二模塊,用于從Android源碼或者開發(fā)者文檔中獲得Android框架層定義 的ICC的API信息;
[0038] 第二十三模塊,用于根據(jù)第二十二模塊獲得的ICC應用程序編程接口信息查找中 間文件中所有ICC API調用位置;
[0039] 第二十四模塊,用于根據(jù)所有ICC API調用位置在中間文件中調用ICC位置前插 入第二十一模塊生成的調用鏈構建代碼。
[0040] 優(yōu)選地,第三模塊包括:
[0041] 第三十一模塊,用于自動生成調用鏈獲取代碼,該代碼用于應用程序組件啟動時 獲取調用鏈并驗證調用鏈的完整性;
[0042] 第三十二模塊,用于解析應用程序配置文件,以獲得中間文件的各個組件的文件 路徑;
[0043] 第三十三模塊,用于根據(jù)第三十二模塊獲得的文件路徑在中間文件的組件入口處 插入第三十一模塊生成的調用鏈獲取代碼。
[0044] 優(yōu)選地,第四模塊包括:
[0045] 第四十一模塊,用于自動生成攻擊檢測代碼,該代碼用于檢測調用鏈上所有程序 是否含有權限;
[0046] 第四十二模塊,用于在Android系統(tǒng)中構建權限表,其包括所有特權API以及相應 的權限信息;
[0047] 第四十三模塊,用于根據(jù)第四十二模塊的權限表查找中間文件,以獲得應用程序 中所有調用特權API的位置;
[0048] 第四十四模塊,用于根據(jù)應用程序中所有調用特權API的位置在中間文件中調用 特權API位置前插入第四十一模塊生成的攻擊檢測代碼。
[0049] 總體而言,通過本發(fā)明所構思的以上技術方案與現(xiàn)有技術相比,能夠取得下列有 益效果:
[0050] (1)攻擊檢測的有效性強:由于采用了步驟(2)、⑶和(4),本發(fā)明能夠建立程序 間通信的調用鏈,并在訪問特權API時利用調用鏈檢測權限提升攻擊,從而能夠有效地阻 止該攻擊對終端的威脅。
[0051] (2)檢測系統(tǒng)的部署性容易:由于采用了步驟(1)、(5)和(6),本發(fā)明能夠無需 修改Android系統(tǒng)源碼,用戶只需上傳 Android應用程序到服務端(或者采用云服務方 式),服務端利用重寫系統(tǒng)自動地生成一個安全性加強的新應用程序,用戶從服務器下載 新的應用程序安裝到Android終端;此外,當Android發(fā)布新版本系統(tǒng)時,不需要重新修改 Android源碼,只需要更新本發(fā)明的重寫方法即可。
【專利附圖】
【附圖說明】
[0052] 圖1是本發(fā)明檢測Android權限提升攻擊的應用程序重寫方法的流程圖。
[0053] 圖2是本發(fā)明方法中步驟⑵的細化流程圖。
[0054] 圖3是本發(fā)明方法中步驟(3)的細化流程圖。
[0055] 圖4是本發(fā)明方法中步驟(4)的細化流程圖。
【具體實施方式】
[0056] 為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術特征只要 彼此之間未構成沖突就可以相互組合。
[0057] 本發(fā)明的總體思路在于:通過應用市場對應用程序反編譯和分析,在應用程序中 插入調用鏈構建代碼、調用鏈檢測代碼,從而在應用程序運行過程中有效地跟蹤程序間通 信以及應用程序對敏感資源的訪問。
[0058] 本發(fā)明包括移動終端(或者用戶)上傳應用程序到重寫系統(tǒng),重寫系統(tǒng)將應用程 序重寫后生成新的應用程序,移動終端安裝新的應用程序。此外,移動終端包含一個安全服 務程序,該程序為應用程序運行時提供安全服務。
[0059] 如圖1所示,本發(fā)明用于檢測Android權限提升攻擊的應用程序重寫方法包括以 下步驟:
[0060] (1)將用戶上傳的Android應用程序進行反編譯,以生成中間文件和應用程序配 置文件;具體而言,本步驟是采用反編譯工具apktool,該工具將Android應用程序包文 件(Android application package file,簡稱APK)反編譯成smali格式的中間文件以及 AndroidManifest. xml應用程序配置文件,其中應用程序配置文件定義了應用程序各個組 件的信息,組件包括行為(activity)、服務(service)、廣播接收機(broadcast receiver) 和內容提供商(content provider)。
[0061] 本步驟的優(yōu)點在于,可以不依賴應用程序源代碼檢測權限提升攻擊,從而確保本 方法對應用程序開發(fā)者的透明性。
[0062] (2)對步驟(1)生成的中間文件插入調用鏈構建代碼,以使應用程序在運行時自 動地構建調用鏈;
[0063] 本步驟的優(yōu)點在于,避免修改Android源碼來構建調用鏈,從而確保本發(fā)明更容 易地郃署。
[0064] (3)對步驟⑴生成的中間文件插入調用鏈獲取代碼,以使應用程序在運行時自 動地獲取調用程序發(fā)送的調用鏈;
[0065] 本步驟的優(yōu)點在于,確保調用鏈在應用程序間的傳遞,從而確保本發(fā)明檢測的準 確性。
[0066] (4)對步驟(1)生成的中間文件插入檢測代碼,以使應用程序訪問系統(tǒng)敏感資源 時自動地判斷是否存在權限提升攻擊;
[0067] 本步驟的優(yōu)點在于,攻擊檢測的完整覆蓋,確保每次訪問系統(tǒng)資源時均不存在權 限提升攻擊。
[0068] (5)對步驟(2)、步驟(3)和步驟(4)修改完的中間文件以及應用程序配置文件重 新打包成新的應用程序;
[0069] (6)對步驟(5)生成的應用程序進行簽名,以使該應用程序能夠被安裝到移動設 備中。
[0070] 如圖2所示,步驟⑵包括以下子步驟:
[0071] (2-1)自動生成調用鏈構建代碼,該代碼用于應用程序運行時產生調用鏈并傳 遞調用鏈到被調用程序;具體而言,調用鏈包含完成一個任務所經過的所有應用程序信息 (包括PID、WD等)以及這些信息的哈希值;
[0072] (2-2)從Android源碼或者開發(fā)者文檔中獲得Android框架層定義的所有組件 間通信(Inter-component communication,簡稱 ICC)的應用程序編程接口(Application Programming Interface,簡稱 API)信息;
[0073] (2-3)根據(jù)步驟(2-2)獲得的ICC應用程序編程接口信息查找中間文件中所有ICC API調用位置;
[0074] (2-4)根據(jù)所有ICC API調用位置在中間文件中調用ICC位置前插入(2-1)生成 的調用鏈構建代碼。
[0075] 如圖3所示,步驟(3)包括以下子步驟:
[0076] (3-1)自動生成調用鏈獲取代碼,該代碼用于應用程序組件啟動時獲取調用鏈并 驗證調用鏈的完整性;
[0077] (3-2)解析應用程序配置文件,以獲得中間文件的各個組件的文件路徑;由于 Android系統(tǒng)允許動態(tài)注冊廣播接收機組件,因此需要查找動態(tài)注冊廣播接收機組件的中 間文件以及其路徑;
[0078] (3-3)根據(jù)步驟(3-2)獲得的文件路徑在中間文件的組件入口處插入(3-1)生成 的調用鏈獲取代碼。
[0079] 如圖4所示,步驟⑷包括以下子步驟:
[0080] (4-1)自動生成攻擊檢測代碼,該代碼用于檢測調用鏈上所有程序是否含有權限。
[0081] (4-2)在Android系統(tǒng)中構建權限表,其包括所有特權API以及相應的權限信息; 具體而言,Android系統(tǒng)中提供了許多API給應用程序訪問系統(tǒng)資源,這些API均由權限進 行保護,因此在Android系統(tǒng)中構建了一個開源的權限表;
[0082] (4-3)根據(jù)(4-2)的權限表查找中間文件,以獲得應用程序中所有調用特權API的 位置;
[0083] (4-4)根據(jù)應用程序中所有調用特權API的位置在中間文件中調用特權API位置 前插入(4-1)生成的攻擊檢測代碼。
[0084] 本發(fā)明用于檢測Android權限提升攻擊的應用程序重寫系統(tǒng)包括:
[0085] 第一模塊,用于將用戶上傳的Android應用程序進行反編譯,以生成中間文件和 應用程序配置文件;具體而言,是采用反編譯工具apktool,該工具將Android應用程序包 文件(Android application package file,簡稱APK)反編譯成smali格式的中間文件以及 AndroidManifest. xml應用程序配置文件,其中應用程序配置文件定義了應用程序各個組 件的信息,組件包括行為(activity)、服務(service)、廣播接收機(broadcast receiver) 和內容提供商(content provider)。
[0086] 第二模塊,用于對第一模塊生成的中間文件插入調用鏈構建代碼,以使應用程序 在運打時自動地構建調用鏈;
[0087] 第三模塊,用于對第一模塊生成的中間文件插入調用鏈獲取代碼,以使應用程序 在運行時自動地獲取調用程序發(fā)送的調用鏈;
[0088] 第四模塊,用于對第一模塊生成的中間文件插入檢測代碼,以使應用程序訪問系 統(tǒng)敏感資源時自動地判斷是否存在權限提升攻擊;
[0089] 第五模塊,用于對第一模塊、第二模塊、以及第三模塊修改完的中間文件以及應用 程序配置文件重新打包成新的應用程序;
[0090] 第六模塊,用于對第五模塊生成的應用程序進行簽名,以使該應用程序能夠被安 裝到移動設備中。
[0091] 其中,第二模塊包括:
[0092] 第二十一模塊,用于自動生成調用鏈構建代碼,該代碼用于應用程序運行時產生 調用鏈并傳遞調用鏈到被調用程序;具體而言,調用鏈包含完成一個任務所經過的所有應 用程序信息(包括PID、WD等)以及這些信息的哈希值;
[0093] 第二十二模塊,用于從Android源碼或者開發(fā)者文檔中獲得Android框架層定 義的所有組件間通信(Inter-component communication,簡稱ICC)的應用程序編程接口 (Application Programming Interface,簡稱 API)信息;
[0094] 第二十三模塊,用于根據(jù)第二十二模塊獲得的ICC應用程序編程接口信息查找中 間文件中所有ICC API調用位置;
[0095] 第二十四模塊,用于根據(jù)所有ICC API調用位置在中間文件中調用ICC位置前插 入第二十一模塊生成的調用鏈構建代碼。
[0096] 第三模塊包括以下子步驟:
[0097] 第三十一模塊,用于自動生成調用鏈獲取代碼,該代碼用于應用程序組件啟動時 獲取調用鏈并驗證調用鏈的完整性;
[0098] 第三十二模塊,用于解析應用程序配置文件,以獲得中間文件的各個組件的文件 路徑;由于Android系統(tǒng)允許動態(tài)注冊廣播接收機組件,因此需要查找動態(tài)注冊廣播接收 機組件的中間文件以及其路徑;
[0099] 第三十三模塊,用于根據(jù)第三十二模塊獲得的文件路徑在中間文件的組件入口處 插入第三十一模塊生成的調用鏈獲取代碼。
[0100] 第四模塊包括:
[0101] 第四十一模塊,用于自動生成攻擊檢測代碼,該代碼用于檢測調用鏈上所有程序 是否含有權限;
[0102] 第四十二模塊,用于在Android系統(tǒng)中構建權限表,其包括所有特權API以及相應 的權限信息;具體而言,Android系統(tǒng)中提供了許多API給應用程序訪問系統(tǒng)資源,這些API 均由權限進行保護,因此在Android系統(tǒng)中構建了一個開源的權限表;
[0103] 第四十三模塊,用于根據(jù)第四十二模塊的權限表查找中間文件,以獲得應用程序 中所有調用特權API的位置;
[0104] 第四十四模塊,用于根據(jù)應用程序中所有調用特權API的位置在中間文件中調用 特權API位置前插入第四十一模塊生成的攻擊檢測代碼。
[0105] 本領域的技術人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以 限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含 在本發(fā)明的保護范圍之內。
【權利要求】
1. 一種用于檢測Android權限提升攻擊的應用程序重寫方法,其特征在于,包括以下 步驟: (1) 將用戶上傳的Android應用程序進行反編譯,以生成中間文件和應用程序配置文 件; (2) 對步驟(1)生成的中間文件插入調用鏈構建代碼,以使應用程序在運行時自動地 構建調用鏈; (3) 對步驟(1)生成的中間文件插入調用鏈獲取代碼,以使應用程序在運行時自動地 獲取調用程序發(fā)送的調用鏈; (4) 對步驟(1)生成的中間文件插入檢測代碼,以使應用程序訪問系統(tǒng)敏感資源時自 動地判斷是否存在權限提升攻擊; (5) 對步驟(2)、步驟(3)和步驟(4)修改完的中間文件以及應用程序配置文件重新打 包成新的應用程序; (6) 對步驟(5)生成的應用程序進行簽名,以使該應用程序能夠被安裝到移動設備中。
2. 根據(jù)權利要求1所述的應用程序重寫方法,其特征在于,步驟(1)是采用反編譯工具 apktool,其將APK反編譯成smali格式的中間文件以及AndroidManifest. xml應用程序配 置文件,其中應用程序配置文件定義了應用程序各個組件的信息,組件包括行為、服務、廣 播接收機和內容提供商。
3. 根據(jù)權利要求1所述的應用程序重寫方法,其特征在于,步驟(2)包括以下子步驟: (2-1)自動生成調用鏈構建代碼,該代碼用于應用程序運行時產生調用鏈并傳遞調用 鏈到被調用程序;; (2-2)從Android源碼或者開發(fā)者文檔中獲得Android框架層定義的所有ICC的API 信息; (2-3)根據(jù)步驟(2-2)獲得的ICC應用程序編程接口信息查找中間文件中所有ICC API 調用位置; (2-4)根據(jù)所有ICC API調用位置在中間文件中調用ICC位置前插入(2-1)生成的調 用鏈構建代碼。
4. 根據(jù)權利要求1所述的應用程序重寫方法,其特征在于,步驟(3)包括以下子步驟: (3-1)自動生成調用鏈獲取代碼,該代碼用于應用程序組件啟動時獲取調用鏈并驗證 調用鏈的完整性; (3-2)解析應用程序配置文件,以獲得中間文件的各個組件的文件路徑; (3-3)根據(jù)步驟(3-2)獲得的文件路徑在中間文件的組件入口處插入(3-1)生成的調 用鏈獲取代碼。
5. 根據(jù)權利要求1所述的應用程序重寫方法,其特征在于,步驟(4)包括以下子步驟: (4-1)自動生成攻擊檢測代碼,該代碼用于檢測調用鏈上所有程序是否含有權限。 (4-2)在Android系統(tǒng)中構建權限表,其包括所有特權API以及相應的權限信息; (4-3)根據(jù)(4-2)的權限表查找中間文件,以獲得應用程序中所有調用特權API的位 置; (4-4)根據(jù)應用程序中所有調用特權API的位置在中間文件中調用特權API位置前插 入(4-1)生成的攻擊檢測代碼。
6. -種用于檢測Android權限提升攻擊的應用程序重寫系統(tǒng),其特征在于,包括: 第一模塊,用于將用戶上傳的Android應用程序進行反編譯,以生成中間文件和應用 程序配置文件; 第二模塊,用于對第一模塊生成的中間文件插入調用鏈構建代碼,以使應用程序在運 行時自動地構建調用鏈; 第三模塊,用于對第一模塊生成的中間文件插入調用鏈獲取代碼,以使應用程序在運 行時自動地獲取調用程序發(fā)送的調用鏈; 第四模塊,用于對第一模塊生成的中間文件插入檢測代碼,以使應用程序訪問系統(tǒng)敏 感資源時自動地判斷是否存在權限提升攻擊; 第五模塊,用于對第一模塊、第二模塊、以及第三模塊修改完的中間文件以及應用程序 配置文件重新打包成新的應用程序; 第六模塊,用于對第五模塊生成的應用程序進行簽名,以使該應用程序能夠被安裝到 移動設備中。
7. 根據(jù)權利要求6所述的應用程序重寫系統(tǒng),其特征在于,第二模塊包括: 第二十一模塊,用于自動生成調用鏈構建代碼,該代碼用于應用程序運行時產生調用 鏈并傳遞調用鏈到被調用程序; 第二十二模塊,用于從Android源碼或者開發(fā)者文檔中獲得Android框架層定義的ICC 的API信息; 第二十三模塊,用于根據(jù)第二十二模塊獲得的ICC應用程序編程接口信息查找中間文 件中所有ICC API調用位置; 第二十四模塊,用于根據(jù)所有ICC API調用位置在中間文件中調用ICC位置前插入第 二十一模塊生成的調用鏈構建代碼。
8. 根據(jù)權利要求6所述的應用程序重寫系統(tǒng),其特征在于,第三模塊包括: 第三十一模塊,用于自動生成調用鏈獲取代碼,該代碼用于應用程序組件啟動時獲取 調用鏈并驗證調用鏈的完整性; 第三十二模塊,用于解析應用程序配置文件,以獲得中間文件的各個組件的文件路 徑; 第三十三模塊,用于根據(jù)第三十二模塊獲得的文件路徑在中間文件的組件入口處插入 第三十一模塊生成的調用鏈獲取代碼。
9. 根據(jù)權利要求6所述的應用程序重寫系統(tǒng),其特征在于,第四模塊包括: 第四十一模塊,用于自動生成攻擊檢測代碼,該代碼用于檢測調用鏈上所有程序是否 含有權限; 第四十二模塊,用于在Android系統(tǒng)中構建權限表,其包括所有特權API以及相應的權 限信息; 第四十三模塊,用于根據(jù)第四十二模塊的權限表查找中間文件,以獲得應用程序中所 有調用特權API的位置; 第四十四模塊,用于根據(jù)應用程序中所有調用特權API的位置在中間文件中調用特權 API位置前插入第四十一模塊生成的攻擊檢測代碼。
【文檔編號】G06F21/56GK104102880SQ201410307721
【公開日】2014年10月15日 申請日期:2014年6月30日 優(yōu)先權日:2014年6月30日
【發(fā)明者】金海 , 鄒德清, 王代斌, 徐鵬, 羌衛(wèi)中, 陳剛 申請人:華中科技大學