Drivox-Canre
A CAN bus reverse-engineering tool for the CANalyst-II USB adapter on Linux
- Status
- Research
- Version
- 0.1.0
- Platform
- Library / CLI
- License
- MIT
The CANalyst-II is a proprietary ControlCAN USB device that SavvyCAN has no driver for, and the usual bridge workaround leaves two programs fighting over one USB handle with two unsynchronised recordings. This tool makes one process own the adapter and treats the dashboard, CSV and SavvyCAN feed as consumers of that single stream.
How it is put together.
Drivox-Canre records both CAN channels of a CANalyst-II adapter to CSV, shows a live terminal dashboard, and lets a passenger tag events with hotkeys while the vehicle is moving. Offline, it turns a recorded session into a byte-level analysis, per-marker evidence and a DBC file exported from a YAML hypothesis registry. One process owns the adapter and republishes the live capture onto virtual SocketCAN interfaces so SavvyCAN can watch the same session.
- 1
Capture backends
canalystii, panda, replay and mock sources
drivox_canre/capture/ - 2
Sinks
Secondary consumers of the live stream (vcan republish)
drivox_canre/sinks/ - 3
Live dashboard
Terminal dashboard and raw keyboard input for markers
drivox_canre/tui/ - 4
Core analysis
State, byte classifier, periodicity, word detection, markers, windows
drivox_canre/core/ - 5
Offline pipeline
Session to analysis to evidence to DBC
drivox_canre/pipeline.py - 6
Hypotheses and DBC export
YAML signal registry with confidence levels; DBC output via cantools
drivox_canre/dbc_export.py
Specification.
- Capture
- Both CANalyst-II channels from one device handle; auto-reconnect with dropout gaps recorded in session metadata
- Backends
- canalystii, panda, replay, mock
- Live dashboard
- Terminal UI (works over SSH): per-ID count, rate, periodicity class, changed-byte highlighting
- Event markers
- Single-key hotkeys for brake, regen, drive mode, AC, headlights, turn signals, drive phases
- Byte analysis
- Constant / toggle / counter / low-entropy / high-entropy classifier; 16-bit word detection; periodicity classes
- Marker-window diffs
- Bytes changed before vs after each tagged event, ranked
- DBC export
- From a YAML hypothesis registry with confidence levels; defaults to medium and above
- SavvyCAN feed
- Republishes onto vcan0 / vcan1 and writes SavvyCAN connection settings
- Runs on
- Python CLI (drivox-canre console script in pyproject.toml) with a terminal dashboard; Linux-only, needs SocketCAN/udev/systemd
Log.
- Drivox CAN-RE publishedCAN reverse-engineering tool for the CANalyst-II adapter.