Gallia
Gallia is an extendable pentesting framework with the focus on the automotive domain. The scope of the toolchain is conducting penetration tests from a single ECU up to whole cars. Currently, the main focus lies on the UDS interface. Acting as a generic interface, the logging functionality implements reproducible tests and enables post-processing tasks. The documentation is available in the docs/ folder.
Keep in mind that this project is intended for research and development usage only! Inappropriate usage might cause irreversible damage to the device under test. We do not take any responsibility for damage caused by the usage of this tool.
Testimonials
Levent Çelik et al. in Comparing Open-Source UDS Implementations Through Fuzz Testing:
Among the implementations we've identified, Gallia stands out as the most robust and dependable by a significant margin.
Shahzeb Aslam and Hung Nguyenin in ICSim++: A CAN/CAN FD simulator for modern vehicle networks with LLM-assisted workflows:
Gallia focuses on automotive penetration testing rather than vehicle simulation, with particular support for UDS-oriented workflows, automation, and reproducible test artifacts.
Quickstart
See the setup instructions.
First create a config template with --template, store it to a file called gallia.toml, and adjust it to your needs.
gallia reads this file to set the defaults of the command line flags.
All options correspond to a command line flag; the only required option for scans is gallia.scanner.target, for instance isotp://can0?src_addr=0x123&dst_addr=0x312&tx_padding=0xaa&rx_padding=0xaa.
$ gallia --template > gallia.toml
You are all set to start your first scan, for instance read the diagnostic trouble codes:
$ gallia primitive uds dtc read
The target can also be specified by the --target option on the command line.
For the format of the --target argument see the transports documentation.
Acknowledgments
This work was partly funded by the German Federal Ministry of Education and Research (BMBF) as part of the SecForCARs project (grant no. 16KIS0790). This work was partly funded by the German Federal Ministry of Economic Affairs and Energy (BMWE) as part of the ATLAS-L4 project (grant no. 19A21048D). A short presentation and demo video is available at this page.
Metadata
Release files for gallia 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gallia-2.2.0.tar.gz | 178.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gallia-2.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 410.4 kB
Release files / gallia-2.2.0.tar.gz
| Download URL | gallia-2.2.0.tar.gz |
|---|---|
| Size | 178.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d97c3b7c90d9e248f839e1db7ee30cd7c256b2160e568382d9f19cf63b141a9b
|
|
BLAKE2b-256 checksum How to use checksums |
30d7e4c8bc3d775e90759805294c392e3809d89e1dda24cb8b2f1a07d61e6aec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / gallia-2.2.0-py3-none-any.whl
| Download URL | gallia-2.2.0-py3-none-any.whl |
|---|---|
| Size | 231.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e188e837392e2f193c974dfd330225b04a27de5e959763b6638ae85a1b6e44c
|
|
BLAKE2b-256 checksum How to use checksums |
c561dbf6a9e0f74a599052954dfe4e213fffaf87b48dfbcd44025aa1339e6923
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency log