A GUI tool for simulating, learning, and fuzzing UDS (Unified Diagnostic Services) on vehicle CAN buses for security testing and training.
UDSim is a graphical simulator and fuzzer for Unified Diagnostic Services (UDS) on vehicle CAN buses. It allows users to monitor CAN traffic, automatically learn connected devices, emulate vehicle modules for testing, and perform security fuzzing on diagnostic tools. It solves the problem of needing physical vehicles or hardware for automotive security research and training.
Automotive security researchers, penetration testers, vehicle diagnostic tool developers, and trainers who need to simulate or test UDS communications without direct access to a vehicle.
Developers choose UDSim for its ability to automatically learn UDS modules from live or recorded CAN traffic, its integrated simulation and fuzzing modes, and its flexibility in supporting both basic testing and integration with advanced fuzzing frameworks like Peach.
UDSim is a graphical simulator and fuzzer for Unified Diagnostic Services (UDS) on vehicle CAN networks. It enables security researchers, automotive engineers, and trainers to emulate vehicle modules, learn network behavior from live or recorded traffic, and test diagnostic tools for vulnerabilities.
UDSim is designed as a practical, accessible tool for automotive security research and education, balancing ease of use with the flexibility needed for in-depth testing and simulation.
Listens to live or recorded CAN traffic to identify UDS-capable modules without prior vehicle knowledge, as highlighted in the Learning mode section, working on any vehicle using ISO-TP.
Emulates learned vehicle modules for demos and training, allowing diagnostic tools to function as if connected to a real car, useful for presenters and educators.
Supports custom configuration files to define ECU positions in the GUI, response rules, and behavior, enabling tailored simulations for specific testing needs.
Exports learned data to the open-source Peach Fuzzer engine for structured fuzzing, though integration is currently alpha and requires manual setup.
The built-in fuzzer is described as 'very limited' in the README, with only basic fuzz levels implemented and higher levels marked as TBD, making it unsuitable for advanced testing.
Attack mode and Peach integration are in alpha, with known bugs like the Mono socket issue that breaks CAN publishing, requiring workarounds and making it unreliable.
Integrating with Peach Fuzzer requires compiling from source, copying files, and managing dependencies, as detailed in the 'For Attack Fuzzing' section, adding overhead for researchers.
openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300+ supported cars.
Automatic License Plate Recognition library
Security analysis toolkit for proprietary car protocols
CANToolz - framework for black-box CAN network analysis
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.