Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Vehicle Security and Car Hacking
  3. UDSim

UDSim

GPL-3.0C++

A GUI tool for simulating, learning, and fuzzing UDS (Unified Diagnostic Services) on vehicle CAN buses for security testing and training.

GitHubGitHub
326 stars101 forks0 contributors

What is UDSim?

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.

Target Audience

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.

Value Proposition

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.

Overview

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.

Key Features

  • Automatic Learning — Monitors CAN bus traffic to automatically identify and learn UDS-capable modules without prior vehicle knowledge.
  • Simulation Mode — Emulates learned vehicle modules, allowing diagnostic tools to function as if connected to a real car, useful for demos and training.
  • Built-in Fuzzer — Includes a basic fuzzing system to test devices by manipulating UDS responses, with configurable fuzz levels.
  • Peach Fuzzer Integration — Exports learned data to the Peach Fuzzer engine for advanced, structured fuzzing of automotive systems.
  • Configurable Modules — Supports custom configuration files to define ECU behavior, positions in the GUI, and response rules.

Philosophy

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.

Use Cases

Best For

  • Security testing dealership diagnostic tools for vulnerabilities
  • Training on automotive UDS protocols without physical vehicles
  • Simulating vehicle CAN networks for demo or presentation purposes
  • Fuzzing ECU responses to identify security flaws
  • Learning UDS module behavior from recorded CAN traffic logs
  • Integrating with Peach Fuzzer for structured automotive fuzzing

Not Ideal For

  • Projects requiring advanced, production-ready fuzzing frameworks with full support
  • Teams without CAN hardware expertise or access to setup virtual interfaces like vcan
  • Scenarios needing simulation of UDS commands not previously observed in traffic
  • Users seeking a plug-and-play tool with no compilation or dependency installation

Pros & Cons

Pros

Automatic Module Learning

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.

Flexible Simulation Mode

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.

Configurable ECU Behavior

Supports custom configuration files to define ECU positions in the GUI, response rules, and behavior, enabling tailored simulations for specific testing needs.

Peach Fuzzer Integration

Exports learned data to the open-source Peach Fuzzer engine for structured fuzzing, though integration is currently alpha and requires manual setup.

Cons

Limited Built-in Fuzzing

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.

Alpha-Stage Attack Mode

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.

Complex Advanced Setup

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.

Frequently Asked Questions

Quick Stats

Stars326
Forks101
Contributors0
Open Issues4
Last commit3 years ago
CreatedSince 2016

Tags

#can-bus#gui-tool#vehicle-diagnostics#security-testing#automotive-security

Built With

S
SDL2_image
M
Make
S
SDL2
S
SDL2_ttf
C
C++

Included in

Vehicle Security and Car Hacking4.2k
Auto-fetched 1 day ago

Related Projects

openpilotopenpilot

openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300+ supported cars.

Stars61,015
Forks10,922
Last commit1 day ago
openalpropenalpr

Automatic License Plate Recognition library

Stars11,406
Forks2,507
Last commit2 years ago
CANalyzat0rCANalyzat0r

Security analysis toolkit for proprietary car protocols

Stars792
Forks154
Last commit4 years ago
CANToolzCANToolz

CANToolz - framework for black-box CAN network analysis

Stars315
Forks15
Last commit8 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub