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

前言

" android:allowBackup"是一个是否允许备份系统和用户数据的属性。
当这个标志被设置为true时应用程序数据可以在手机未获取 ROOT 的情况下通过adb调试工具来备份和恢复。

案例分析

从应用商城里下载一个“密码本”之类的应用。

1. 使用AndroidStudio分析应用

“Build” 》“Analyze APK…”,选择对应的应用进行分析,关注包名allowBackup属性
《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第1张图片

若“allowBackup"属性为true,才能继续往下进行。

《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第2张图片

2. 安装应用

3. 使用adb命令导出该应用数据,过程中手机会要求设置密码,设置密码后点击”备份我的数据“

《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第3张图片

4. 使用abe工具解压ab文件

使用abe-all.jar文件解析ab文件为rar文件,jar包下载地址为:abe-all.jar
《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第4张图片

5. 查看备份文件

解压文件,查看里面有很多有用的数据文件,如数据库db文件和SharedPreference文件

《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第5张图片

查看一下数据库文件,里面有一条我之前保存的测试数据
《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第6张图片

查看一下sp文件中的xml,里面有我设置的数字密码虽然是加过密的
《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第7张图片

6. 修改内容并恢复数据

数据库文件稍作修改“pwd”字段修改为“23456789”并保存。恢复过程中要求输入密码,和之前一样就行

《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第8张图片

《Android 安全(一)》AndroidManifest.xml之allowBackup属性_第9张图片

7. 恢复结果

使用adb restore恢复数据后,应用内显示的数据依然是“234567”,也就是我们修改后的数据没有被接受。两方面认证:

  1. 重新导出数据(依然是“234567”)
  2. 将用于恢复数据的ab文件解析成rar文件(是我们修改后的“23456789”)

判断,恢复数据的时候,系统或者应用本身做了处理。

8. 结论

虽然我们最后修改数据并恢复,结果没有成功,但是作为一个“密码本”类的应用,可以知道看到用户储存的账号密码信息已经是相当恐怖了,并且此应用下载量还是挺高的。并且经过多个应用测试,好多应用的“allowBackup”属性均为true。可能是因为新建工程默认为true的原因吧。

你可能感兴趣的:(Android,基础知识)