1、 StageFright介绍 Android froyo版本号多媒体引擎做了变动,新加入�了stagefright框架,而且默认情况android选择stagefright,并没有全然抛弃 stagefright是在MediaPlayerService这一层加入的,和opencore是并列的。 2、 StageFright数据流封装 2.1》由数据源DataSource生成MediaExtractor。 3、 StageFright的Decode 经过“数据流的封装”得到的两个MediaSource,事实上是两个OMXCodec。 5、 代码标记Log 根据第4》项StageFright描写叙述的Vide视频播放流程,作Log标记跟踪视频DATA获取、CODEC过程。
/媒体进程,管理媒体一些相关信息,关注较少 | | | |– mtp //文件夹操作媒体的相关东西 | | 再进一步,我们看一下stagefright |– stagefright | | | |– codecs //提供解码器实现 | | | |– colorconversion //颜色空间转换 | Java层通过JNI调用C++侧的mediaplayer相关接口 2.mediaPlayerService中创建服务器端客户端,分别实例化相关播放器,这里会把接口事件调用到具体的播放器如:本地媒体调用stagefright ,流媒体调用NuPlayerDriver 3.stagefright会调用AwesomePlayer相应接口,其实流媒体侧和本地媒体类似的,最后会调用Nuplayer 媒体事件类型 [cpp] view 模块结构图 1.mediaPlayerservice调用Stagefright相应的接口 2.Stagefright调用AwesomePlayer相应的接口 3.AwesomePlayer调用OMXCode
而提起 MediaCodec 不得不提的是下面两个框架: StageFright OpenMAX StageFright 基本介绍 MediaCodec 是提供给上层应用的 Java 接口,实际底层调用的是 StageFright 多媒体框架, StageFright 是 Android 平台预设的多媒体框架,自 Andorid 2.3 开始才被引入进来。 有可能会被 StageFright 取代。 OpenMAX 基本介绍 StageFright 底层编解码能力是由 OpenMAX 框架提供,StageFright 遵循 OpenMAX 标准,OpenMAX 全称是 Open Media Acceleration 通过上面介绍,我们知道 MediaCodec 是通过调用 StageFright 调用编解码功能,StageFright 又是通过 OpenMAX 与硬件层进行通信。
OpenMAX与StageFright框架层级的关系 StageFright框架通过OpenMAX与硬件层进行通信,图1是OpenMAX和StageFright的 层级关系图。 OpenMAX和StageFright的层级关系图 AwesomePlayer 与 OMX 的关系
据悉,这个新的安全漏洞是在 Stagefright 中被发现的,即 Android 的媒体和多媒体库。 其实在去年 10 月,在 Stagefright 中就已经出现过安全漏洞,导致了超过十亿的 Android 设备被影响。谷歌对此还专门发布过修复的补丁,但是仍然没有完全解决。
Response: RTSP/1.0 200 OK\r\n 状态码200用于接收成功 Date: Tue, 19 Nov 2019 12:35:04 +0000\r\n 时间信息 User-Agent: stagefright OPTIONS * RTSP/1.0\r\n 用于标记此条消息的用途是询问对方options Date: Tue, 19 Nov 2019 12:35:04 +0000\r\n 时间信息 User-Agent: stagefright Response: RTSP/1.0 200 OK\r\n 状态码200用于接收成功 Date: Tue, 19 Nov 2019 12:35:04 +0000\r\n 时间信息 User-Agent: stagefright 192.168.49.1/wfd1.0/streamid=0 RTSP/1.0\r\n Date: Tue, 19 Nov 2019 12:35:04 +0000\r\n 时间信息 User-Agent: stagefright //192.168.49.1/wfd1.0/streamid=0 RTSP/1.0\r\n Date: Tue, 19 Nov 2019 12:35:06 +0000\r\n User-Agent: stagefright
隐藏在Android心脏里的恐怖代码 Stagefright是一个运行在原生Android系统上的多媒体播放引擎,覆盖95%的安卓设备。 企业移动安全平台研究开发高级总监和Android黑客手册的作者,Joshua Drake,在大会上将发表“Stagefright:隐藏在Android心脏里的恐怖代码”的演讲。 Drake将描述所有他在Stagefright中发现的bug以及如何利用实施各种攻击,其中包括DOS和远程代码执行。 指纹劫持 ? 指纹身份验证很安全?
enum player_type { STAGEFRIGHT_PLAYER = 3, NU_PLAYER = 4, // Test players are available only \ \ player_type ret = STAGEFRIGHT_PLAYER player_type getDefaultPlayerType() { char value[PROPERTY_VALUE_MAX]; if (property_get("media.stagefright.use-awesome strcasecmp("true", value))) { return STAGEFRIGHT_PLAYER; } return NU_PLAYER; } 也就是如果设置了 property 是 media.stagefright.use-awesome,才会走到 StagefrightPlayer- Factory, 默认是 NuPlayerFactory。
在Android平台的核心组成部分Stagefright中发现了多处漏洞,Stagefright主要用来处理、播放和记录多媒体文件。
从Android 2.0版本开始,Google引入了stagefright框架,到2.3版本,完全替代了OpenCORE。 Stagefright框架的音视频同步做法是以音频流的时间戳作为参考时钟,视频流在render前进行同步处理。 从Android 4.0版本开始,Google引入了nuplayer框架,nuplayer主要负责rtsp、hls等流媒体的播放;而stagefright负责本地媒体以及 http媒体的播放。 在Android 4.1版本上,添加了一个系统属性media.stagefright.use-nuplayer,表明google用nuplayer替代stagefight的意图。
(2)安卓操作系统中的Stagefright漏洞,一条彩信即可控制整个设备。尽管谷歌很快就发布了修复补丁,但Zimperium之后又发现了Stagefright 2.0漏洞。 4.
自Android 2.0以来,谷歌推出了Stagefright,其架构略为简单。当然,它并没有完全放弃OpenCore。它主要构建了一个OMX层,该层仅指OpenCore的OMX组件。 有一种逐渐取代OpenCORE的趋势,但在今年8月,发现了一个Stagefright漏洞,该漏洞允许通过发送特制的MMS消息远程执行代码。
stagefright不只是用来播放媒体文件的,还能自动产生缩略图(thumbnail),或者从视频或音频文件中抽取元数据,如长度、高度、宽度、帧频、频道和其他类似信息。 这意味着无需用户执行一些恶意多媒体文件,只要复制这些文件,黑客即可利用stagefright漏洞发动攻击。
例如,search android stagefright可以找到针对Stagefright漏洞的利用模块。选择模块:根据目标设备的信息,选择一个合适的漏洞利用模块。 例如,如果你发现目标设备存在Stagefright漏洞,可以选择相应的模块,如use exploit/android/browser/stagefright_mp4_tx3g_64bit。
ALOGV(" create MidiFile"); p = new MidiFile(); break; case STAGEFRIGHT_PLAYER ALOGV(" create MidiFile"); p = new MidiFile(); break; case STAGEFRIGHT_PLAYER ALOGV(" create MidiFile"); p = new MidiFile(); break; case STAGEFRIGHT_PLAYER
无独有偶,Android最不安全的组件当属Mediaserver(媒体处理)组件,它每月都会被打补丁,其中Stagefright漏洞则最易遭到攻击。
OpenGL, OpenCL, Vulkan等 了解一种或多种开源多媒体框架,例如 Wayland/Weston, Gstreamer, DRM, SurfaceFlinger, AudioFlinger, StageFright
△利用Drammer漏洞在安卓6.0.1上的Root演示 第二个视频则是通过Stagefright的漏洞来拿Shell,再利用Stagefright这个Shell获取存在Drammer漏洞安卓机器的Root Stagefright+Drammer 获取Root权限演示 漏洞细节分析 看完演示视频我们一起来了解Drammer(Deterministic Rowhammer)漏洞的细节分析。 ?
失:Android遭遇Stagefright ? 今年,Android阵营由于Stagefright的出现而再度遭遇安全危机,这项安全漏洞允许攻击者利用一条简单的MMS(即多媒体短信)对设备进行远程操控。 尽管谷歌公司已经快速修复了这一问题,并指出Stagefright利用现象仅仅存在于实验室环境当中,但由于设备制造商及无线运营商无法保证其软件处于最新版本,因此用户往往得不到及时更新。
5年:Stagefright漏洞 ? 2015年7月,Stagefright库被爆出一个重大的安全问题,这个漏洞由于触发条件简单而备受关注。 Stagefright系列漏洞影响之大,危害之大,堪称移动界的“心脏滴血”。 产生漏洞的原因,都是因为对数据校验完善造成的。