android - 来自 p2p wifi spy 相机的 H264 数据包

标签 android linux reverse-engineering h.264 bytestream

我有 2 个 p2p wifi spy 相机模块。他们在局域网内工作,但不在局域网外工作,因为他们使用的服务器有问题。它们通过适用于 Android 的 BVCAM 或适用于 Windows 和 IOS 的类似软件工作,但不适用于 Linux。我试图了解它们的工作方式并将它们与 Linux 一起使用。我尝试使用 wine 来使用 BVCAM 但没有成功,而且它们没有 Web 界面。 摄像头模组为FH-W1 V1.1,采用富瀚wifi芯片88W8801和必联电子DSP BL-R8801。他们没有数据表。 我用wireshark捕获局域网内的UDP数据包,并试图了解它们与APP通信的方式。据我了解,他们交换一些小数据包进行通信,并在相机发送更大的数据包之后。我认为它们是视频流。它不是 RTP,它是字节流,我想了解它并对其进行解码。我发布了第一个“大”数据包(我删除了 eth 和 ip header ),我将 udp header 留在了前 8 个字节,从第 9 个 0x03 开始​​,我认为是流

c002bebf0078c8a4003006a010100000001000000d82000004a01000045010000010000004001f000705a0d0003000001a000000001419a0006000c233f0378aa3c658b4c96d4c46a3b5e8ae077097cc1de446be78425c892df1088882bf3fd2eb02b1446b5e61fc46df7f99566286cbdd572c0be7137ce6a377472e4a18be26feded27666fd40ddfe8568c3dcbe846d698843f1b74cfd6d716c6f52864c3ae66895e7d5d62ba7628e869f1cbdc185c97fc2c002a0ffe2fe546cd0a9f914a6fa8ff97d8ca0f313d0fa0d955c979be97aed6a7489e36ea8b99eb50cb1e67a4431bc1a4e0d1cbb91544297aafe69b64c5a4f6067bd4d55328ab638f110a0a4242153459d7f433ede364f62af0fcf78c62d5fc3e56742eb48320c7a542cfba9406c7ced098268c5c49364cb5b42c00aaceb8ccf837c41a2b88188691363917d6742e362cb4a9770bbefa8bb267bddc302e50fd344b147b879f98985aaf144099b04aa88ce474c3fe5c1075f3f2b06e7c9939ece598859ac0

在两个设备端口 10210 和 17900 交换的小数据包,来自相机的 49154 流和来自手机的随机端口接近 49000 的流。 我认为相机和应用程序之间交换的小数据包是为了“满足彼此”的设备,并且在来自应用程序的一些 ACKS 之后,相机将继续传输,否则它会停止传输。我认为如果我们解码流之后很容易复制消息并使用应用程序发送它们。 我的问题是 有人可以帮助我了解中国人使用的协议(protocol)吗? NAL 从哪里开始等。我反编译了应用程序,我在一个函数中看到了 H264/AVC,但主要解码是使用 libZGP2PComm.so Android 的 c 库进行的。

也有声音,所以我想到了 mp4 流。

请原谅我糟糕的英语。我也是计算机技术员,但不是程序员。

最佳答案

网络转储分析:

  1. 每个数据包都有从相机源发送的冗余/重复数据包。

  2. 在 H.264 数据开始之前有一个 9 字节的 header - 需要进一步分析(libZGP2PComm.so - Peer 2 Peer communication) - 可以是专有协议(protocol)。

  3. 所有视频数据包(00 00 00 01 NALU 数据)都有起始码。

  4. SPS 和 PPS 视频数据也可用于视频解码。

我会根据进一步的分析更新答案。

关于android - 来自 p2p wifi spy 相机的 H264 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58670712/

相关文章:

reverse-engineering - 如何检查正在发布的表单数据?

android - Recyclerview - smoothScrollToPosition 到列表顶部,然后动画添加项目

java - Android - 更改方向时不使用横向布局

python - 将最佳拟合及其方程放入绘图中

android - 有没有办法在没有源代码的情况下替换 APK 中的库

c++ - 如何对 C++ 项目进行逆向工程?

android - 如何让我的应用程序出现在 Whatsapp 画廊 ShareIntent Provider 中

Android:禁用 View 获得焦点

linux - 我的代码有什么问题,为什么不将大写字母 G 的 "EVERY INSTANCE"替换为 Gb,

linux - LKML 邮件列表 RSS 提要?