An automated system for emulation and dynamic security analysis of Linux-based embedded firmware.
FIRMADYNE is an automated system for emulating and performing dynamic security analysis on Linux-based embedded firmware. It extracts filesystems and kernels from firmware images, emulates them using modified QEMU kernels, and runs automated analyses to identify vulnerabilities and accessible services. The platform solves the problem of analyzing embedded device firmware at scale without requiring physical hardware.
Security researchers and embedded systems analysts who need to test the security of Linux-based firmware for IoT devices, routers, and other embedded systems. It is particularly useful for those conducting large-scale vulnerability assessments or academic research.
Developers choose FIRMADYNE because it automates the entire firmware analysis pipeline—from extraction and emulation to vulnerability testing—at scale. Its unique selling point is the integration of custom kernels, NVRAM emulation, and pre-built analysis scripts, enabling researchers to evaluate thousands of firmware images efficiently.
Platform for emulation and dynamic analysis of Linux-based firmware
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Evaluated on over 23,000 firmware images with successful extraction of nearly 10,000, enabling large-scale security research as demonstrated in the NDSS paper.
Includes scripts to test for 60 known vulnerabilities using Metasploit exploits and 14 previously-unknown ones, automating critical security assessments without manual intervention.
Supports ARM and MIPS architectures with modified QEMU kernels, allowing dynamic analysis of common embedded systems without physical hardware.
Provides a userspace library to emulate hardware NVRAM peripherals, which is crucial for accurate firmware execution and analysis, as highlighted in the components list.
Explicitly described as 'not production ready' with immature components, requiring users to run it in a VM and offering no official support, limiting reliability for production use.
Requires installing numerous dependencies, setting up PostgreSQL, and dealing with potential issues like network inference failures or NVRAM errors that need manual fixes, as noted in the FAQ and setup steps.
Debugging emulated firmware involves compiling cross-architecture gdbserver or using QEMU monitor commands, which is cumbersome and less integrated compared to commercial tools, per the debugging FAQ.