How dawidkantowicz/virtual-can-hacking-lab works
Virtual CAN Hacking Lab is an educational, software-only automotive security lab. The learner follows setup and CAN fundamentals, then practices sniffing, mapping, and replaying traffic against ICSim before exploring UDS diagnostics with UDSim. The only sampled runtime code listens on vcan0 and prints received frames. The README also describes a planned UDS decoder; its implementation is not present in the tree. Documentation details beyond the README are not inferred.
Main entry points: 01-setup.md Environment setup · 03-icsim.md ICSim practice · read_can.py CAN frame reader · 02-can-basics.md CAN fundamentals
Components 13
Learning guides
- Lab overview
README.md - Environment setup
docs/01-setup.md - CAN fundamentals
docs/02-can-basics.md - ICSim practice
docs/03-icsim.md - UDS diagnostics
docs/04-uds.md - Decoder notes
docs/05-uds-decoder
Virtual lab
- SocketCAN vcan0
- can-utils
- ICSim target
- UDSim ECU
- CAN frames
Lab tooling
- CAN frame reader
scripts/read_can.py
Other components
- Learner
Connections 16
- Learner → Lab overview: reads overview
- Learner → Environment setup: follows setup
- Learner → CAN fundamentals: learns CAN
- Learner → ICSim practice: practices attacks
- Learner → UDS diagnostics: explores diagnostics
- Learner → Decoder notes: reviews roadmap
- Environment setup → SocketCAN vcan0: configures
- Environment setup → can-utils: sets up tools
- ICSim practice → ICSim target: guides practice
- ICSim practice → can-utils: uses tools
- ICSim target → SocketCAN vcan0: communicates over
- UDS diagnostics → UDSim ECU: guides exploration
- CAN frame reader → SocketCAN vcan0: listens on
- SocketCAN vcan0 → CAN frame reader: provides frames
- CAN frame reader → CAN frames: prints
- CAN fundamentals → can-utils: demonstrates tools