Vehicle Security and Car Hacking
Contents
Courses
Miscellaneous
Projects
Hardware
CAN
A tool for reverse-engineering and testing automotive systems. The CANBadger consists of both hardware and software. The main interface is a LPC1768/LPC1769 processor mounted on a custom PCB, which offers two CAN interfaces, SD Card, a blinky LED, some GPIO pins, power supply for peripherals and the ethernet port.
Applications
GUI tool that can monitor a CAN bus and automatically learn the devices attached to it by watching communications.
CANToolz is a framework for analysing CAN networks and devices. It is based on several modules which can be assembled in a pipeline.
An Open Source tool to simulate, analyze and test data bus systems such as CAN, LIN, FlexRay.
openpilot is an open source driving agent that performs the functions of Adaptive Cruise Control (ACC) and Lane Keeping Assist System (LKAS) for Hondas and Acuras.
An open source Automatic License Plate Recognition library written in C++ with bindings in C#, Java, Node.js, Go, and Python.
Libraries and Tools
C
"dbcc is a program for converting a DBC file primarily into into C code that can serialize and deserialize CAN messages." With existing DBC files from a vehicle, this file allows you to convert them to C code that extracts the CAN messages and properties of the CAN environment.
C++
Python
A "swiss-army knife" for interacting with live CAN data. Primary API interface in Python, but written in C++.
A fingerprinting tool for CAN communications that can be used to find a specific signal on a CAN network when testing interactions with a vehicle.
Python interface to various CAN implementations, including SocketCAN. Allows you to use Python 2.7.x or 3.3.x+ to communicate over CAN networks.
A Python module for handling realtime sensor data from OBD-II vehicle ports. Works with ELM327 OBD-II adapters, and is fit for the Raspberry Pi.
A python library to send, receive, edit raw packets. Supports CAN and automotive protocols: see the automotive doc