awesome-canbus

授权协议 CC0-1.0 License
开发语言 C/C++
所属分类 其他开源、 嵌入式操作系统
软件类型 开源软件
地区 不详
投 递 者 甄成弘
操作系统 嵌入式
开源组织
适用人群 未知
 软件概览

�� A curated list of awesome tools, hardware and resources for CAN bus

This list helps a reverse engineering CAN bus devices with lightly specializing in automotive embedded controller software and communication understanding.

URL: https://github.com/iDoka/awesome-canbus

Contents

Hacking and Reverse Engineering tools

  • CarHackingTools - Collection of Common Car Hacking Tools a scripts collection to help jump start car research and hacking
  • Caring Caribou - A friendly car security exploration tool for the CAN bus
  • CAN_Reverse_Engineering - Automated Payload Reverse Engineering Pipeline for the Controller Area Network (CAN) protocol
  • carhacking - Car hacking scripts and docs collection
  • ReCAN - Reverse engineering of Controller Area Networks
  • parse_can_logs - Parse CAN logs and visualize data streams on plot
  • reversegear - Offline Reverse Engineering Tools for Automotive Networks
  • CANalyzat0r - Security analysis toolkit for proprietary car protocols
  • CANToolz - Black-box CAN network analysis framework
  • UDSim - Unified Diagnostic Services Simulator and Fuzzer
  • GVRET - Generalized Electric Vehicle Reverse Engineering Tool (Arduino FW)
  • uds-server - CAN UDS Simulator and Fuzzer
  • CANalyse - a vehicle network analysis and attack tool
  • canhack - a low-level CAN protocol hacking library
  • canDrive - tools for hacking your car
  • CANghost - automated Script For Hacking Into CAN Bus

Utils

Common

  • Linux CAN Utils - Linux-CAN / SocketCAN user space useful utils
  • cantools - collection of CLI tools for the CAN bus network
  • BUSMASTER - an Open Source Software tool to simulate, analyze and test data bus systems such as CAN
  • signalbroker-server - Tool to read and write CAN/LIN/flexray and other buses using gRPC which allows usage of preferred language
  • CANiBUS - CAN Device Vehicle Research Server (OpenGarages.org)

GUI Tools

  • CANdevStudio from GENIVI - CAN simulation software using a drag-and-drop style GUI with interconnected functional blocks
  • CANAL-View - Qt GUI for TouCAN USB to CAN bus converter
  • wxCAN-Sniffer - CAN bus sniffer (PC side) with animation and chart
  • CANLogger - CAN bus logger and analyzer tool
  • Seeeed-USB-CAN-Analyzer - Closed source binary for noname Chinese USB-CAN adapter
  • CANtact-app Desktop application for CANtact hardware interface
  • SavvyCAN - Cross-platform Qt based GUI analysis tool. Supports SocketCAN compatible interfaces.
  • Kayak - Java-based CAN traffic GUI analysis tool
  • openCanSuite - Set of tools for analyzing, simulating and visualizing a CAN system
  • Plotter and Scanner from SmartGauges - scanning and visualizing tool for automotive systems
  • ICSim - Instrument Cluster Simulator for SocketCAN by OpenGarages
  • CANgaroo - Qt-based CAN bus analyzer software
  • CAN-X - C# CAN bus analyzer software
  • CAN-Monitor-qt - universal CAN bus monitoring program
  • CANBUS-Analyzer - development tool/companion software for graphs, displays and analyzes both known and unknown CANBUS packets
  • SLSS-CANAnalyser - SLSS CANAnalyser is Windows CAN-Bus-Analysis-Software to show, record and evaluate CAN-Bus signals
  • TSMaster - [closed source] powerful open environment for automotive bus monitoring, simulation, testing, diagnostics, calibration and so on
  • CAN++ - Windows program for receiving and transmitting CAN bus messages. After import of CAN data base files (*.dbc or *.kcd) CAN signals are shown in symbolic form. In addition they can be shown as graphics (wave forms)
  • CANcool - CAN bus Analyser and Simulation Software with CAN-FD support

Python Tools

  • cantools - CAN BUS tools in Python
  • python-can - CAN package provides controller area network support for Python developers
  • strym - real time CAN data logging and visualization tool to work with USB-CAN Interface
  • canviewer - GUI program that allows the inspection of incoming can-bus messages, either from recorder can-bus data or live data
  • can4python - A package for handling CAN bus signals on Linux SocketCAN. Useful for showing the contents of KCD files (also those converted from DBC files)
  • Python-Vector-CANoe - Control Vector CANoe API by Python
  • CanCat - Swiss army knife of CAN often used in cars and building automation, etc
  • Pyfuzz_can - may be used in research to inject messages into a truck and cause acceleration, cluster spoofing, and degrade brake performance
  • Robotell-USB-CAN-Python - Python program for Robotell USB-CAN Adapter
  • python-socketcan-monitor - script to display data from a CAN bus over network interfaces
  • CanoPy - A python gui used to visualize and plot message payloads in real time.

UDS

  • python-UDSonCAN - Python implementation of UDS ISO-14229 standard
  • uds-c - Unified Diagnostics Service (UDS) and OBD-II C Library

ISO-TP

  • isotp-c - An implementation of the ISO-TP (ISO15765-2) CAN protocol in C

CAN-over-IP

  • cannelloni - SocketCAN over Ethernet tunnel
  • tincan - Visualization of CAN bus traffic via UDP interface
  • pican - TCP CAN reader
  • canny - Simple CAN-over-IP gateway
  • python-socketcan-monitor - script to display data from a CAN bus over network interfaces

OBD-II tools

  • DDT4All - tool to create your own ECU parameters screens and connect to a CAN network with a cheap ELM327 interface
  • ELM327SLCAN - ELM327 based vehicle's CAN bus sniffer
  • Arduino-OBD2-Async - Arduino OBD library with asynchronous data requesting
  • CAN-Shark working with OBD PIDs from Arduino + MCP2515 shield
  • pyvit - Python Vehicle Interface Toolkit
  • OBD2-Scantool - A python scantool to read OBD2 info from cars
  • O2OO - OBD-II compliant car diagnostic tool. It reads sensor data from a car into an sqlite database
  • freediag - Free diagnostic software for OBD-II compliant motor vehicles

J1939 Tools

  • J1939-CANBUS - Supported Engines CAT, Perkins, Wartsalla, MTU, VOLVO
  • J1939-Framework - Framework to work with J1939 Frames used in CAN bus in bus, car and trucks industries
  • python-j1939 - SAE J1939 support dependent on python-can package. Provides codec and filtering by PGN but not full SPN decoding
  • can-utils with J1939 support - Fork of can-utils with a few additional tools for J1939
  • test-can-j1939 - how to use CAN J1939 on linux
  • libj1939 - library to work with J1939 Frames (intended to be used in microcontrollers)
  • Pretty-J1939 - python libs and scripts for pretty-printing J1939 logs

J2534 Tools

  • JCanalog - Easy To Use J2534 Vehicle Logger
  • j2534-tcp - Virtual J2534 driver over TCP/IP

Other Utils

  • Seeeed-USB-CAN-Linux - CLI Linux Support for noname Chinese USB-CAN adapter
  • opendlv-device-can-replay - OpenDLV Microservice to replay captured CAN frames to a CAN interface
  • c0f - CAN bus fingerprinting tool is designed to analyze CAN bus traffic and fingerprint the Maker and Model
  • canqv - Quick CAN frame inspection using CAN_RAW
  • Candle.NET - .NET wrapper for the Candle API for candlelight CAN bus gateways/analysers (e.g. CANable, CANtact, etc)
  • canSerializer - lib for serializing and deserializing CAN frames for transmission over a non CAN transport layer (Can be used to transport CAN frames over UART, SPI, etc)

Libraries

  • libwecan - header only lib to encode and decode CAN signal
  • python-can - the can package provides controller area network support for Python developers
  • VCAN - a tiny virtual CAN and CAN-FD bus library in C
  • IMCTFD - Improved Microchip CAN Teensy FlexData Library MCP2517FD
  • go-socketcan - Golang library for SocketCAN
  • isotp-c - An implementation of the ISO-TP (ISO 15765-2) Support Library in C

Examples

  • CAN-Examples - Example C code for CAN Sockets on Linux
  • socketcan-demo - set of example programs which highlight how to make use of SocketCAN on Linux

CAN Databases

Formats

DBC

KCD

  • KCD - An open format to describe communication relationships in CAN. similar to DBC format but written in XML

Converters and Parsers

  • cantools by Erik Moqvist - CAN tools in python for DBC, KCD, SYM, ARXML 4 and CDD file parsing
  • cantools by Andreas Heitmann - a set of libraries and command line tools for handling ASC, BLF, CLG, VSB, MDF, and DBC files
  • CanDB - Generate CAN dbc file with OEM defined CAN matrix (xls)
  • canmatrix - Converting CAN Database Formats .arxml .dbc .dbf .kcd
  • CANBabel - Translator for several CAN description formats (supports KCD r/w and DBC read)
  • can4python - A useful package for showing the contents of KCD files (also those converted from DBC files)
  • dbcc - DBC to C (and CSV, JSON and XML) compiler using the mpc parser combinator library
  • convert_dbc_to_cpp_file - util for convert dbc (canbus) to cpp(cplusplus) function

DBC only

  • Vector DBC - library to access CAN Databases (aka CANdb, aka DBC files) from Vector Informatik
  • dbcppp - C/C++ DBC file parser/tool
  • can_decoder - API module for decoding raw CAN bus data to physical values using a DBC CAN database
  • CANdb from GENIVI - Library for parsing DBC - CAN bus database description formats
  • dbc-parser - A Flex/Bison/Lemon parser/scanner for DBC files
  • Vector CANdb++ DBC file parser - modified version of the dbc file parser of eerimoq
  • dbc_reader - Virtual can bus reader from dbc file (python)

Hardware

All kind of HW like CAN bus USB2CAN dongles, loggers, sniffers, adapters, etc.

ARM

STM32F042x based HW

  • candleLight_fw - compatible firmware for candleLight, cantact, canable, CANAlyze, VulCAN
  • CANsniffer on STM32F042 - CANbus sniffer less complicated than existing commercial products
  • candleLight - KiCAD project of usb-can adapter based on STM32F0
  • cantact-hw - Hardware design files for the CANtact tool, use cantact-fw as firmware source
  • cantact - Drivers and Command Line Interface for CANtact tools
  • USB2CAN - Compact and isolated USB-to-CAN Adapter
  • CANAlyze - an open source, native CAN interface for Linux that can be built entirely using open source tools, use canalyze-fw as firmware source
  • Cantact FW by x893
  • ELM329 - Open-source ELM329 OBD adapter based on STM32F042

Arduino

  • arduino-canhacker - CanHacker (lawicel) CAN adapter on Arduino + MCP2515
  • open-usb-can from Fabio Baltieri - CAN-to-USB dongle based on ATMega32U and MCP2515
  • Arduino-CAN-bus-SD-logger - Arduino script to log CAN bus information to SD card. Mainly focused on J1939
  • Arduino-canbus-monitor - Can bus monitoring tool based on arduino and can bus shield. Implements CAN ASCII/SLCAN protocol compatible with Lawicel CAN232/CANUSB
  • Arduino-psa-comfort-can-adapter - Arduino sketch to operate new PSA (Peugeot, Citroen, DS, Opel) comfort devices (CAN2010) on old BSI CAN-BUS (CAN2004)
  • epasuino - Arduino based Speed sensitive electric power steering for automobiles Speed sensitive electric power steering for automobiles
  • carfuino - Arduino based Automotive performance computer with Megasquirt integration
  • W203-canbus - Arduino project for W211/W219 W203/W209 Mercedes (bluetooth audio control and more)
  • CANBus-Triple - The car hacking platform based on AVR and MCP2515 works with this firmware
  • GVRET - Generalized Electric Vehicle Reverse Engineering Tool (Arduino FW)
  • open-source-can-bridge - gateway with several CAN interfaces based on Xmega
  • arduino-mcp2515 - Arduino MCP2515 CAN interface library
  • slcanuino - USB-CAN (SocketCAN) sketch for Arduino CAN-BUS shield
  • CITM02 - CAN In The Middle (CITM) the Dual channel CANBUS adapter built around Arduino

ESP

SBC

SBC - Single Board Computers

  • beaglebone_black_socketcan - How to get access to the CAN bus on a BeagleBone Black via socketcan interface
  • rpi-can-logger - Project to log CAN bus data from a PiCAN2 and a GPS module
  • CANoPi - CAN interface for Raspberry Pi Zero

Others HW

Hardware related tools

etc

Follow this root-repo for lastest updates: https://github.com/iDoka/awesome-canbus

Tags

#awesome#awesome-list#can#can-bus#canbus#canfd#can-fd#logger#sniffer#slcan#socketcan#car-hacking#bus-monitoring#lawicel#elm327#obd2#canutils#automotive#embedded#arduino#rpi#raspberry-pi#sae#uds#j1962#j1939#j1979#j2534#lin#lin-bus#local-interconnect-network#flexray#obd-ii#slcan-protocol#usbtin#usb2can#iso11898#iso11565#iso11765#iso14229#dbc#odb#ldf#electric-vehicles#vehicular-networks#python#automotive-security

 相关资料
  • Awesome Awesome Node.js A curated list of awesome lists that are about or related to Node.js. Inspired by the awesome list thing, going deeper down the rabbit hole. �� Meta stuff about this awesome li

  • A curated list of awesome things related to Vite.js This awesome list is for Vite 2.x and onward. Vite 1.x's list is archived. Resources Official Resources 文档 GitHub Repo Release Notes Vue 3 Docs Awes

  • Awesome Python 是一个资源整理集合,由 vinta 发起和维护。内容包括:Web框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。 这个系列没有推荐 Python 书籍、经典博文、交互教程,所以另外推荐:《25本免费的Python电子书》、《学习Python编程的11个(教程)资源》、《PythonMonk:Py

  • Font Awesome 是一个图标工具包。其已经被重新设计并从头构建。除此之外,还增加了一些功能,比如 icon font ligature、SVG 框架、流行的前端库(如 React)的官方 NPM 包,以及对新 CDN 的访问。Font Awesome 已扩展至 7,865 个图标。

  • awesome-android 收录了来自 github 或其他网站的关于 Android 的大部分库。

  • The Lithe Project Development Team Awesome CryptoNote A curated list of awesome CryptoNote open-source blockchains, resources, projects, and shiny other things related.Many projects are derived from f