1. 程式人生 > >《Android 安全(一)》AndroidManifest.xml之allowBackup屬性

《Android 安全(一)》AndroidManifest.xml之allowBackup屬性

前言

" android:allowBackup"是一個是否允許備份系統和使用者資料的屬性。
當這個標誌被設定為true時應用程式資料可以在手機未獲取 ROOT 的情況下通過adb除錯工具來備份和恢復。

案例分析

從應用商城裡下載一個“密碼本”之類的應用。

1. 使用AndroidStudio分析應用

“Build” 》“Analyze APK…”,選擇對應的應用進行分析,關注包名allowBackup屬性
在這裡插入圖片描述

若“allowBackup"屬性為true,才能繼續往下進行。

在這裡插入圖片描述

2. 安裝應用

3. 使用adb命令匯出該應用資料,過程中手機會要求設定密碼,設定密碼後點擊”備份我的資料“

4. 使用abe工具解壓ab檔案

使用abe-all.jar檔案解析ab檔案為rar檔案,jar包下載地址為:abe-all.jar

5. 檢視備份檔案

解壓檔案,檢視裡面有很多有用的資料檔案,如資料庫db檔案和SharedPreference檔案

檢視一下資料庫檔案,裡面有一條我之前儲存的測試資料

檢視一下sp檔案中的xml,裡面有我設定的數字密碼雖然是加過密的

6. 修改內容並恢復資料

資料庫檔案稍作修改“pwd”欄位修改為“23456789”並儲存。恢復過程中要求輸入密碼,和之前一樣就行

7. 恢復結果

使用adb restore恢復資料後,應用內顯示的資料依然是“234567”,也就是我們修改後的資料沒有被接受。兩方面認證:

  1. 重新匯出資料(依然是“234567”)
  2. 將用於恢復資料的ab檔案解析成rar檔案(是我們修改後的“23456789”)

判斷,恢復資料的時候,系統或者應用本身做了處理。

8. 結論

雖然我們最後修改資料並恢復,結果沒有成功,但是作為一個“密碼本”類的應用,可以知道看到使用者儲存的賬號密碼資訊已經是相當恐怖了,並且此應用下載量還是挺高的。並且經過多個應用測試,好多應用的“allowBackup”屬性均為true。可能是因為新建工程預設為true的原因吧。