Discovers vulnerabilities in firmware using concolic analysis and function clustering.
Firmware Slap is a Python-based security analysis tool that discovers vulnerabilities in embedded firmware through concolic analysis and function clustering. It helps security researchers identify flaws like buffer overflows and command injections by symbolically executing firmware binaries and clustering similar functions to find recurring vulnerable patterns.
Security researchers, firmware analysts, and reverse engineers who need to assess the security of embedded systems and IoT device firmware at scale.
It provides a unique combination of concolic execution and function clustering specifically tailored for firmware analysis, offering detailed vulnerability objects and integration capabilities that streamline the discovery of security flaws in embedded binaries.
Discovering vulnerabilities in firmware through concolic analysis and function clustering.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Combines symbolic execution with concrete inputs to discover vulnerabilities like buffer overflows and command injections, as shown in the examples with iwconfig and upload.cgi.
Uses Celery for task queuing, enabling parallel vulnerability discovery across multiple workers, which aids in large-scale firmware assessments.
Returns comprehensive dictionaries with argument info, memory constraints, and injection locations, providing in-depth insights for each flaw, as illustrated in the sample output.
Built as a series of libraries that export data as JSON or pickles, facilitating integration into custom analysis pipelines and toolchains.
Requires installation of multiple external tools including rabbitmq, docker, radare2 or Ghidra, and JDK for Ghidra, making initial configuration cumbersome and error-prone.
README provides basic examples but lacks comprehensive tutorials or troubleshooting guides, which may hinder advanced usage or debugging.
Concolic analysis and function clustering can be computationally expensive, potentially requiring significant memory and processing power for large firmware sets.