一名研究人员成功识别出廉价 IP 摄像头的内部机制,以绕过其专有的云平台,旨在通过 ONVIF 标准启用本地视频流。该项目突显了固件分析如何揭示制造商通常对最终用户隐藏的硬编码 RTSP URL 格式和配置密钥。
固件提取与内核识别
调查始于使用 binwalk 工具提取摄像头的固件镜像。提取结果显示,该设备运行在 Linux 3.4.35 内核上,该版本最初于 2013 年 3 月发布。
在提取的文件系统中,研究人员识别出了初始化脚本和主要应用程序二进制文件 'ppsapp',该文件负责运行摄像头的核心功能。
“我们现在知道 ONVIF 流的 URL 格式,但我们仍需要知道它运行在哪个端口。”
— Taking another shot at the cheap IP camera, part 2
识别 ONVIF 和 RTSP 逻辑
通过对 'ppsapp' 二进制文件运行 'strings' 命令,研究人员确认了 ONVIF 服务器逻辑的存在,并识别出特定的 RTSP URL 格式:'rtsp://%s:%d/Streaming/Channels/101'。
这一发现证实,虽然 ONVIF 服务器已内置在固件中,但流端口在软件配置中默认是禁用的。

这张图片展示了研究人员解锁本地视频流的成功成果。
在 Ghidra 中反编译配置逻辑
使用 Ghidra 逆向工程工具,研究人员追踪了二进制文件如何处理 'onvif_enable' 配置密钥。分析显示,软件读取 'tuya_config.json' 来填充用于运动设置、密码和报警功能的内部数据结构。

此视觉效果支持了关于设备如何处理 ONVIF 配置密钥的技术分析。
反编译器显示 'onvif_pwd'(密码)被处理并存储在特定的内存位置中,这为设备如何验证本地访问尝试提供了路线图。
自动化分析的权衡与局限性
研究人员强调,虽然大语言模型(LLMs)可以大幅减少逆向工程的时间和成本,但它们可能会受到简单混淆的阻碍。例如,开发人员可能会使用位运算来隐藏密码字符串,使其无法通过简单的文本搜索。
虽然研究人员成功识别了 RTSP URL 格式和配置逻辑,但流的具体端口号仍是本次特定分析中未解决的细节。
Hacker News 读者的反应
- 亲身经验: 一位具有企业环境固件编写经验的评论者建议,缺乏完全混淆可能是因为开发人员仅做了最基本的工作以通过安全扫描,而非简单的疏忽。 评论 ↗
- 亲身经验: 一位读者指出,虽然研究人员使用 LLM 来查找密码,但该模型可能只是根据其他博客中发现的常见模式,识别出附近的未混淆字符串,如 "enter password"。 评论 ↗
- 亲身经验: 一位评论者分享了他们使用不同 AI 模型进行逆向工程的经验,指出某些模型在安全过滤方面比其他模型更具协作性,并且使用转售平台可以更容易地测试各种供应商。 评论 ↗
- 亲身经验: 一位使用无人机组件进行竞赛的评论者指出,低功耗、低延迟的视频流广泛可用且价格低廉,尽管信号质量可能会受到传输管道分辨率的限制。 评论 ↗
以上为 Hacker News 讨论中观点的摘要,并非经过核实的事实。 阅读完整讨论 ↗