我试图确定以编程方式从 Pebble 手表卸载应用程序时发送的蓝牙字符串。我卸载了一个应用程序(在插槽 2 中)5 次,得到了 5 个相似但略有不同的字符串:
First Payload: 0b ef 2b 00 11 17 70 02 24 b0 a1 e5 f0 b1 44 0d 8e 53 8f 26 68 8a 3f 07 9a
Second Payload: 0b ff 2b 01 00 11 17 70 02 24 b0 a1 e5 f0 b1 44 0d 8e 53 8f 26 68 8a 3f 07 86
Third Payload: 0b ff 2b 02 00 11 17 70 02 24 b0 a1 e5 f0 b1 44 0d 8e 53 8f 26 68 8a 3f 07 86
Fourth Payload: 0b ff 2b 02 00 11 17 70 02 24 b0 a1 e5 f0 b1 44 0d 8e 53 8f 26 68 8a 3f 07 86
Fifth Payload: 0b ff 2b 02 00 11 17 70 02 24 b0 a1 e5 f0 b1 44 0d 8e 53 8f 26 68 8a 3f 07 86
有趣的是,最后 3 个有效载荷是相同的,但前 2 个与此不同。第一个字符串大不相同(也许是异常的,我不确定),但其他字符串仅在第 4 个八位字节中有差异。
继续分析此类数据的最佳方法是什么?我以前从未做过这样的逆向工程,但不幸的是,Pebble 没有提供用于以编程方式卸载应用程序的 API。
看起来前 3 个八位字节指定了要采取的操作(在这种情况下是卸载应用程序),但是 3 个八位字节对于指令来说是一个奇怪的大小(不是 2 的幂),所以我怀疑这是不正确的。
我的用例是我希望设计一个多态应用程序,最大限度地利用卵石的内存容量(在这种情况下,我可以完全填满 100K 插槽)。