An open API service indexing awesome lists of open source software.

https://github.com/antoniovazquezblanco/ghidrasvd

Import CMSIS SVD files information onto your Ghidra memory map
https://github.com/antoniovazquezblanco/ghidrasvd

embedded ghidra ghidra-extension ghidra-loader reverse-engineering

Last synced: 4 months ago
JSON representation

Import CMSIS SVD files information onto your Ghidra memory map

Awesome Lists containing this project

README

          

# Ghidra SVD

[![Build](https://github.com/antoniovazquezblanco/GhidraSVD/actions/workflows/main.yml/badge.svg)](https://github.com/antoniovazquezblanco/GhidraSVD/actions/workflows/main.yml)
[![CodeQL](https://github.com/antoniovazquezblanco/GhidraSVD/actions/workflows/codeql.yml/badge.svg)](https://github.com/antoniovazquezblanco/GhidraSVD/actions/workflows/codeql.yml)


A red dragon tinkers with an IoT device

Import CMSIS SVD information onto your Ghidra memory map. This is usefull when reversing firmware from devices that publish SVD files. This is a re-write of another [Ghidra SVD Loader](https://github.com/leveldown-security/SVD-Loader-Ghidra) plugin.

This is the preferred way to generate memory maps, but if no SVD files are available for your device you may want to try the [Ghidra DeviceTreeBlob plugin](https://github.com/antoniovazquezblanco/GhidraDeviceTreeBlob).

## Installing

This extension is available for installation via the [Ghidra Extension Manager](https://github.com/antoniovazquezblanco/GhidraExtensionManager).

You may also install this extension by going to the [releases page](https://github.com/antoniovazquezblanco/GhidraSVD/releases) and downloading the latest version for your Ghidra distribution. In order to install from the release, in Ghidra main window go to `File` > `Install extensions...`. In the new window press the `+` icon to import the downloaded zip.

## Usage

In a CodeBrowser window press `File` > `Import SVD...`.

A file dialog will allow you to select your SVD file and import it. Memory map will automatically be updated.

You may find SVD file sources in the following table:

| Manufacturer | URL | Notes |
| :------------ | :------------------------------------------------------------------ | :----------------------- |
| CMSIS SVD Org | https://github.com/cmsis-svd/cmsis-svd-data | An extensive collection! |
| Espressif | https://github.com/espressif/svd | Quite outdated... |
| ESP Packs | https://github.com/esp-rs/esp-pacs | Community. Up to date! |
| ST | https://github.com/modm-io/cmsis-svd-stm32 | |
| ST | https://github.com/morbos/STM32 | |
| NXP | https://github.com/Masmiseim36/nxpSDK/tree/master/devices | May have XML extension |
| NXP | https://mcuxpresso.nxp.com/en/welcome | May have XML extension |
| Various/ARM | https://www.keil.arm.com/devices/ | |
| Various/ARM | https://github.com/ARM-software/CMSIS_4/tree/master/Device/ARM/SVD | |
| Various/ARM | https://github.com/ARM-software/CMSIS_5/tree/develop/Device/ARM/SVD | |
| Various/ARM | https://github.com/ARM-software/Cortex_DFP/tree/main/SVD | |

## Development

For development instructions checkout [doc/Develop.md](doc/Develop.md).