An open-source multi-purpose tool for interacting with Controller Area Networks (CAN) used in vehicles and building automation.
CanCat is an open-source multi-purpose tool for interacting with Controller Area Networks (CAN), commonly used in vehicles, building automation, and industrial systems. It provides firmware for compatible CAN transceivers and a Python client to capture, transmit, and analyze CAN bus messages, enabling experimentation, diagnostics, and security research.
Security researchers, automotive engineers, reverse engineers, and hobbyists working with CAN bus systems in vehicles, building automation, or embedded devices.
CanCat offers a flexible, open-source alternative to proprietary CAN tools, with extensible Python scripting, support for multiple hardware platforms, and built-in modules for UDS and CCP protocols, making it ideal for custom analysis and research.
swiss army knife of Controller Area Networks (CAN) often used in cars and building automation, etc...
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple CAN transceivers including Arduino with SeeedStudio shield, Arduino DUE, and Macchina M2 variants, allowing flexible deployment for different use cases like vehicle or industrial systems.
Built-in UDS and CCP modules enable deep diagnostics and calibration, with scriptable functions for tasks like ECU scanning and DID discovery, as shown in the UDS module examples.
Python client allows full scripting and automation, such as scanning arbitration IDs or parsing captures, making it efficient for repetitive security research and reverse engineering tasks.
Can analyze saved CAN captures without hardware using the -f flag, enabling post-processing and data review for investigations or training scenarios.
Requires installing Arduino IDE, flashing firmware with specific sketches, and managing Python dependencies, which can be daunting for users unfamiliar with embedded toolchains.
Only compatible with a few CAN shields, and setups like CAN-in-the-Middle demand hardware modifications (e.g., cutting PCB traces), restricting accessibility and increasing maintenance overhead.
The README covers basics but lacks detailed guides for custom implementations or troubleshooting, relying on community knowledge for advanced features like CCP data acquisition.