Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsupported filter commands prevent make_leap_usbinit.sh from succeeding #6

Open
elbowdonkey opened this issue Jun 2, 2020 · 0 comments

Comments

@elbowdonkey
Copy link

I've been looking for any code that may allow for some Leap Motion hacking on non Windows OSes. The company seems to only support Windows platforms now, where the word "support" is being generous.

While I realize this is a crazy old repo with zero activity, but maybe someone will run across this like I did and be able to provide some insight.

When I try to run make_leap_usbinit.sh I see these errors:

%> ./make_leap_usbinit.sh 28 leap-init.pcap > leap_libusb_init.c.inc

tshark: Lua: Error during loading:
usb_c.lua:30: Error while registering tap:
Filter "usb.device_address == 28 and usb.transfer_type == 0x02 and usb.endpoint_number.direction == 0 and usb.setup.bRequest == 1" is invalid - Neither "usb.endpoint_number.direction" nor "0" are field or protocol names.
tshark: Neither "usb.endpoint_number.direction" nor "0" are field or protocol names.

I know very little about Wireshark filters, but from what I can tell, the latest version of Wireshark (3.2.4) no longer supports one of the filters being applied.

The Wireshark docs show that usb.endpoint_number.direction is supported in 1.6.0 to 2.2.17.

usb.transfer_type and usb.setup.bRequest are supported in 1.0 to 3.2.4.

Is there a newer way to express usb.endpoint_number.direction? I can't seem to find anything describing what replaces it, if anything.

It's worth noting that I can capture and view packets just fine in Wireshark. The closest filters I can find to usb.endpoint_number.direction, at least in terms of the name, are usb.endpoint_address.number and usb.endpoint_address.direction.

After capturing USB packets on all devices (with the Leap Motion unplugged at first, then plugged in), when running this filter...

(usb.darwin.device_address == 34) && (usb.endpoint_address.direction == 0)

... I do see packets.

But with usb.setup.bRequest == 1 added, I see no packets.

If I do...

(usb.darwin.device_address == 34) && (usb.setup.bRequest)

... I see any packets where usb.setup.bRequest is present, irregardless of the value. None of those packets show usb.setup.bRequest as being equal to 1.

I know very little about USB, but is it possible that these differences I'm seeing are OS related? Does Wireshark interpret USB packets differently on macOS? Or is this a case of Wireshark changing enough such that the tools in this repo need some updating?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant