尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Flipper Zero 复现 Heath/Zenith 遥控灯开关:315MHz Holtek HT12X 信号捕获、编码解析与全码回放指南

Flipper Zero 复现 Heath/Zenith 遥控灯开关:315MHz Holtek HT12X 信号捕获、编码解析与全码回放指南 Flipper Zero 复现 Heath/Zenith 遥控灯开关315MHz Holtek HT12X 信号捕获、编码解析与全码回放指南【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper本文以仓库 Sub-GHz/LED/Heath_Zenith_Light_Switch 目录下捕获的完整信号集为核心系统讲解 Heath/Zenith 遥控灯开关的射频协议Holtek HT12X 12 位静态编码、315MHz OOK、DIP 开关配对机制、48 个.sub键控文件的命名与字段结构并延伸到配套的 RAW 全码暴力破解集合Health_Remote_Light_Switch_Bruteforce与 Sub-GHz 播放列表组合方案。读完本文你将能够理解此类静态编码遥控设备的信号结构并掌握在 Flipper Zero 上直接回放、以及利用播放列表逐一试码来完成全码匹配的完整实战路径。一、系统全景315MHz 上的 12 位静态编码Heath/Zenith 遥控灯开关是一套典型的低成本 RF 无线控制系统其遥控端与接收器灯座/开关之间采用单向上行链路遥控器按键 → 编码芯片 → 315MHz OOK 射频 → 接收器解码 → 执行动作。原始捕获文档README.md明确指出Full capture of Heath/Zenith remote light switch. This system operates on a Holtek_HT12X 12 bit static code on 315Mhz两个关键事实协议芯片Holtek HT12X 系列编码器属于固定static码型不具备滚动码/加密机制编码内容不随时间变化因此一旦被捕获即可无限次原样重放。频段与调制工作在315MHz使用 OOK开关键控调制这是北美消费级遥控设备最常见的频段之一欧洲多为 433.92MHz。从仓库中实际捕获的 100.sub 可以看到Flipper 用到的完整射频参数是Filetype: Flipper SubGhz Key File Version: 1 Frequency: 315000000 Preset: FuriHalSubGhzPresetOok650Async Protocol: Holtek_HT12X Bit: 12 Key: 00 00 00 00 00 00 01 00 TE: 320Frequency: 315000000315 MHz、Preset: FuriHalSubGhzPresetOok650AsyncOOK、650kHz 带宽、异步预设、Protocol: Holtek_HT12X固件内置解码协议、Bit: 1212 位数据共同构成了该设备的完整空中接口画像。二、三种动作码Off / On / Dim 的编码规则该遥控器支持三种灯光操作原文档给出了极简的动作编码规律动作十六进制码值末位含义Dim调光以2结尾使灯进入可调光状态On开灯以1结尾点亮Off关灯以0结尾熄灭这一规律直接体现在仓库中每一个.sub文件的命名上——文件名末位十六进制数字即动作类型且与文件内Key字段的 12 位码值完全一致。例如100.sub→ 动作 OffKey: 00 00 00 00 00 00 01 00码值0x100101.sub→ 动作 OnKey: 00 00 00 00 00 00 01 01码值0x101102.sub→ 动作 DimKey: 00 00 00 00 00 00 01 02码值0x102三、DIP 开关配对机制与第 4 位被忽略的实测发现与大多数老式 RF 遥控设备相同Heath/Zenith 的遥控器和接收器通过板载 DIP 开关进行配对只有当发送端编码中的地址位与接收端 DIP 设置一致时接收器才会响应。原文档记录了捕获过程中的一个重要实测结论The remote and the receiver are paired using DIP switches. As it turns out, the number 4 DIP switch is ignored. For example, DIP 1110 is the same as DIP 1111.即第 4 个 DIP 开关是无效位DIP 拨成1110与拨成1111对接收器而言等价。这解释了目录中一个有意思的现象代表 4 位 DIP 组合的第二位十六进制数字0–F对应二进制0000–1111的16 种组合文件全部收录但其中E1110与F1111这两组代码彼此冗余——因为第 4 位被忽略二者触发的是同一个地址。从工程角度看这意味着该设备的有效 DIP 组合实际只有 8 种第二位十六进制数的高 3 位0–7与8–F两两等价捕获者选择将 16 种组合全部保留以覆盖不同批次接收器可能存在的位序差异也为后面的暴力破解方案提供了完整素材。四、文件命名规则与完整 48 码对照表目录 Sub-GHz/LED/Heath_Zenith_Light_Switch 内共收录48 个.sub文件命名规则为三段式十六进制XYZ第 1 位X固定为1是本型号编码中的固定高位段所有捕获均相同第 2 位Y取值范围0–F对应 4 位 DIP 开关组合其中第 4 位无效第 3 位Z0 Off、1 On、2 Dim。三者的组合关系为16 种地址 × 3 种动作 48 个文件且文件名直接等于文件内Key字段的 12 位码值十六进制。完整清单如下DIP 组合Off末位 0On末位 1Dim末位 20x00100.sub101.sub102.sub0x10110.sub111.sub112.sub0x20120.sub121.sub122.sub0x30130.sub131.sub132.sub0x40140.sub141.sub142.sub0x50150.sub151.sub152.sub0x60160.sub161.sub162.sub0x70170.sub171.sub172.sub0x80180.sub181.sub182.sub0x90190.sub191.sub192.sub0xA01A0.sub1A1.sub1A2.sub0xB01B0.sub1B1.sub1B2.sub0xC01C0.sub1C1.sub1C2.sub0xD01D0.sub1D1.sub1D2.sub0xE01E0.sub1E1.sub1E2.sub0xF01F0.sub1F1.sub1F2.sub注E与F两组因第 4 位 DIP 开关无效而互为冗余见第三节其余 14 组为实际可区分的地址。五、.sub键控文件格式逐字段解析以 1A2.subDIP 组合1010、Dim 动作为真实样本Filetype: Flipper SubGhz Key File Version: 1 Frequency: 315000000 Preset: FuriHalSubGhzPresetOok650Async Protocol: Holtek_HT12X Bit: 12 Key: 00 00 00 00 00 00 01 A2 TE: 320各字段含义与实战注意事项字段本仓库取值含义与说明FiletypeFlipper SubGhz Key FileFlipper 的键控信号文件类型区别于 RAW 时序文件由固件解码器按协议还原Version1文件格式版本号由 Flipper 固件定义Frequency315000000载波频率单位 Hz即 315 MHzPresetFuriHalSubGhzPresetOok650Async调制预设OOK 调制、650 kHz 射频带宽、异步模式是 315MHz 低速 OOK 设备的常用预设ProtocolHoltek_HT12X固件内置解码协议标识Flipper 据此自动按 HT12X 的帧结构同步头 12 位数据编解码Bit12有效数据位宽与协议一致Key00 00 00 00 00 00 01 A28 字节按键数据。该设备的 12 位码值集中在最后两个字节高 4 位为01、低 8 位为A2即 12 位码值0x1A2与文件名一一对应TE320基础时基time element单位微秒即 HT12X 编码中最短脉冲宽度约 320 µs两点补充说明TE 值的微小差异绝大多数文件的TE为320但个别文件如 1F1.sub记录为321。这属于捕获时晶振/采样引入的微小抖动不影响回放Flipper 解码器对时基存在容差。Key 与文件名的强绑定48 个文件全部满足Key末两位十六进制 文件名规则这使你可以脱离接收器仅凭 DIP 组合推断任意地址下的 On/Off/Dim 码值并在需要时手工构造新的.sub文件。六、在 Flipper Zero 上直接回放由于这些是固件可直接解码的键控文件使用非常直接将Heath_Zenith_Light_Switch目录整体复制到 Flipper Zero SD 卡的subghz目录下/ext/subghz/LED/Heath_Zenith_Light_Switch/在 Flipper 上进入Sub-GHz → Read读取界面选择对应的.sub文件通过Send发送功能回放Flipper 会按文件内的Frequency、Preset与Protocol字段自动配置射频参数并依据KeyBit调用 HT12X 协议栈完成编码发射。关键前提是接收器的 DIP 开关设置必须与所选文件码值对应。例如目标灯座 DIP 拨码为1010且想执行调光就选择 1A2.sub 发送。七、全码暴力破解RAW 捕获集与播放列表组合方案当目标接收器的 DIP 设置未知时仓库提供了配套的暴力破解素材Sub-GHz/LED/Health_Remote_Light_Switch_Bruteforce。其 README.md 说明This is a collection of simple RAW captures of all the codes from the Health/Zenith Remote Light Switch. You should be able to add these into a playlist or concatenate them together in a fancy way to make a simple bruteforcer.7.1 目录结构Health_Remote_Light_Switch_Bruteforce/ ├── on/ # 32 个 On 动作 RAW 捕获16 种 DIP 组合 × 2 个变体 └── off/ # 32 个 Off 动作 RAW 捕获16 种 DIP 组合 × 2 个变体每种码值提供两个变体_2后缀用于提高发射成功率、降低偶发丢包影响。7.2 RAW 文件与键控文件的区别与前述Key File不同RAW 文件如 1110_off.sub保存的是完整的脉冲时序采样Filetype: Flipper SubGhz RAW File Version: 1 Frequency: 315000000 Preset: FuriHalSubGhzPresetOok650Async Protocol: RAW RAW_Data: 2125 -166 2867 -66 10063 -66 ...Protocol: RAW意味着不做协议级解码直接按RAW_Data中正数 高电平脉宽、负数 低电平间隔微秒的时序原样重放优点是对解码器零依赖任何 OOK 信号都可原样复现兼容性最好代价是文件体积大一个捕获含数百个时序值、多行RAW_Data且无法像键控文件那样直观编辑码值。7.3 用播放列表串联成暴力破解器原文档明确建议将 RAW 捕获**加入播放列表playlist**顺序发射以枚举全部码值。仓库 subplaylist 目录提供了现成范例其 ReadMe.md 说明Sub-GHz Playlist 应用可依序播放多个.sub文件并支持循环RogueMaster / Unleashed 固件内置SD 卡上播放列表目录名为subplaylist。例如 Off_Please.txt 中针对本设备的条目格式为sub: /ext/subghz/LED/Health_Remote_Light_Switch_Bruteforce/off/0000_off.sub sub: /ext/subghz/LED/Health_Remote_Light_Switch_Bruteforce/off/0000_off_2.sub sub: /ext/subghz/LED/Health_Remote_Light_Switch_Bruteforce/off/0001_off.sub sub: /ext/subghz/LED/Health_Remote_Light_Switch_Bruteforce/off/0001_off_2.sub ...依次枚举 0000–1111 全部组合On_Please.txt 则对应on/目录的 32 个文件。将播放列表放入 SD 卡的subplaylist目录后在 Flipper 的Sub-GHz Playlist应用中加载并开启循环播放即可自动把 16 种 DIP 组合的 On或 Off码逐一发射直到目标接收器响应——这正是用播放列表拼凑出简单暴力破解器的落地实现。7.4 频率兼容性提醒暴力破解目录的 README 记录了一条实测经验捕获者用两种不同型号的 Heath 接收器做过验证部分接收器在 315MHz 下工作更佳另一些则需将频率调整到 310MHzNOTE: Ive tested these on two different styles of Heath receivers. You may need to adjust between 315mhz and 310mhz for your particular receiver. Some seem to work better with one or the other.因此若 315MHz 下发射无响应可尝试将.sub文件中的Frequency修改为310000000后再试。这同时也提醒读者全码捕获并不保证对每个批次/型号的接收器都 100% 有效实际使用需以目标设备实测为准。八、适用前提与使用边界协议性质本设备使用 HT12X 静态编码无加密、无滚动码捕获后可无限次复现这也是其码集能够被完整收录并公开共享的根本原因。合法使用本文所有素材仅适用于自有设备如自己家中的遥控灯的兼容性验证、学习射频协议与设备调试未经授权对他人设备发射信号可能违反当地无线电与隐私相关法规请自行承担相应责任。文件路径约定仓库中信号文件位于 Sub-GHz/LED/Heath_Zenith_Light_Switch播放列表引用时使用 SD 卡路径/ext/subghz/LED/...二者是仓库目录与设备 SD 卡挂载路径的对应关系注意区分。结语从 README.md 的寥寥数行技术摘要出发结合仓库内 48 个键控文件与 64 个 RAW 捕获文件可以完整还原 Heath/Zenith 遥控灯开关的整个射频链路315MHz 载波 OOK 调制 HT12X 12 位静态编码地址段由 DIP 开关决定第 4 位无效动作段以末位十六进制0/1/2区分 Off/On/Dim。无论是针对已知 DIP 组合的精确回放还是借助播放列表对未知地址的逐码枚举这套素材与方案都足够完整可平移复用到其他同类 HT12X 遥控设备上。【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表