Android逆向之旅---Android中如何获取在非Root设备中获取应用隐私数据

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

               

一、前言

今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但是没想到这个属性会直接导致隐私数据的丢失。下面就来看一下这个属性的影响到底有多大。他的作用是什么?


二、Android中的allowBackup属性

1、allowBackup安全风险描述
Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中AndroidManifest.xml文件中的allowBackup属性值[1] ,其属性值默认是true。当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。

Android属性allowBackup安全风险源于adb backup容许任何一个能够打开USB 调试开关的人从Android手机中复制应用数据到外设,一旦应用数据被备份之后,所有应用数据都可被用户读取;adb restore容许用户指定一个恢复的数据来源(即备份的应用数据)来恢复应用程序数据的创建。因此,当一个应用数据被备份之后,用户即可在其他Android手机或模拟器上安装同一个应用,以及通过恢复该备份的应用数据到该设备上,在该设备上打开该应用即可恢复到被备份的应用程序的状态。

尤其是通讯录应用,一旦应用程序支持备份和恢复功能,攻击者即可通过adb backup和adb restore进行恢复新安装的同一个应用来查看聊天记录等信息;对于支付金融类应用,攻击者可通过此来进行恶意支付、盗取存款等;因此为了安全起见,开发者务必将allowBackup标志值设置为false来关闭应用程序的备份和恢复功能,以免造成信息泄露和财产损失。

2、allowBackup安全影响范围
Android API Level 8以及以上系统

3、allowBackup安全风险详情
1) allowBackup风险位置:

AndroidMannifest.xml文件android:allowBackup属性

2) allowBackup风险触发前提条件:

未将AndroidMannifest.xml文件中的android:allowBackup属性值设为false

3) allowBackup风险原理:

当allowBackup标志值为true时,即可通过adb backup和adb restore来备份和恢复应用程序数据


三、如何在非root设备上获取隐私数据

好了,上面我们就了解了,原来allowBackup属性的风险很大。下面我们看看现在如果这个属性是false的话,我们怎么在没有root的设备去获取数据呢?

首先我们看这样一个场景,现在市场上有一些应用锁类的app,他们就是给每个应用打开的时候添加一个密码,在打开app的时候需要输入密码才能进入指定的应用,一般会把自己的银行app,通讯类的app加密。现在市场上这些应用锁的原理也很简单,一般是三种方式实现:

1、最古老的方式,启动一个Service然后隔一段时间去轮训,获取当前的topActivity,然后进行操作。

2、因为Android5.0以后,获取当前的topActivity需要授权,所以这里还需要做一个操作就是引导用户去开一些功能。

3、通过辅助功能,可以监听当前Window的变化,这种方式比上面的轮训方式高效的多了。

其实1和2两种方式差不多,唯一的区别就在于获取topActivity的方式,其实google意识到了,获取topActivity是很危险的一件事:

在之前的一篇文章中说到了:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值