CAN Bus Reverse Engineering with AI [Claude Code]<br>– CSS Electronics
Skip to content
Just added to your cart
Qty:
View cart ()
Continue shopping
Submit
Close search
Search
Cart
items
CAN Bus Reverse Engineering with AI [Claude Code]
Can an AI agent reverse engineer your CAN bus data?
In this article, Martin Falch uses our CANsub CAN bus<br>interface together with python-can<br>and a custom Claude Code 'skill' to reverse engineer<br>multiple CAN bus signals.
For basics on CAN bus reverse engineering see our CAN sniffer article,<br>which covers the classic human-analysis approach. This article shows what is possible with an LLM.
Spoiler alert: It works extremely well , as evident from our practical<br>showcases - this concept is the future of CAN sniffing.
But don't take our word for it - this guide will help you try it yourself right now !
In this article
Why manual decoding is hard
CANsub + Claude Code skill
How the skill works
Why use the CANsub
How to get started
CAN-based vs. external reference
3 x showcases
Speed & RPM (OBD2)
Speed (vision OCR)
Gauge position (human input)
Key takeaways
Author: Martin<br>Falch
(updated June 2026)
We'll provide multiple practical showcases of CAN bus reverse engineering with<br>AI!
The challenge: CAN bus reverse engineering is hard
Reverse engineering a proprietary CAN signal by hand is notoriously tough.
A typical bus produces thousands of<br>frames per second across dozens of CAN IDs, and the parameter you care about is hidden somewhere in the raw<br>bytes.
Extracting it is like finding a needle in a haystack :
Trawl huge volumes of CAN frames to spot which CAN ID might contain your signal
Guess the exact start bit and bit length of the field inside the payload
Figure out the byte order (little vs. big endian) and whether the value is signed
Solve for the scale and offset that map the raw value to a physical unit
Repeat this trial-and-error loop until the decoded result finally looks right
This is slow and demands real expertise - and often takes hours per signal.
Scripting the analysis in e.g. Python helps, but also demands specialized skills. Further, there is no single<br>script that decodes any signal, each has its own quirks.
The solution: CANsub + a Claude Code skill
To address these challenges, I wanted to see if AI/LLM tools could help non-technical users reverse engineer<br>CAN signals. To test it, I built a Claude Code<br>skill and used it to reverse engineer a diverse set of signals with the CANsub.2 and python-can.
Note: The goal here is not to push this specific skill (though you are welcome to use it). It is<br>to show a conceptual<br>workflow.
In the following sections I explain how it works, how you get started - and practical showcases of the workflow<br>in action.
How does it work?
Below I outline briefly what the skill does under the hood - from your first prompt to a ready-to-use DBC file.
1: The skill itself
The Claude Code skill is just a folder with instructions for the LLM, some context material and a<br>collection of small Python scripts the LLM can use. Following your prompt, the AI agent follows the instructions<br>step by step and decides on what tools to use dynamically based on the context and your data.
2: Knowledge material
The skill includes knowledge material for the LLM: How the CANsub and python-can work, our standard OBD2<br>DBC for decoding OBD reference signals - and our CAN sniffer article for<br>basics.<br>This helps the AI agent make sensible decisions and hallucinate less.
3: Two entry points (log/stream)
Importantly, every CAN sniffing analysis needs a 'reference' signal to compare the raw proprietary CAN data<br>against. The<br>skill supports two approaches:
You provide a raw CSV log file with the proprietary CAN data and a CAN-based reference signal (e.g. OBD2<br>vehicle<br>speed)
If the above is not possible, you create a reference signal live yourself via an external source as per below
4A: Vision-based reference signal (OCR)
If your signal has a visible physical value - like 'X km/h' on your vehicle dashboard, diagnostic tool, app etc -<br>you can use a<br>video-recording as a reference signal. You record a<br>proprietary CAN trace CSV with the CANsub while e.g. filming the vehicle dashboard with your iPhone. The skill<br>uses Optical Character Recognition (OCR) to extract a digitized reference signal for the subsequent analysis.
4B: Human-based reference signal
For signals without a ready CAN reference (and with no display value), the skill can launch a small browser app<br>to enable 'human input' that<br>mirrors the<br>real-world value, e.g. opening/closing the door or the position of a steering wheel.<br>The app records your input with timestamps, synced to the CAN trace, as a reference to analyze against.
5: Analysis (AI + Python)
With a trace and a reference in hand, the LLM performs a step-by-step analysis using various Python scripts. This<br>includes lining up every<br>'candidate field' in the data against your<br>reference and ranking them by how...