智能硬件分析-京东来点光波入网
字数 1123 2025-08-22 18:37:22

京东"来点"智能按钮光波入网协议逆向分析教程

1. 设备背景

京东"来点"是一款类似亚马逊Dash Button的智能硬件设备,主要功能是:

  • 通过物理按钮一键下单购买预设商品
  • 独立完成Wi-Fi连接和下单操作(无需手机参与日常使用)
  • 采用创新的"光波入网"方式进行初始配置

2. 光波入网机制分析

2.1 入网流程

  1. 用户扫描设备二维码下载京东APP
  2. 在APP中输入Wi-Fi名称和密码
  3. 按住设备按钮直到蓝灯闪烁
  4. 将设备放在手机屏幕中央特定区域
  5. 屏幕开始黑白闪烁(光波传输)
  6. 传输完成后设备灯变绿,入网成功

2.2 传输内容推测

光波传输至少包含以下信息:

  • Wi-Fi名称(SSID)
  • Wi-Fi密码
  • 手机的IP地址(用于设备后续连接)

3. 光波协议逆向工程

3.1 数据采集方案

使用低成本硬件搭建采集系统:

  1. 光敏电阻模块(约2元)
    • DO数字开关量输出(亮/暗判断)
    • AO模拟电压输出(可选,本案例未使用)
  2. 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. 只有"1"信号有两种时长(50ms和200ms)
  2. "0"信号只有短时长(约50ms)
  3. 实际数据编码规则:
    • 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

完整协议字段:

  1. Wi-Fi名称(TP-LINK_C32ADE)
  2. Wi-Fi密码(11111111)
  3. 标志位(ac,固定值)
  4. APP监听端口(22a0/8864,每次入网+2)
  5. 手机IP地址(c0 a8 1 89 → 192.168.1.137)
  6. 校验位(最后1字节)

4. 安全分析

4.1 潜在风险

  1. 光波传输未加密,可被中间人窃听
  2. Wi-Fi凭据以明文传输
  3. 设备可能被重定向到攻击者控制的服务器

4.2 防护建议

  1. 使用后及时修改Wi-Fi密码
  2. 在隔离网络中使用该设备
  3. 监控设备的网络行为

5. 扩展应用

基于逆向的协议,可以实现:

  1. 自定义光波发射器(模拟配置过程)
  2. 将设备重编程为其他用途(如IoT触发器)
  3. 开发第三方配置工具

6. 结论

京东"来点"的光波入网协议采用简单的二进制光信号编码,通过时长区分数据位。虽然实现巧妙,但存在明显的安全隐患。此分析为IoT设备安全研究提供了典型案例,展示了如何通过低成本硬件逆向分析专有无线协议。

京东"来点"智能按钮光波入网协议逆向分析教程 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采集代码 3.4 数据分析 采集到的原始数据示例: 发现两种明显的时间长度: 约50毫秒(短) 约200毫秒(长) 3.5 协议解码 通过分析发现: 只有"1"信号有两种时长(50ms和200ms) "0"信号只有短时长(约50ms) 实际数据编码规则: 4个连续的"1"代表二进制"1" 1个"1"代表二进制"0" "0"信号仅作为间隔 解码PHP脚本: 3.6 协议结构 解码后数据示例: 完整协议字段: 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设备安全研究提供了典型案例,展示了如何通过低成本硬件逆向分析专有无线协议。