前言

" 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的原因吧。

更多相关文章

  1. Android(安卓)一套完整的 Socket 解决方案
  2. unity与android交互(1)
  3. [转]Android(安卓)xmlns 的作用及其自定义
  4. Android(安卓)客户端与服务器交互方式
  5. 关于Android中传递对象发现问题随笔
  6. Android的ADT不能自动生成R.java
  7. Android资源文件Res详解——ShapeDrawable
  8. Android日记之2012\01\15
  9. 手动编译android项目

随机推荐

  1. 连周鸿祎和蒋涛都打call的书:Android安全
  2. Android(安卓)八款开源 Android(安卓)游
  3. java/android 设计模式学习笔记(23)---解释
  4. Android(六)Activity、请求码与结果码、Int
  5. [Android]关于换肤功能的遐想篇
  6. Android心得1.3--Android一些常见设置和
  7. [Inside 快訊] Android(安卓)2.3.3是目前
  8. android merge标签
  9. 「Do.014」Android(安卓)实战项目(5)—— g
  10. Android(安卓)换肤功能实现