Skip to main content

Gallia

PyPI - Python Version PyPI - License PyPI DOI

Packaging status

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)

Source distribution for gallia 2.2.0
File Size Uploaded
gallia-2.2.0.tar.gz 178.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gallia 2.2.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

2.2.0 This release

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page