Jay 发布的文章

Matter 系列之 什么是 Matter?


目录 [隐藏]I. 前言II. 什么是 Matter ?III. 为什么选择 Matter I. 前言早在 CHIP 工作组成立之初,我在 开源 HomeKit ADK 文档中就表达对这新协议的兴奋。两年多时间一直在不间断跟踪学习,在其最后发布阶段。整理翻译了Google 关于 Matter 的初级读本系列开发文档。翻译为主,也谈了一些个人浅显理解。建议直接阅读原文和 Connected Home over IP Specification 以及阅读源码。https://developers.home.google.com/matter/get-startedII. ...

ZigBee 终端设备离线后脱离网络


目录 [隐藏]I. 理清思路不允许加入II. PermitJoin是如何控制TC的工作状态允许加入 I. 理清思路这里记录之前的一次异常处理,直接现象是多功能传感器(ZigBee End-Device,以下简称ZED)通过小米86盒开关 路由设备(ZigBee Router,以下简称ZR)关联加入网络很容易脱离网络。首先,需要理清的ZED在IEEE-802.15.4 规定为RFD (精简功能设备),精剪功能主要在不能中继数据,作为树状网络拓扑的终端存在,同时受限于功耗,通常会选择大部分时间休眠以节约功耗。为了保证设备休眠能够正常接收数据,所以接收数据的时候选择间接交易,也...

固件安全之 TF-A 和 SecureBoot


目录 [隐藏]I. TBBR-CLIENTII. 固件设计BL1BL2BL31BL33III. 证书链 这里详细介绍基于 ARMv8-A AArch64 固件安全相关,包含 TF-A(Trust Firmware A)。以及基于TF-A OEM厂商对 U-Boot 和 Kernel 实现的安全启动流程 SecureBoot。https://trustedfirmware-a.readthedocs.io/en/latestI. TBBR-CLIENThttps://developer.arm.com/documentation/den0006/latest对于 TF-A...

Linux capabilities


Linux capabilities对于权限细节参考man 7 capabilities;对于-+= eip操作符参考 man 3 cap_from_text;文档中命令setcap、getcap等都可以通过man命令查看;我需要在VS Code 调试NuttX应用,它的Sim应用需要cap_net_raw,cap_net_admin权限,否则就无法正常操作HCI设备。当然网上有一些帖子尝试将VS Code或者GDB运行在root用户,显然这样操作是非常不优雅的。所以这里尝试给需要调试的应用利用linux capabilities直接给可执行文件设置权限。$ sudo setcap 'c...

udp发送ip端口发送不可达


众所周知,udp是无连接的,所以忽略udp接收方状态,是否监听对应udp端口以及ip是否存在,直接向udp发送数据,会发生什么?为了搞清楚这个问题,我们尝试在局域网建立收发设备,然后抓包分析。端口不可达从抓包来看,udp数据正常发出。对端设备回复icmp指示端口不可达。ip 不可达当我们把接收端设备关机,此时udp数据正常发出,直到arp连续三次请求失败。此时抓包显示udp包已经不发送了。此时,我们跟踪sytem call 确定,发用户空间的sendto 接口仍然显示成功。sendto(3, "012345679abcdef\0", 16, 0, {sa_family...

一次无效的运维


目录 [隐藏]I. 恢复快照后不能上网II. 防火墙规则变化III. mac地址变化导致服务认证失败IV. 设备连接失败 这里记录一次无效的运维,称之为无效,更多的是我人为原因引起的。1月2号阿里云提示服务器执行恶意脚本,当时正在休元旦,直接忽略。1月4号上班的时候查看了完整提示,分析了启动上下文,确定服务器被redis恶意注入矿机脚本。能够被注入原因很简单,把无认证的redis直接暴露了在公网,因为该服务器是从其他公司过户过来,稳定运行了5年,接手后保持原来的端口安全策略也没有注意。http://65.108.48.150/f2201rr/f.sh第一时间分析了该脚本...

OpenID over OAuth2.0 详解


目录 [隐藏]I. OAuth2.0Spring Authorization ServerAccess TokensecurityII. OpenID OpenID over OAuth2.0 详解需要在Thingsboard上面加OAuth Server功能。如上是一开始的需求,但是随着深入理解,这里的OAuth Server并不正确,所以需要先科普知识。I. OAuth2.0对于OAuth ,参考OAuth2.0,里framework里面并没有定义OAuth Server 角色。它定义了4个角色Resource Ower;资源拥有者;Resource Server;资...

vscode 通过数据断点分析segmentation fault


vscode 通过数据断点分析segmentation fault通常地,程序异常,我们借助vscode在ubuntu主动调试,程序会自动在异常代码位置停下来,但是异常分析通常不会这么简单,而是一连串连锁反应。这里尝试分析,因为程序异常,非法写入了一段正常内存,从而导致多个链路之后异常发生。而对于此问题,最常使用的调试手段就是添加数据断点。通常直接在某段代码位置添加的代码为函数断点,程序会自动在该位置停下来。同样地,我们可以添加条件断点:当某个判断条件(例如,变量值为真)满足的时候;当某段代码连续执行N次的时候;当某个变量(内存)被读写的时候;如上前两个条件断点,vsocde 里面的c/...

socat


目录 [隐藏]I. 地址规范地址关键字地址选项II. 样例远程访问目标机器的unix-domain socket监听unix socket重定向串口 socathttp://www.dest-unreach.org/socat/。提示:如下翻译来自 man 1 socat,未完待续……概述socat 是一个命令行工具,用以建立一个双向字节流交换数据。该字节流又可以被构造成不同地址类型,大量的地址选项也同样可以被作用于该流,因此socat非常强大。filan 是一个打印文件描述符的工具,已经被重构用以调试socat,当然,也可以另做它用。procan 是一个打印进程信息的工具...

学习uboot中 U_BOOT_CMD命令参数编程


get uboot U_BOOT_CMD usage学习到一个奇淫技能,这里总结如下。方便以后工程实现。在uboot中大量的命令交互,这些命令都对应其参数、help、和命令处理函数。通常做法去解析参数名称后遍历每一个命令名称,选择执行。也就是通常的switch、case做法。uboot给出了不一样的操作。先看uboot怎么做。定义命令处理函数;cmd/version.c#L17static int do_version(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { ch...