Home / Firmware & Embedded / Firmware Analysis Tools

127 open-source Firmware Analysis Tools projects

Firmware Analysis Tools (Firmware & Embedded): open-source projects that exist because someone reverse engineered a closed product, sorted by GitHub stars.

  1. binwalk★ 14,557 · active · Rust

    Firmware analysis tool for identifying and extracting embedded files

  2. Universal Radio Hacker★ 12,593 · archived · Python

    Tool to investigate and reverse-engineer unknown wireless protocols

  3. HackRF★ 8,181 · active · C

    Open-source SDR platform for wireless RE

  4. Qiling★ 6,160 · active · Python

    Binary emulation framework used for firmware and IoT analysis

  5. UEFITool★ 5,776 · active · C

    UEFI firmware image viewer and editor

  6. me_cleaner★ 5,070 · active · Python

    Tool for partially deblobbing Intel ME firmware images

  7. EMBA★ 3,723 · active · Shell

    Security analyzer for embedded device firmware

  8. Renode★ 3,068 · active · RobotFramework

    Embedded system simulator for running and debugging unmodified firmware

  9. edl★ 2,659 · active · Python

    Unofficial Qualcomm Firehose, Sahara, streaming and DIAG tools

  10. unblob★ 2,598 · active · Python

    Extraction suite for arbitrary firmware and binary blobs

  11. Glasgow★ 2,230 · active · Python

    Scots Army Knife for electronics and hardware reverse engineering

  12. Ubertooth★ 2,151 · active · C

    Open-source Bluetooth monitoring and experimentation platform

  13. FIRMADYNE★ 2,118 · slowing · Shell

    Platform for emulation and dynamic analysis of Linux-based firmware

  14. ofrak★ 2,081 · active · Python

    Framework to unpack, modify and repack binaries and firmware

  15. vmlinux-to-elf★ 1,838 · active · Python

    Recovers an analyzable ELF from a raw kernel image using kallsyms

  16. Firmware Analysis Toolkit★ 1,618 · active · Rust

    Toolkit to emulate firmware and analyze it for security vulnerabilities

  17. Tasmotizer★ 1,542 · slowing · Python

    Flashing tool for Tasmota firmware onto ESP devices

  18. FACT★ 1,471 · active · Python

    Firmware Analysis and Comparison Tool

  19. mtkclient★ 1,383 · active · Python

    MediaTek flash and repair utility using bootrom/preloader protocols

  20. Sniffle★ 1,198 · slowing · Python

    Bluetooth 5 and 4.x LE sniffer for TI CC1352/CC26x2

  21. icestorm★ 1,193 · active · Python

    Project IceStorm: reverse engineered bitstream documentation and tools for Lattice iCE40 FPGAs

  22. BIOSUtilities★ 1,100 · active · Python

    Utilities to parse and extract vendor BIOS/UEFI firmware

  23. firmware-mod-kit★ 1,007 · active · C

    Tools to extract and rebuild firmware images for routers

  24. FirmAE★ 957 · active · Python

    Large-scale emulation for IoT firmware dynamic analysis

  25. uefi-firmware-parser★ 931 · active · Python

    Parse BIOS/UEFI and Intel ME firmware images

  26. Project X-Ray★ 925 · slowing · Python

    Documents the reverse-engineered Xilinx 7-series FPGA bitstream format

  27. JTAGenum★ 805 · slowing · C++

    Arduino/Raspberry Pi tool to identify JTAG pins on unknown hardware

  28. InternalBlue★ 792 · slowing · Python

    Bluetooth experimentation framework for Broadcom/Cypress chips

  29. cpu_rec★ 757 · slowing · Python

    Identify CPU architecture of unknown firmware binaries

  30. Bus Pirate★ 695 · active · C

    Firmware for the Bus Pirate universal serial interface hacking tool

  31. IDAPythonEmbeddedToolkit★ 690 · dormant · Python

    IDAPython scripts for automating analysis of embedded device firmware

  32. ubi_reader★ 643 · active · Python

    Extract files from UBI and UBIFS images

  33. unME11★ 643 · archived · Python

    Intel ME 11.x firmware image unpacker

  34. binbloom★ 586 · slowing · C

    Raw firmware analysis tool to find load address and endianness

  35. avatar2★ 580 · slowing · Python

    Target orchestration framework for dynamic firmware analysis

  36. KindleTool★ 535 · active · C

    Tool to create and extract Kindle update packages

  37. ghidra-firmware-utils★ 509 · active · Java

    Ghidra plugins for analyzing PC firmware (UEFI, option ROMs)

  38. Frankenstein★ 475 · slowing · C

    Broadcom/Cypress Bluetooth firmware emulation for fuzzing

  39. BK7231GUIFlashTool★ 452 · active · C#

    Flash and back up BK7231 and other Tuya-module chips

  40. maskromtool★ 438 · active · C++

    CAD tool for extracting bits from mask ROM die photographs

  41. CustomProcessingUnit★ 416 · dormant · C

    Analysis framework for Intel CPU microcode

  42. efiSeek★ 409 · slowing · Java

    Ghidra analyzer for UEFI firmware

  43. uefireverse★ 408 · dormant · C

    Tools to help reverse engineer UEFI-based firmware

  44. rbasefind★ 375 · dormant · Rust

    Firmware base address search tool

  45. mtk_uartboot★ 369 · slowing · Rust

    Tool to load code on MediaTek SoCs via UART boot ROM

  46. firmware-analysis-plus★ 367 · slowing · Python

    One-click firmware emulation built on firmadyne

  47. Microcode★ 356 · dormant · Python

    Reverse engineered x86 AMD microcode updates from the USENIX 2017 paper

  48. GreatFET★ 354 · active · C

    Hardware hacking multi-tool platform

  49. jefferson★ 347 · dormant · Python

    JFFS2 filesystem extraction tool

  50. ida-efiutils★ 308 · dormant · C

    IDA Pro scripts for reverse engineering EFI binaries

  51. sniffROM★ 305 · slowing · Python

    Passive data capture and reconstruction of serial flash chip contents

  52. BusPirate5 firmware★ 271 · active · C

    Firmware for Bus Pirate 5 hardware hacking multitool

  53. ipctool★ 258 · active · C

    Detect IP camera hardware and dump firmware

  54. esp32_image_parser★ 254 · active · Python

    Toolkit for reverse engineering ESP32 firmware images

  55. firmeye★ 247 · dormant · Python

    IDA Pro plugin for finding vulnerabilities in IoT firmware

  56. fwhunt-scan★ 246 · slowing · Python

    Tools for analyzing UEFI firmware with FwHunt rules

  57. Ablation★ 232 · active · Python

    Autonomous reverse engineering system, demonstrated on Fortinet firmware

  58. ltchiptool★ 229 · active · Python

    GUI and CLI flashing and dumping tool for BK7231, RTL8710B and RTL8720C chips in Tuya devices

  59. fwtool.py★ 223 · dormant · Python

    Tool to unpack Sony camera firmware images

  60. starlink-tools★ 209 · dormant · Python

    Tools for security research on the Starlink user terminal

  61. Xiaomi-bootloader★ 180 · dormant · Assembly

    Research on the bootloader used in Xiaomi phones

  62. Pyrrha★ 173 · active · Python

    Firmware cartography tool that maps binaries and their relations

  63. at51★ 167 · slowing · Rust

    Tools for reverse engineering 8051 firmware

  64. HALucinator★ 167 · dormant · Python

    Firmware rehosting through abstraction-layer (HAL) emulation

  65. bxxt★ 164 · dormant · C

    Android boot.img, recovery.img, SELinux and property unpack/repack tool

  66. D.N.A3★ 161 · slowing · Python

    Android firmware image unpack and repack assistant

  67. jielie★ 155 · slowing

    Information and tools on JieLi Bluetooth audio chips

  68. galaxy-buds-firmware-archive★ 154 · active

    Archive of Galaxy Buds firmware images, flashable with GalaxyBudsClient

  69. uEmu★ 153 · slowing · Python

    Universal MCU firmware emulator for dynamic analysis without hardware

  70. FirmwareReverseEngineering★ 149 · dormant · Python

    Notes and tools from reverse engineering firmware

  71. mistral★ 138 · dormant · HTML

    Intel Cyclone V FPGA bitstream reverse engineering

  72. Dell iDRAC GPU throttling RE★ 136 · active · Python

    Reverse-engineered Dell iDRAC firmware to stop throttling of unsupported GPUs in C4130

  73. openpst★ 133 · dormant · Prolog

    Tools for Qualcomm MSM devices (Sahara, DM/DIAG, streaming protocols)

  74. usb-to-pcie-re★ 108 · slowing · Python

    Notes and utilities for reverse engineering USB-to-PCIe/NVMe bridge controllers

  75. debit★ 97 · dormant · C

    Reverse engineering tools for Altera and Xilinx FPGA bitstreams

  76. esp-bin2elf★ 90 · dormant · Python

    Converts ESP8266 flash dumps into ELF files

  77. xc2064★ 90 · dormant · JavaScript

    Reverse engineering the Xilinx XC2064 FPGA bitstream

  78. efi_dxe_emulator★ 88 · dormant · C

    EFI DXE emulator and interactive debugger

  79. Avatar2★ 84 · dormant · C++

    Framework for dynamic analysis of embedded firmware with hardware-in-the-loop orchestration

  80. ESPionage★ 83 · active · Python

    ESP8266 and ESP32 firmware binary analysis toolkit

  81. smram_parse★ 83 · slowing · Python

    System Management RAM (SMRAM) analysis tool for UEFI firmware

  82. ida-efitools★ 79 · dormant · Python

    IDA Pro scripts to assist reverse engineering EFI binaries

  83. am335xbootrom★ 67 · slowing · Python

    Reverse engineering the TI AM3358 boot ROM

  84. DICE★ 67 · dormant · C

    Automatic emulation of DMA input channels for dynamic firmware analysis

  85. prjcombine★ 66 · archived · Rust

    FPGA reverse engineering and bitstream documentation project

  86. fastboot-oem-extractor★ 61 · active · Python

    Extract hidden fastboot oem commands from firmware blobs

  87. basefind2★ 60 · dormant · Python

    Fast firmware base address scanner

  88. SharpOdinClient★ 60 · active · C#

    .NET library to talk to Samsung Android devices in download (Odin) mode for flashing

  89. FimiX8-SDFG★ 58 · dormant · Java

    SD-card-flashable firmware generator for the Fimi X8 SE drone

  90. allyourbase★ 57 · slowing · Python

    Finds a firmware's load address by matching string and pointer addresses

  91. mktplinkfw3★ 56 · dormant

    Format analysis and tool for TP-Link v3-header firmware images

  92. imx-nand-tools★ 55 · slowing · Python

    Firmware reverse engineering tools for i.MX NAND flash

  93. aixun_t3a_rev★ 54 · slowing · Python

    Reverse engineering of the AIXUN T3A soldering station

  94. shelly-firmware★ 51 · dormant · Python

    Script building a full flashable image of the official Shelly firmware

  95. 8cryptdo★ 45 · active · Python

    Reverse-engineered docs and tools for 8BitDo firmware encryption

  96. AMT630A★ 38 · active · C++

    Reverse-engineered AMT630A display controller from a cheap backup camera screen

  97. odyssey-g5-firmware-research★ 37 · active · Python

    Reverse-engineering Samsung Odyssey G5 monitor firmware for hidden features

  98. insta360-go-firmware-tool★ 36 · slowing · Python

    Unofficial firmware tool for Insta360 GO 2/3/3S cameras

  99. qemu-hexagon★ 34 · dormant · C

    QEMU with support for QDSP6 user mode emulation

  100. Aqara-Firmware-Archive★ 30 · active

    Archive of OTA firmware updates for Aqara IoT devices

  101. reolink-fw★ 27 · slowing · Python

    Extracts information and files from Reolink camera firmware

  102. SamsungFumoClient★ 27 · slowing · C#

    OMA-DM client with FUMO support for retrieving Samsung firmware updates and metadata

  103. SamsungFumoScraper★ 26 · dormant · HTML

    WebAssembly app downloading Samsung OTA firmware files directly in the browser

  104. mrvl-88mw30x-firmware-tools★ 24 · dormant · C

    Documentation and tools for Marvell 88MW300/302 firmware used in Yeelight bulbs

  105. NTRDisasm★ 24 · archived · Assembly

    Annotated disassembly of the NTR 2.x custom firmware for the Nintendo N3DS

  106. FIRMWELL★ 22 · active · Python

    Automated rehosting framework for Linux-based embedded firmware

  107. lv0pen★ 22 · active · C++

    Byte-matching decompilation of the PlayStation 3 boot chain (lv0, loaders) and isolated SPU modules

  108. BK7231_SPI_Flasher★ 21 · dormant · Python

    Command line BK7231 flashing tool for SPI mode

  109. WyzeFirmwareTool★ 19 · archived · Python

    Tool for unpacking and repacking Wyze camera firmware for modification

  110. ecovacs-firmware-tools★ 17 · slowing · Go

    Tools for unpacking and analysing Ecovacs vacuum firmware

  111. f2mc8dump★ 16 · active · Python

    Dumps internal ROM from Cypress (Fujitsu) F2MC-8L microcontrollers

  112. mtkview★ 15 · active · Rust

    Binary Ninja loader for MediaTek preloaders and Little Kernel images

  113. tlcs90-rom-reader★ 15 · active · HTML

    ROM reader for Toshiba TLCS-90 microcontrollers used in arcade boards

  114. MFT★ 14 · dormant · Makefile

    Firmware toolkit for unpacking and analyzing firmware images

  115. Bose-headphones-firmware★ 10 · dormant

    Reverse-engineered firmware of the Bose QuietComfort 35 II

  116. Cyclone_CRAM_Mapper★ 10 · active · Python

    Reverse-engineered Intel Cyclone IV FPGA bitstream routing with Claude Code

  117. ecos_romfs_unpacker★ 6 · dormant · Python

    Unpacker for eCos ROMFS images in firmware

  118. hikvision_R2_firmware★ 6 · active · JavaScript

    Unpacks and repacks Hikvision R2 firmware files

  119. HALO-ISA★ 0

    Reverse-engineered instruction set reference for the Cirrus Logic HALO Core DSP (CS40L/CS35L amps)

  120. JAY-tech-UMPC-9901-HWRE★ 0

    Hardware reverse engineering of the WonderMedia WM8505 platform (JAY-tech UMPC 9901)

  121. librephone★ 0

    Research and tools for analysing phone binary blobs with the goal of replacing them with free software

  122. pico-flash-tracer★ 0

    SPI flash access tracer based on the Raspberry Pi Pico

  123. prjcombine★ 0

    FPGA bitstream reverse engineering and documentation project for multiple vendor FPGA families

  124. qemu-esp32-wireless★ 0

    Deterministic QEMU emulation of the ESP32 wireless stack running Espressif's unmodified blobs

  125. tu58firmware★ 0

    Disassembly and reverse engineering of DEC TU58 tape drive firmware

  126. vt100-firmware★ 0

    Annotated VT100 terminal firmware (commented 8080 disassembly)

  127. wch-isp★ 0

    Firmware programmer for WCH microcontrollers over their USB ISP bootloader protocol