我正在尝试找出这个 tplink C200 相机的 API 堆栈,它不是公开的。我可以使用 fiddler 和 Wireshark 相对轻松地找出大多数 Api 调用,但是在发现调用开始时的一些二进制帧让我感到困惑。
一旦用户第一次登录,Camera 的 android App 就会开始将此 udp 数据包广播到 255.255.255.255:
0000 ff ff ff ff ff ff 20 4e 7f d9 64 3e 08 00 45 00 ...... N..d>..E.
0010 02 11 08 88 40 00 40 11 b0 46 c0 a8 bf 65 ff ff ....@.@..F...e..
0020 ff ff cd ed 4e 22 01 fd 1e c3 02 00 00 01 01 e5 ....N"..........
0030 11 00 08 34 d4 be c1 46 b6 89 7b 22 70 61 72 61 ...4...F..{"para
0040 6d 73 22 3a 7b 22 72 73 61 5f 6b 65 79 22 3a 22 ms":{"rsa_key":"
0050 2d 2d 2d 2d 2d 42 45 47 49 4e 20 50 55 42 4c 49 -----BEGIN PUBLI
0060 43 20 4b 45 59 2d 2d 2d 2d 2d 5c 6e 4d 49 49 42 C KEY-----\nMIIB
0070 49 6a 41 4e 42 67 6b 71 68 6b 69 47 39 77 30 42 IjANBgkqhkiG9w0B
0080 41 51 45 46 41 41 4f 43 41 51 38 41 4d 49 49 42 AQEFAAOCAQ8AMIIB
0090 43 67 4b 43 41 51 45 41 33 72 4e 70 4f 66 6b 59 CgKCAQEA3rNpOfkY
00a0 35 35 4d 6a 32 62 6c 77 4e 39 6d 30 5c 6e 62 56 55Mj2blwN9m0\nbV
00b0 50 72 79 76 32 37 68 6c 61 7a 6f 46 37 78 4d 55 Pryv27hlazoF7xMU
00c0 46 4f 46 57 6b 62 63 61 6f 4a 41 67 6e 52 79 45 FOFWkbcaoJAgnRyE
00d0 36 42 56 30 77 70 47 71 68 79 4f 69 49 4f 72 34 6BV0wpGqhyOiIOr4
00e0 35 50 49 55 74 62 54 51 52 45 44 56 34 75 5c 6e 5PIUtbTQREDV4u\n
00f0 2b 4b 6f 55 75 6b 41 4c 71 6c 2f 42 42 6b 41 34 +KoUukALql/BBkA4
0100 76 67 6a 67 4f 55 45 30 79 53 74 36 74 77 61 79 vgjgOUE0ySt6tway
0110 6a 2b 6b 33 73 6e 6b 2f 56 70 49 6a 61 44 74 36 j+k3snk/VpIjaDt6
0120 32 6f 33 62 35 70 6e 44 4b 45 68 48 4c 56 45 66 2o3b5pnDKEhHLVEf
0130 5c 6e 79 6c 4a 30 6b 45 6e 58 4e 43 54 35 68 73 \nylJ0kEnXNCT5hs
0140 6b 64 68 39 66 59 38 78 74 6d 62 42 6d 57 31 47 kdh9fY8xtmbBmW1G
0150 2b 6e 54 6c 30 73 43 47 54 2f 75 75 77 65 31 6b +nTl0sCGT/uuwe1k
0160 74 67 45 78 7a 70 43 67 57 77 62 75 71 78 49 49 tgExzpCgWwbuqxII
0170 47 54 5c 6e 66 63 58 31 79 52 6d 54 73 77 37 53 GT\nfcX1yRmTsw7S
0180 66 73 5a 71 58 4f 61 39 50 6f 36 62 68 65 73 48 fsZqXOa9Po6bhesH
0190 4e 78 4c 33 48 53 52 35 72 43 6f 73 6f 6f 72 75 NxL3HSR5rCosooru
01a0 34 7a 67 71 6a 6b 64 62 42 2f 57 2b 46 71 6d 35 4zgqjkdbB/W+Fqm5
01b0 42 6d 71 50 5c 6e 44 51 75 4c 6b 49 6c 4c 4a 2b BmqP\nDQuLkIlLJ+
01c0 34 56 32 71 35 63 48 41 73 67 4d 54 38 48 52 78 4V2q5cHAsgMT8HRx
01d0 31 5a 74 50 75 55 54 78 45 49 66 55 49 4e 58 64 1ZtPuUTxEIfUINXd
01e0 41 57 67 4b 36 75 4d 75 4e 74 4d 4e 5a 56 4f 50 AWgK6uMuNtMNZVOP
01f0 6b 2f 71 54 31 30 5c 6e 72 51 49 44 41 51 41 42 k/qT10\nrQIDAQAB
0200 5c 6e 2d 2d 2d 2d 2d 45 4e 44 20 50 55 42 4c 49 \n-----END PUBLI
0210 43 20 4b 45 59 2d 2d 2d 2d 2d 5c 6e 22 7d 7d 00 C KEY-----\n"}}.
它每隔一段时间就会熄灭,直到相机回复。我试图模仿数据包但没有成功,因为我无法复制这些字节(数据帧的开头):
(002B->003A): 02 00 00 01 01 e5 11 00 08 34 d4 是 c1 46 b6 89
正如您在此之后立即注意到的 ASCII 可读消息开始({“params”:...),我重复了几次发现步骤,我注意到这些字节在某种程度上与 udp 发现的应用程序端的本地绑定端口有关消息是通过发送的,以下是我收集的示例:
Frame in udp packet port
0200000101e511000d554fad4de6fb2b 49411
0200000101e5110003ef2ad6767c88ee 49417
0200000101e511000c74622ed5e0246e 50248
0200000101e511000376feec3ed43466 50260
0200000101e51100046c5d74ee1a8de1 50797
0200000101e5110000503e7aa816e491 50802
0200000101e511000fdfc58e766d3742 52169
0200000101e511000e13aaabcd1a38ba 52332
0200000101e511000834d4bec146b689 52717
0200000101e511010000027822e38756 52956
0200000101e5110003e10659047571be 53370
0200000101e511000cbad8000079daf0 53500
0200000101e5110002e5bc217cb12739 57161
0200000101e511000922aa242d80ae84 58170
0200000101e511000d8945e5e21b2265 58421
0200000101e511000f97146569f2cbfe 58425
0200000101e511000d66c663c5ac4d69 59985
0200000101e511000105947d8d9e16f9 61818
0200000101e511000c9ed77f9024d65f 61879
0200000101e5110008b9a7fbc1624863 61927
0200000101e511000b3d5323ee84b6b7 62182
0200000101e511000f7b9b183a81ff80 62996
0200000101e511000da2e8028da2f46a 63043
0200000101e5110000c4390fbdc258e2 63046
我找不到关系,我尝试了几种不同的物联网协议和散列方法,有人知道这些是什么或它们是如何计算的吗?
PS那些端口号以某种方式在这些帧中编码,它应该是工业编码,简单的哈希或异或加密。任何想法?