【问题标题】:How to get started reverse engineering SpaceNavigator peripheral data stream?如何开始逆向工程 SpaceNavigator 外围数据流?
【发布时间】:2017-02-01 18:24:48
【问题描述】:

我正在玩 JavaFX 3D,我的 this 3Dconnexion peripheral 已经在抽屉里闲置了至少一年,我想用 Java 捕捉它的输入。

当我插入它时,我看到一个新文件:/dev/hidraw2

我可以hexdump 那个文件,每次我触摸设备时都会看到一堆二进制 gobbledeegook。例如:

hexdump < /dev/hidraw2
0000000 0103 0300 0000 0103 0300 0000 0103 0300
0000010 0000 0001 0000 0100 0200 0000 0000 0000
0000020 0001 0000 0900 0200 0000 0000 0000 0001
0000030 0000 1400 0200 0000 0000 0000 0001 0000

这个输入从三个左键单击开始,我可以清楚地看到那里重复的字节序列。然后我触摸了 3D 传感器,事情变得非常模糊。除了 hexdump,还有什么工具可以帮助我弄清楚如何解析这个?

顺便说一句,我开始搜索 Java spacenav 库,但没有找到任何有用的东西。

更新:这是单击 SpaceNavigator 顶部的输出。

01 f8  ff 14  00 55  00 02  00 00  15 00  00 00  01 00
00 b0  ff 04  00 02  a5 ff  00 00  00 00  01 00  00 00
00 4b  00 02  65 00  fe ff  00 00  01 00  00 bd  ff 00
00 02  d7 ff  08 00  00 00  01 00  00 1e  00 cd  ff 02
37 00  00 00  00 00  01 00  00 f1  ff 00  00 02  b8 ff
00 00  00 00  01 00  00 2b  00 14  00 02  26 00  00 00
00 00  01 00  00 f5  ff 00  00 02  d1 ff  00 00  00 00
01 00  00 19  00 f5  ff 02  2b 00  00 00  00 00  01 00
00 eb  ff 00  00 02  d9 ff  00 00  00 00  01 00  00 04
00 00  00 02  23 00  00 00  00 00  01 00  00 fe  ff 00
00 02  f3 ff  00 00  00 00  01 00  00 00  00 00  00 02
09 00  00 00  00 00  01 00  00 00  00 00  00 02  ef ff
00 00  00 00  01 00  00 03  00 00  00 02  08 00  00 00
00 00  01 00  00 00  00 00  00 02  f5 ff  00 00  00 00
01 00  00 00  00 00  00 02  07 00  00 00  00 00  01 00
00 00  00 00  00 02  f7 ff  00 00  00 00  01 00  00 00
00 00  00 02  07 00  00 00  00 00  01 00  00 00  00 00
00 02  f8 ff  00 00  00 00  01 00  00 00  00 00  00 02
05 00  00 00  00 00  01 00  00 00  00 00  00 02  fc ff
00 00  00 00  01 00  00 00  00 00  00 02  00 00  00 00
00 00  01 00  00 00  00 00  00 02  00 00  00 00  00 00
01 00  00 00  00 00  00 02  00 00  00 00  00 00  01 00
00 00  00 00  00 02  00 00  00 00  00 00  01 00  00 00
00 00  00 02  00 00  00 00  00 00  01 00  00 00  00 00
00 02  00 00  00 00  00 00

【问题讨论】:

  • 你想达到什么目的?检查按下了哪些按钮或...?
  • @GoXR3Plus 我想捕捉 X、Y 和 Z 旋转以及 X、Y 和 Z 平移。

标签: java linux 3d protocols reverse-engineering


【解决方案1】:

您下载了他们的 SDK 吗?据我所知,他们直接支持通过 Java 从他们的 API 读取所有这些值。

【讨论】:

【解决方案2】:

当我偶然发现数据帧的正确字节长度为 7 时,一切都变得更加明显。这个 hexdump 命令在每一行清楚地显示一个传入事件:

hexdump -v -e '7/1 "%02x "' -e '"\n"' </dev/hidraw2

我为解析流而编写的代码是 on bitbucket

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2017-03-29
    • 2018-05-27
    • 2010-09-11
    • 2011-07-24
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多