首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓应用安全指南 4.2.3 创建使用广播接收器 高级话题

4.2.3.2 接收器在启动应用之前不会被注册 请务必注意,在AndroidManifest.xml中定义的静态广播接收器,在安装后不会自动启用 [7]。...应用只有在第一次启动后才能接收广播;因此,安装后无法使用接收的广播作为启动操作的触发器。...[7] 在 3.0 之前的版本中,接收器可以通过安装 App 自动启动。 4.2.3.3 私有广播接收器可以接收由相同 UID 发送的广播 应用 相同的 UID 可以提供给几个应用。...即使它是私有广播接收器,也可以接收从 UID 相同的应用发送的广播。 但是,这不会是一个安全问题。 由于可以确保 UID 相同的应用具有用于签署 APK 的一致的开发人员密钥。...然而,缺少权限导致接收/发送方的错误时,将输出错误日志。 由广播发送的意图信息包含在错误日志中,因此在发生错误之后,需要注意,发送广播时,意图的信息显示在LogCat中。

1K10

使用Drozer安卓调试手册

1、使用工具以及环境 Win10 夜神模拟器: python2 adb drozer agent.apk 2、工具安装 Python2和adb需要设置环境变量 Drozer需安装在python2的...Scripts目录下 把agent.apk安装到模拟器下 3、启动环境 打开agent.apk进行监听 使用命令adb devices找到我们的模拟器设备 (如果找不到设备,则需要在模拟器bin...获取广播接收器 dz> run app.broadcast.info -a com.mwr.example.browser 2....如果应用程序希望广播接收器捕获意图,然后显示经过身份验证的活动,则只有在登录后才能生成该广播。但是在代码审查之后,攻击者可以使用 drozer 手动发送该意图。...使用广播接收器的意图嗅探/捕获意图,这些接收器用于其他广播接收器 dz> run app.broadcast.sniff --action android.intent.action.BATTERY_CHANGED

1.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android 电量优化】电量优化 ( 充电状态获取 | 主动获取充电状态 | 广播接受者监听充电状态 | 被动获取充电状态 | 注册空广播接受者获取历史广播 )

    被动获取充电状态 : ① 监听方法 : 注册广播接受者 , 监听充电状态变化 ; ② 场景描述 : 当用户插拔数据线时 , 充电状态发生变化时 , 系统发出对应的广播 , 使用广播接受者接收这些广播 ;...广播接受者注册用法 : ① 注册广播接收者 : registerReceiver 方法主要作用是在主线程注册一个广播接收者 BroadcastReceiver 运行 ; ② 广播接收者调用 : 当注册的...IntentFilter 中的 action 匹配到相应的广播时 , BroadcastReceiver 会被在主线程调用 ; ③ 历史广播保存 : 系统发送完毕的广播 , 会被保存下来 , 在后续注册时发送...; ④ 广播复用机制 : 一旦有广播接收者注册广播 , 如果之前发送完毕的广播与本次注册的 IntentFilter 意图的 Action 匹配 , 次函数就会返回一个 Intent , 这个 Intent...⑥ 注册多个意图 : 如果在 IntentFilter 中注册多个意图 , 广播接收者如果不为空 , 则会处理每一个意图 , 但是返回值只能返回一个意图 , 返回哪个由系统决定 ; 广播接收者注册方法有两种功能

    2.5K00

    Android安全之应用层安全(五)

    但是,在介绍应用层之后,我们更容易解释 Android 的一些安全功能。 应用组件 Android 应用以 Android 软件包(.apk)文件的形式分发。...每个 Android 应用由四个组件类型的几个组件组成:活动(Activity),服务(Service),广播接收器(Boardcast Reciver)和内容供应器(Content Provider)...广播接收器。 广播接收器是应用的组件,它接收广播消息并根据所获得的消息启动工作流。 内容供应器。 内容供应器是为应用提供存储和检索数据的能力的组件。 它还可以与另一应用共享一组数据。...由于没有入口点,所有组件(广播接收器除外,它也可以动态定义)需要由应用的开发人员在AndroidManifest.xml文件中声明。 分离成组件使得我们可以在其它应用中使用组件。...当应用或系统组件使用sendBroadcast,sendOrderedBroadcast和sendStickyBroadcast方法发送特殊消息时,将启动广播接收器。

    1K20

    浅入浅出 Android 安全:第五章 Android 应用层安全

    但是,在介绍应用层之后,我们更容易解释 Android 的一些安全功能。 5.1 应用组件 Android 应用以 Android 软件包(.apk)文件的形式分发。...每个 Android 应用由四个组件类型的几个组件组成:活动(Activity),服务(Service),广播接收器(Boardcast Reciver)和内容供应器(Content Provider)...广播接收器。 广播接收器是应用的组件,它接收广播消息并根据所获得的消息启动工作流。 内容供应器。 内容供应器是为应用提供存储和检索数据的能力的组件。 它还可以与另一应用共享一组数据。...由于没有入口点,所有组件(广播接收器除外,它也可以动态定义)需要由应用的开发人员在AndroidManifest.xml文件中声明。 分离成组件使得我们可以在其它应用中使用组件。...当应用或系统组件使用sendBroadcast,sendOrderedBroadcast和sendStickyBroadcast方法发送特殊消息时,将启动广播接收器。

    54330

    Carson带你学Android:手把手教你学会广播组件-BroadcastReceiver

    模型讲解 模型中有3个角色: 消息订阅者(广播接收者) 消息发布者(广播发布者) 消息中心(AMS,即Activity Manager Service) 示意图 & 原理如下 5....5.2.3 两种注册方式的区别 5.3 广播发送者向AMS发送广播 5.3.1 广播的发送 广播 是 用”意图(Intent)“标识 定义广播的本质 = 定义广播所具备的“意图(Intent)” 广播发送...APK Intent.ACTION_PACKAGE_ADDED 成功删除APK Intent.ACTION_PACKAGE_REMOVED 重启设备 Intent.ACTION_REBOOT 屏幕被关闭...注:当使用系统广播时,只需要在注册广播接收者时定义相关的action即可,并不需要手动发送广播,当系统有相关操作时会自动进行系统广播 3....; 在广播发送和接收时,增设相应权限permission,用于权限验证; 发送广播时指定该广播接收器所在的包名,此广播将只会发送到此包中的App内与之相匹配的有效广播接收器中。

    66510

    安卓应用安全指南 4.2.2 创建使用广播接收器 规则书

    4.2.2.2 小心和安全地处理收到的意图(必需) 虽然风险因广播接收器的类型而异,但处理接收到的意图数据时,首先应该验证意图的安全性。...所以不要认为收到的意图在没有任何验证的情况下,是完全安全的。 内部广播接收机具有一定程度的风险,因此还需要验证接收意图的安全性。 请参考“3.2 小心和安全地处理输入数据”。...通过比较目标包中 APK 签名的开发人员密钥和白名单来发送广播,来确认允许的应用。 实际上下面的使用隐式意图的方法更实用。...当粘性广播变得不必要时,可以随时用removeStickyBroadcast()任意删除它。 由于在预设情况下,粘性广播被隐式意图使用。...当发送方(源)广播接收器是公共广播接收器时,它从未指定的大量应用接收返回数据。 所以它也可能会收到恶意软件的攻击数据。 当发送方(源)广播接收器是私有广播接收者时,似乎没有风险。

    84430

    安卓应用安全指南 4.2.1 创建使用广播接收器 示例代码

    使用广播接收器的风险和对策,根据收到的广播的类型而有所不同。 你可以在以下判断流程中找到你的广播接收器。 接收应用无法检查发送广播的应用的包名称,它是链接伙伴所需的。...要点(接收广播): 1) 将导出属性显式设为true。 2) 小心并安全地处理收到的意图。 3) 返回结果时,不要包含敏感信息。 公共广播接收器的示例代码可以用于静态和动态广播接收器。...当向公共广播接收器发送广播时,需要注意广播可以被恶意软件接收。...9) 导出 APK 时,使用与发送应用相同的开发人员密钥对 APK 进行签名。 内部广播接收器的示例代码可用于静态和动态广播接收器。...14) 需要接收器的内部签名权限。 15) 小心并安全地处理收到的结果数据。 16) 导出 APK 时,请使用与目标应用相同的开发人员密钥对 APK 进行签名。

    50020

    安卓软件开发_应用程序UI组件意外停止

    这个文件是分发应用程序和安装到移动设备的中介或工具,用户下载这个文件到他们的设备上。一个.apk文件中的所有代码被认为是一个应用程序。...2.3、广播接收者(Broadcast receivers) 一个广播接收者是这样一个组件,它不做什么事,仅是接受广播公告并作出相应的反应。...注意:如果你在Activity.onResume() 注册一个接受者,你应该在Activity.onPause()注销它。因为当暂停时你不会收到意图,注销它将削减不必要的系统开销。...有两种主要的可接受广播类型: 正常广播(由Context.sendBroadcast发送)是完全异步的。所有的广播接收者以无序方式运行,往往在同一时间接收。...接收者的运行顺序可由匹配的意图过滤器(intent-filter)的android:priority属性控制。 广播接收者不显示一个用户界面。

    1K10

    Android四大组件:BroadcastReceiver史上最全面解析

    4.3 广播发送者向AMS发送广播 4.3.1 广播的发送 广播是用”意图(Intent)“标识 定义广播的本质:定义广播所具备的“意图(Intent)” 广播发送:广播发送者将此广播的”意图“通过sendBroadcast...正确移除方法:设置–SD卡和设备内存–卸载SD卡) Intent.ACTION_MEDIA_BAD_REMOVAL 插入外部储存装置(如SD卡) Intent.ACTION_MEDIA_CHECKING 成功安装...APK Intent.ACTION_PACKAGE_ADDED 成功删除APK Intent.ACTION_PACKAGE_REMOVED 重启设备 Intent.ACTION_REBOOT 屏幕被关闭...注:当使用系统广播时,只需要在注册广播接收者时定义相关的action即可,并不需要手动发送广播,当系统有相关操作时会自动进行系统广播 3....; 在广播发送和接收时,增设相应权限permission,用于权限验证; 发送广播时指定该广播接收器所在的包名,此广播将只会发送到此包中的App内与之相匹配的有效广播接收器中。

    1.9K10

    咦,Oreo怎么收不到广播了?

    可是不论我是普通的将Apk install进去抑或是高贵的push到对应的system/priv-app/目录下,都收不到这个广播。心态,DUANG,炸了。...注册方式: 静态注册:也称为清单注册,就是在AndroidManifest.xml中注册的广播。此类广播接收器在应用尚未启动的时候就可以接收到相应广播。...意图明确,指定了要激活的组件是哪个组件,一般是在相同的应用程序内部实现的。...Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。一般是用于在不同应用程序之间。.../** 开机广播 Intent.ACTION_LOCKED_BOOT_COMPLETED Intent.ACTION_BOOT_COMPLETED */ "保留原因:这些广播只在首次启动时发送一次

    2K40

    Android 对apk进行重签名和查看签名(window 和mac)及生成签名

    直接运行keytool命令时不可行的 需要配置环境,将keytool.exe所在的目录配置到环境变量中 可以直接下jdk安装配置,也可以用as自带的目录:\jre\bin 命令:keytool...-list -v -keystore xxxx.keystore 即可得到如下示意图信息: 非解包的情况下:查看签名 keytool -list -printcert -jarfile app-release-sign.apk...先说一个简单的查看apk的签名信息: 第一步:将apk解压 第二步:找到META-INF 下的.RSA文件 第三步:在mac终端或者window控制器上输入命令: keytool -printcert.../liangzijishu/Desktop/天涯明月刀.apk [您的证书名称] 是指您创建密钥时您设置的证书名称 即仓库的别名 即sihaoGame 密码库密码是指 仓库密码 命令如下图:...签名后安装时出现此问题:是因为原来的apk带有v2签名,即首先需要去掉v2签名,然后再签名即可 以上信息:还要感谢我的好盆友及一位博主: 博主博客如下: https://www.jianshu.com

    6K20

    android学习笔记----自定义广播和系统广播

    自定义广播: 无序广播(标准广播): 是一种异步执行的广播,在广播发出之后,所有的广播接收器几乎在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。...,来看看运行结果: 在发送方的界面,点击发送无序广播,看到接收方的Toast显示出来了,接收到了广播 有序广播: 是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息...看见BroadcastReceiver有关意图广播的更多信息。 参数 intent Intent:广播的意图;所有符合这一意图的接收者都将收到广播。...,因为静态注册主要就是为了让程序在未启动的情况下也能接收到广播,而发送本地广播时,我们的程序已经启动了,因此也完全不需要使用静态注册的功能。...)方法中添加过多的逻辑或进行任何耗时操作,因为在广播接收器中是不允许开启线程的,当onReceive()方法进行了较长时间而没有结束时,程序就会报错。

    1.7K20

    Android6.0到9.0的适配爬坑总结

    那么在调用安装页面,或修改用户头像操作时,就会失败。那么就需要你去适配7.0或是将targetSdkVersion改为24以下(不推荐)。...7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。...在默认情况下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用 APK Signature Scheme v2 和传统签名方案来签署您的应用。...APK   首先在AndroidManifest文件中添加安装未知来源应用的权限:   这样系统会自动询问用户完成授权。...4.5 静态广播无法正常接收   问题原因: Android 8.0 引入了新的广播接收器限制,因此您应该移除所有为隐式广播 Intent 注册的广播接收器 解决方案: 使用动态广播代替静态广播 4.6

    2K30

    【Android 插件化】使用 PluginKiller 帮助应用开发者规避发布的 APK 安装包被作为插件的风险 ( 验证应用是否运行在插件化引擎中 )

    文件封装到虚拟机引擎中 , 冒充被封装的 APK ; 一、应用开发者规避 APK 安装包被作为插件 ---- 如果被封装的 APK 应用涉及到用户注册 , 登录 , 付费等信息 ; 用户在使用黑客制作的..., AMS 接收的 Activity 必须是在清单文件中注册过得组件 ; AMS 切换到主线程 ActivityThread 后会使用 hook 技术将 在清单文件中注册过得 " 桩 " Activity...不是插件中的组件 , 二者有区别的 ; 2、检查 运行时 信息 应用运行时会有一个 PID 和 UID ; PID 是 Process ID , 进程 ID ; UID 是 User ID , 用户 ID , 应用安装时自动分配的.../data/data/ 目录下生成对应包名的目录 , 检查该目录是否存在 ; 4、检查组件 在 AndroidManifest.xml 定义一个静态广播 , 静态广播是在应用安装时进行注册的 , 插件应用没有安装..., 因此想静态广播发送数据 , 肯定无法接收到 ; 运行时修改组件的 enable 属性 , DroidPlugin 无法在运行时实例化 enable = false 的组件 , 在组件注册时设置 false

    77120

    反插件化:你的应用不是一个插件(转)

    应用可以注册去接收特殊的广播。发送广播的手,系统会根据当时已经注册的广播接收者来寻找合适的接收者,然后进行广播转发。一个APP即可以静态注册广播,也可以动态的注册广播。...静态广播是在应用安装的时候注册的。在安装应用程序时,系统在解析AndroidManifest.xml的时候,会根据里面"intent- filter"标签来定义一个广播接收者。...应用也可以在代码中调用registerReceiver这个函数来动态注册广播接收者,动态广播接收者是与应用的生命周期息息相关。...由于动态广播接收者和静态广播接收者在拦截广播方面是相同的,所以插件不会特意去区分他们的不同。但是我们在运行时操纵接收者,还是能检测出变化的。...在真实的环境下,静态接收者还是有效的。但是在DroidPlugin创建的虚拟环境中,静态和动态的所有广播接收者都不可用了。

    1.7K20

    android:persistent和android:priority的区别,对进程优先级有什么影响?

    这个属性通常用于广播接收器(BroadcastReceiver),可以通过设置android:priority来定义接收广播的顺序和优先级。数值越高表示优先级越高。...虽然android:priority可以在某种程度上影响广播接收器的执行顺序,但它并不会直接影响进程的优先级。进程的优先级是由系统根据一系列的策略和算法来决定的,而不仅仅取决于某个组件的属性设置。...这适用于广播接收器。...确实,通过将自己的应用作为系统应用(安装目录为/system/apk/),并设置android:persistent="true"属性,可以实现持久性,即应用会在系统启动时加载,并在异常出现时自动重新启动...需要注意的是,这种方法只适用于将应用作为系统应用安装的情况,安装在/system/apk/目录下。

    1.8K10
    领券