Add NetMotion Mobility (IMP) protocol detection#3195
Merged
Conversation
IvanNardi
reviewed
Jul 14, 2026
| ========================= | ||
| NetMotion Mobility (formerly Mobility XE) is an enterprise mobile VPN that keeps sessions persistent across network changes, widely deployed in public-sector and first-responder fleets. Clients tunnel to the Mobility server using the Internet Mobility Protocol (IMP), by default over UDP/5008. | ||
|
|
||
| References: `Official site: <https://www.netmotionsoftware.com>`_ |
Collaborator
Contributor
Author
There was a problem hiding this comment.
I found this odd (unfortunate?) as well and dug a bit more.. it seems like NetMotion was maybe acquired by a company called Aboslute so I guess they abandoned the old domain? The only clients I've seen running are all still branded NetMotion and point to this old URL. I can dig more if you want but the new owner has very little useful info on their site.
IvanNardi
reviewed
Jul 14, 2026
IvanNardi
reviewed
Jul 14, 2026
Contributor
Author
|
Oops, I will fix the error here shortly. |
NetMotion Mobility (Mobility XE) tunnels clients to the Mobility server using the Internet Mobility Protocol (IMP), by default over UDP/5008. The payload is encrypted, but every datagram carries a fixed header: a 0x4c magic, a self-inclusive length prefix, a per-direction connection id plus sequence, and a per-direction session token. Detection verifies these framing invariants are constant within a direction and differ across directions, following the same stateful approach as the Hamachi dissector. Add NDPI_PROTOCOL_NETMOTION (VPN category) with the netmotion dissector and its unit test. The remaining unit-test results are regenerated because the new protocol id shifts the auto-numbered custom-rule ids and adds one dissector call per UDP flow. Signed-off-by: Chad Monroe <chad@monroe.io>
|
IvanNardi
approved these changes
Jul 14, 2026
IvanNardi
left a comment
Collaborator
There was a problem hiding this comment.
Thanks!
I simply rebased the code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Please sign (check) the below before submitting the Pull Request:
Link to the related issue:
Describe changes:
NetMotion Mobility (Mobility XE) tunnels clients to the Mobility server using the Internet Mobility Protocol (IMP), by default over UDP/5008. The payload is encrypted, but every datagram carries a fixed header: a 0x4c magic, a self-inclusive length prefix, a per-direction connection id plus sequence, and a per-direction session token. Detection verifies these framing invariants are constant within a direction and differ across directions, following the same stateful approach as the Hamachi dissector.
Add NDPI_PROTOCOL_NETMOTION (VPN category) with the netmotion dissector and its unit test. The remaining unit-test results are regenerated because the new protocol id shifts the auto-numbered custom-rule ids and adds one dissector call per UDP flow.
This feels a little hacky to me but I didn't see any other good way. I'm happy to look into it more if you don't like it.