对比重计的蓝牙通信进行逆向工程

逆向工程 安卓 加密 串行通讯 编码 协议
2021-07-03 00:18:18

这是一个非常具体的问题。

我目前正在开发一个项目,以创建一个能够通过蓝牙读取比重计值的 android 应用程序通过阅读数据表,我怀疑比重计使用串行通信。

首先,我在蓝牙管理器的帮助下连接了我的笔记本电脑,并尝试与串行终端进行通信通过反复试验,我在以十六进制发送字符“0x44”时设法收到了一些信息。唉,我收到的不是人类可读的,这是一个例子:

\0x11\0x1a\0x19D0L\0xda\0xae\0x9b \0xcc\0x01\0xa2q\0x13\0x00\0x13p:\0xcb(\0x8a\0x0c\0xf6\0xeb`#\0xbdv

然后,我使用BluetoothSerial一个 phonegap 插件通过蓝牙进行串行通信,并为 android 构建了一个小型测试应用程序,通过发送相同的字符 (0x44),我收到了一串奇怪的字符:

D0Lڮ� ���A��p���wn��
��� )

通过这 2 个实验,我相信信息可以被编码或加密。

阅读同一家公司的不同比重计PDF,我发送了以下内容(十六进制):

10 7B FD 78 16

我得到的是以下十六进制:

11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 31 13 00 13 70 66 76 0e 26 8b b9 8c 0c 47 b7 3c 09 0b 00 74 0f 00 00 ca 09
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 41 13 00 13 70 03 ba f2 77 6e 82 81 0d 08 ba c8 09 0b 00 7a 1f 00 00 6c 0a
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 51 13 00 13 70 14 95 bb dc 4f 51 58 d6 11 b8 49 0a 03 00 6a 2f 00 00 e5 0a
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 01 13 00 13 70 5f 07 d4 db e9 cd e6 61 6c b0 50 0b 0b 00 57 60 00 00 12 0c
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 11 13 00 13 70 48 28 9d 70 c8 1e 3f ba 75 b2 b5 09 0a 00 de 71 00 00 0e 0b

仅仅通过阅读PDF的附录 2M-BUS PDF,我无法从这个回复中找到任何意义。我知道,当为此设备使用现有的 android 应用程序时,我会获得它找到的设备的以下信息,例如:

  • C10SA202842
  • 电流:500 立方米
  • 存储:500 立方米
  • 日期:23/11/15/15 20:14

我也得到了以下回应:

11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 31 1c 00 13 9f 8d ba 81 19 d6 e2 a3 ad f0 53 30 0b 0e 00 a2 0c 00 00 ec 0b
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 41 1c 00 13 9f e8 76 7d 48 33 d9 ae ac bf 5e ba 0a 0d 00 55 1d 00 00 39 0b
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 51 1c 00 13 9f ff 59 34 e3 12 0a 77 77 a6 5c 9f 09 0d 00 e2 2c 00 00 ba 0a
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 61 1c 00 13 9f c6 28 ee 1e 70 7e 1d 1a 8d 5b 3b 09 10 00 df 3d 00 00 67 0a

对于不同的水测量单元,它检测到。android 应用程序在同一日期和(或多或少)时间以可读格式获得以下结果:

  • C14FA152455
  • 电流:0.027 立方米
  • 存储:0.027 立方米
  • 日期:23/11/15/15 18:32

如果我收到的确实是我所期望的,我怎么能找到以可读格式解码该信息的正确方法?

0个回答
没有发现任何回复~