logo

Supported Targets

Supported Architectures

ARMv6-M and ARMv7-M (32-bit ARM Cortex-M microcontrollers) are currently fully supported. This includes common cores like Cortex-M0/M0+/M1 (ARMv6) and Cortex-M3/M4/M7 (ARMv7) found in IoT devices, automotive ECUs, industrial controllers, and more.
Support for additional ISAs (e.g. ARMv8 and MIPS) are on the roadmap.

Supported Operating Systems

Metalware supports all bare metal and RTOS applications. This includes, but is not limited to, FreeRTOS, VxWorks, QNX, ThreadX, Zephyr, and Nucleus.
We do not currently support Linux, Windows, or other full-fledged operating systems.

Supported Fuzzing Interfaces

Metalware fuzzes MMIO registers (Memory-Mapped I/O), simulating peripheral hardware responses. In embedded systems, MMIO (Memory-Mapped I/O) is the mechanism by which the CPU interacts with hardware peripherals. Rather than using a separate I/O bus, peripheral registers are mapped into the systemโ€™s memory space so that reading or writing to those addresses triggers hardware operations.
This means that Metalware fuzzes the vast majority of communication protocolsโ€”such as Bluetooth, CAN, LPWAN, ZigBee, WiFi, Ethernet, USB, SPI, I2C, SD/MMC, and much moreโ€”which are implemented by dedicated peripheral controllers. These controllers are typically interfaced with the CPU via MMIO. The CPU can configure the peripheral, initiate data transfers, and monitor status by reading from or writing to specific MMIO addresses assigned to the controller. MMIO serves as the bridge between the CPU and the communication protocol controllers, enabling software to control and interact with these peripherals efficiently.