智能硬件分析-京东来点光波入网
字数 1123 2025-08-22 18:37:22
京东"来点"智能按钮光波入网协议逆向分析教程
1. 设备背景
京东"来点"是一款类似亚马逊Dash Button的智能硬件设备,主要功能是:
- 通过物理按钮一键下单购买预设商品
- 独立完成Wi-Fi连接和下单操作(无需手机参与日常使用)
- 采用创新的"光波入网"方式进行初始配置
2. 光波入网机制分析
2.1 入网流程
- 用户扫描设备二维码下载京东APP
- 在APP中输入Wi-Fi名称和密码
- 按住设备按钮直到蓝灯闪烁
- 将设备放在手机屏幕中央特定区域
- 屏幕开始黑白闪烁(光波传输)
- 传输完成后设备灯变绿,入网成功
2.2 传输内容推测
光波传输至少包含以下信息:
- Wi-Fi名称(SSID)
- Wi-Fi密码
- 手机的IP地址(用于设备后续连接)
3. 光波协议逆向工程
3.1 数据采集方案
使用低成本硬件搭建采集系统:
- 光敏电阻模块(约2元)
- DO数字开关量输出(亮/暗判断)
- AO模拟电压输出(可选,本案例未使用)
- Arduino Pro Micro开发板
- 负责读取光敏模块数据
- 通过串口传输到电脑
3.2 硬件连接
- VCC → VCC
- GND → GND
- DO → D10
3.3 Arduino采集代码
int stat = HIGH;
unsigned long startTime;
void setup() {
Serial.begin(9600);
pinMode(10, INPUT); // 定义D10为输入
startTime = millis();
}
void loop() {
unsigned long curTime;
int value = digitalRead(10);
if(value != stat){ // 光照状态变化
curTime = millis();
stat = value;
if(stat == HIGH){ // 高电平:光照不足(黑)
Serial.print("0\t");
Serial.println(curTime-startTime);
startTime = curTime;
}else{ // 低电平:光照充足(白)
Serial.print("1\t");
Serial.println(curTime-startTime);
startTime = curTime;
}
}
}
3.4 数据分析
采集到的原始数据示例:
1 500
0 491
1 2010
0 481
1 2000
0 491
1 500
0 491
1 530
...
发现两种明显的时间长度:
- 约50毫秒(短)
- 约200毫秒(长)
3.5 协议解码
通过分析发现:
- 只有"1"信号有两种时长(50ms和200ms)
- "0"信号只有短时长(约50ms)
- 实际数据编码规则:
- 4个连续的"1"代表二进制"1"
- 1个"1"代表二进制"0"
- "0"信号仅作为间隔
解码PHP脚本:
$data = array();
$i = 0;
$ret = '';
$handle = @fopen("data.txt", "r");
while (!feof($handle)) {
$data[$i] = fgets($handle, 100);
$i++;
}
fclose($handle);
foreach ($data as $data) {
$arr = explode("\t", $data);
if ($arr[0] == "1") {
if ($arr[1] > 150) { // 区分长短信号
$ret .= "1";
} else {
$ret .= "0";
}
}
}
// 转换为ASCII
$str = '';
$hex = '';
$bin = '';
for ($i = 0; $i < strlen($ret) / 8; $i++) {
$tmp = substr($ret, $i * 8, 8);
$str .= chr(bindec($tmp));
$hex .= dechex(bindec($tmp))." ";
$bin .= bindec($tmp)." ";
}
3.6 协议结构
解码后数据示例:
?? T P - L I N K _ C 3 2 A D E 1 1 1 1 1 1 1 1
ac e 54 50 2d 4c 49 4e 4b 5f 43 33 32 41 44 45 8 31 31 31 31 31 31 31 31
c0 a8 1 89 22 a0 1
完整协议字段:
- Wi-Fi名称(TP-LINK_C32ADE)
- Wi-Fi密码(11111111)
- 标志位(ac,固定值)
- APP监听端口(22a0/8864,每次入网+2)
- 手机IP地址(c0 a8 1 89 → 192.168.1.137)
- 校验位(最后1字节)
4. 安全分析
4.1 潜在风险
- 光波传输未加密,可被中间人窃听
- Wi-Fi凭据以明文传输
- 设备可能被重定向到攻击者控制的服务器
4.2 防护建议
- 使用后及时修改Wi-Fi密码
- 在隔离网络中使用该设备
- 监控设备的网络行为
5. 扩展应用
基于逆向的协议,可以实现:
- 自定义光波发射器(模拟配置过程)
- 将设备重编程为其他用途(如IoT触发器)
- 开发第三方配置工具
6. 结论
京东"来点"的光波入网协议采用简单的二进制光信号编码,通过时长区分数据位。虽然实现巧妙,但存在明显的安全隐患。此分析为IoT设备安全研究提供了典型案例,展示了如何通过低成本硬件逆向分析专有无线协议。