最近主要学习的Android系统相关的知识,毕竟高版本系统特性我还没掌握全面,得加把劲跟进了
一方面研究短距离通信,像蓝牙和NFC,另一方面跟着大佬们的文章看源码,把虚拟机,包管理这些再仔细复习一波
蓝牙和NFC这部分跟着Alpha Team的大佬们学习,以下这两份资料非常不错,说实在的短距离通信这部分是我本科专业课,不过具体是ZigBee,平台实现上也有所不同,但是其思想都是大同小异的,协议栈这些一旦开始读文档就可以逐渐适应了,像C语言状态机,当看到对应的源码之后,还是熟悉的感觉
- https://github.com/JiounDai/Bluedroid
- https://github.com/hyrathon/HITCON2019
剩下的就是官方文档的问题,我找的是核心,之前的文章里提到过一次,Core_v5.1.pdf,里面很详细的讲解了蓝牙各种包的构成字段,我目前是对照着源码去学习
说到学习源码,我也同步在看谷歌安全公告上面关于蓝牙和NFC的漏洞,还是蛮多的,我分析了一部分,同时也可以学习下漏洞模型,感觉大同小异啊
最近出了一个蓝牙漏洞叫”Bluefrag”,我那天看到推上面有人在发这个漏洞,想着补丁很快就要被翻出来了
结果第二天谷歌就出了公告
启明星辰的ADLab针对这个漏洞发了一篇很详细的文章,说真的我很佩服这篇文章的作者,我目前对于蓝牙相关的漏洞分析都是纯代码逻辑,而不是功能逻辑,比如我只知道从哪个函数进来,哪个字段可控,进来后哪个switch/case
调用
- https://mp.weixin.qq.com/s/MgttHkorVd5UrW1Cnlc5Xw
补丁如下
- https://android.googlesource.com/platform/system/bt/+/3cb7149d8fed2d7d77ceaa95bf845224c4db3baf