Firmware · Tool:
Firmware Analysis Toolkit (FAT)C2
Attify's firmware security toolkit, rewritten for version 2 as a Rust command-line tool built around per-image projects.
- Firmware
- Binary
Firmware · Tool:
Attify's firmware security toolkit, rewritten for version 2 as a Rust command-line tool built around per-image projects.
Firmware · Tool:
Research codebase for reverse engineering Fujifilm cameras so that custom code can run on them under a patched firmware.
Reviewed fujihack/fujihack@754acff
Firmware · Tool:
Ghidra analyzer extension from Digital Security for individual UEFI modules, enabled by default during auto-analysis of x86 and x64 PE images with an EFI subsystem.
Reviewed DSecurity/efiSeek@573f4b9
Firmware · Tool:
Rule-based checker for filesystem images taken from firmware: it reads ext2/3/4, FAT/VFAT, SquashFS and UBIFS images, cpio archives or a directory, and writes a JSON report of every file that breaks the rules in a TOML configuration.

Reviewed cruise-automation/fwanalyzer@a0db450
Firmware · Tool:
Binarly's Python scanner that checks UEFI firmware modules against FwHunt rules, the YAML detection format for known UEFI firmware vulnerabilities whose rules are kept in the separate fwhunt repository.
Reviewed binarly-io/fwhunt-scan@6fc7115
Firmware · Tool:
Python tool that reconstructs serial flash contents from passive bus captures: it parses SPI or I²C analyzer exports from Saleae Logic, recorded while a device reads and writes its own flash chip, and writes the observed data into a binary image at the original memory addresses.
Reviewed alainiamburg/sniffROM@a32be61
Firmware · Tool:
Linux command-line tool from Google that reads the BIOS/UEFI firmware image out of the SPI flash of Intel-based workstations and laptops.
Reviewed google/pawn@45b7b38
Firmware · Tool:
Web-based enterprise interface for the EMBA firmware security scanner, which it installs and runs as its scanning backend.
Reviewed e-m-b-a/embark@d578c8b
Firmware · Tool:
Maddie Stone's IDAPython scripts for triaging and annotating embedded-device firmware images in IDA Pro, presented at RECON Montreal and DerbyCon in 2017.
Firmware · Tool:
LinuxBoot's Go tools and libraries for parsing and modifying UEFI firmware images.
Reviewed linuxboot/fiano@162b021
Firmware · Tool:
Quarkslab's firmware cartography tool, which indexes an extracted firmware filesystem into a database browsed with NumbatUI, Quarkslab's fork of the Sourcetrail code explorer.

Reviewed quarkslab/pyrrha@54cfe78
Firmware · Tool:
Python reverse-engineering framework for the Polyend Tracker music device that patches the vendor's stock firmware, replacing an unused USB RAWHID handler with its own command handler.
Reviewed patois/RETracker@f6698f6
Firmware · Tool:
Tools Quarkslab published from its research on Google's Titan M security chip in Pixel phones: a Ghidra loader for Titan M (Citadel) firmware files, nosclient for tracing and sending the chip's protobuf-based commands from Android with a black-box fuzzer built on libprotobuf-mutator, a parser for sigrok SPI captures, and scripts that convert firmware images to the rec files of the chip's SPI rescue feature.
Reviewed quarkslab/titanm@7b6c252
Firmware · Tool:
Python command-line tool and IDA Pro plugin for UEFI firmware reverse engineering.
Reviewed yeggor/uefi_retool@be13abf
Firmware · Tool:
IDA Pro loader and post-processing scripts for Samsung Exynos "Shannon" baseband modem images that carry a TOC header, including crash dumps.
Firmware · Tool:
Qt desktop programmer that reads, writes, erases and verifies I2C, SPI and MicroWire EEPROMs, FeRAM, DataFlash and SPI NOR/NAND flash chips through low-cost CH341A, CH347T and FT232H USB programmers.

Reviewed bigbigmdm/IMSProg@a9c0a5d
Firmware · Tool:
Multithreaded Rust command-line tool that brute-forces the load address of a flat 32-bit firmware image, reimplementing mncoppola's basefind.py and rsaxvc's basefind.cpp.
Reviewed sgayou/rbasefind@a661118
Firmware · Tool:
Browser-based editor for the setup menus of AMI Aptio V UEFI firmware, offered as an alternative to AMIBCP.

Reviewed BoringBoredom/UEFI-Editor@44e8c9b
Firmware · Tool:
IDA plugin that applies a microcontroller's memory map to a raw firmware image: once the analyst picks an MCU model, it creates RAM and other memory segments, adds peripheral segments with named registers and, where a vector table is described, labels its entries and turns the handlers they point to into functions.
Reviewed Accenture/FirmLoader@5c9c1a1
Firmware · Tool:
Static analysis pipeline for extracted IoT firmware: pointed at one ELF or an unpacked root filesystem, it disassembles binaries with Capstone for x86, ARM/Thumb-2, AArch64 and MIPS, recovers functions, call graphs and exploit mitigations, and reports candidate issues from dangerous-function calls, call-graph taint paths, CVE correlation through cve-bin-tool, embedded secrets, script injection patterns and filesystem hardening checks.
Reviewed cn0xroot/IFDA@90c11c2
Firmware · Tool:
Python script that estimates the load address of a flat 32-bit little-endian firmware image without brute-forcing every candidate base, building on mncoppola's basefind.py and rbasefind.
Reviewed soyersoyer/basefind2@370d0dd
Firmware · Tool:
Joe Grand's open-source hardware tool and Parallax Propeller firmware for locating on-chip debug interfaces among an unfamiliar board's test points, vias, component pads or connectors.
Reviewed grandideastudio/jtagulator@6a764cd
Firmware · Tool:
Python collection of 16 parsers and extractors for vendor BIOS/UEFI update formats, including AMI BIOS Guard (PFAT) and UCP, Dell PFS, Insyde iFlash/iFdPacker, Phoenix TDK Packer, Award, Fujitsu, Panasonic, Portwell, Toshiba and VAIO packages and several Apple EFI containers.
Reviewed platomav/BIOSUtilities@f799425
Firmware · Tool:
Python script that estimates a firmware image's base address by comparing string addresses with the targets of every possible pointer, for any pointer size and either endianness.
Reviewed 8051Enthusiast/allyourbase@78e98f7
Firmware · Tool:
Ghidra script framework for reverse engineering Apple kernelcaches and kernel extensions on iOS and macOS.
Reviewed 0x36/ghidra_kernelcache@b0961b3
Firmware · Tool:
Tenable's Python command-line tool, described in its repository as a toolkit for reverse engineering ESP32 firmware, that reads the partition table of an ESP32 flash dump and rebuilds an app partition such as factory or ota_0 as an Xtensa ELF file.
Reviewed tenable/esp32_image_parser@0c9ff48
Firmware · Tool:
Open-hardware board built around the FTDI FT2232H that connects a computer to a target device's UART, SPI, I2C, JTAG and SWD interfaces through level shifters that operate from 1.8 to 5.5 V.

Reviewed tigard-tools/tigard@0dd58e7
Firmware · Tool:
Python module and command-line scripts that read UBI and UBIFS images, including ones inside raw NAND dumps, by locating the first UBI or UBIFS data in a file.
Reviewed onekey-sec/ubi_reader@5f45e50
Firmware · Tool:
Go command-line tool and library that extracts partition images from Android A/B OTA payloads, reading either a raw payload.bin or the OTA zip that contains it in place.

Reviewed ssut/payload-dumper-go@c3a50ba
Firmware · Tool:
Offline C++ scanner for the contents of firmware and IoT software, pointed at a single file or an already unpacked root filesystem, that reports embedded secrets, a software bill of materials, known CVEs, open-source licenses, boot-security configuration and weak or publicly known keys, each finding with its evidence and a confidence level.
Reviewed nmatt0/mithril@3f5bf55
Firmware · Tool:
tihmstar's command-line tool and C++ library for Apple's IMG4 firmware container format.
Reviewed tihmstar/img4tool@bb2d634
Firmware · Tool:
Python script that extracts the partition images, such as boot.img and system.img, from the payload.bin inside an Android OTA update package.
Reviewed vm03/payload_dumper@2f0a964
Firmware · Tool:
PMCA-RE RELOADED is a Rust desktop and CLI toolkit for Sony cameras that includes experimental analysis of where menu settings reside in camera settings memory.

Reviewed masterflai/pmca-re-reloaded@a919b82
Firmware · Tool:
ThisFirmwareDoesNotExist maps Arturia MicroFreak firmware 5.0.0.2084 and provides freakpatch to modify a user's official update file.
Reviewed ThisFreakDoesntExist/ThisFirmwareDoesNotExist@a97f78a
Firmware · Tool:
intel_ma inspects PC management firmware in ME/TXE/CSME region images and full SPI dumps.
Reviewed seuros/intel_ma@372e1a3
Firmware · Tool:
MS4X analyzes Siemens MS42 and MS43 engine-control firmware for BMW M52TU and M54 engines.
Reviewed therudywolf/MS4X@ac5e4cd
Firmware · Tool:
AC46 Firmware Tool unpacks firmware images for JieLi AC4600/BT15 devices.

Reviewed 0x0-nyan/AC46-Firmware-Tool@369353c
Firmware · Tool:
Bin X-ray visualizes byte patterns in unknown files and firmware blobs through a 256×256 byte-pair matrix and a 3D byte-trigram plot.

Reviewed russlank/BinXray@1d965d0
Firmware · Tool:
PIC microcontrollers disassembler converts Intel HEX dumps for MidRange and Enhanced MidRange PIC12/PIC16 devices into disassembly listings, HI-TECH PICC assembly files, or both.
Reviewed c-not-around/pic-disasm@0b01587
Firmware · Tool:
SPRD Flash Tool implements the SPRD/UNISOC PAC download protocol in Rust for RDA8910 and UIS8910 devices.
Reviewed ajsb85/sprdflash-rs@451c61e
Firmware · Tool:
PCM Explorer is a read-only Python browser for Porsche PCM and Audi MMI head-unit images.
Reviewed dspl1236/PCM-Explorer@a38709a
Firmware · Tool:
me_cleaner is a Python script that modifies Intel ME firmware images to reduce the firmware's ability to interact with the system.
Reviewed corna/me_cleaner@41eba87
Firmware · Tool:
Black Magic Debug is a self-contained debugger for microcontrollers.
Reviewed blackmagic-debug/blackmagic@ac8d0ba
Firmware · Tool:
OpenOCD is a tool for programming and debugging embedded targets through hardware debug adapters.
Reviewed openocd-org/openocd@9f2d876
Firmware · Tool:
Python monitor by Dmytro Oleksiuk (Cr4sh) that reads debug messages from Qualcomm cellular-modem firmware in real time over the modem's DIAG serial port, on a rooted Android phone or a USB modem.
Reviewed Cr4sh/qc_debug_monitor@d4c2f80
Firmware · Tool:
Patches to the unsquashfs utility from squashfs-tools 4.3 that try to read as many vendor-modified SquashFS implementations from embedded firmware as possible.
Reviewed devttys0/sasquatch@bd864a1
Firmware · Tool:
Rehost extracted Linux-based embedded firmware with instrumented kernels, NVRAM emulation and inferred network configuration.
Reviewed firmadyne/firmadyne@11cb574
Firmware · Tool:
Identify and read supported flash chips to obtain firmware images for offline inspection, with separate write and verification operations.
Reviewed flashrom/flashrom@26bdd4a
Firmware · Tool:
Study and patch supported Broadcom/Cypress Bluetooth firmware while observing link-layer traffic on the participating device.
Reviewed seemoo-lab/internalblue@f524380
Firmware · Tool:
Find and extract CPU microcode from firmware images, inspect microcode headers and compare entries against a version database.
Reviewed platomav/MCExtractor@1f309bd
Firmware · Tool:
Inspect MediaTek device flash and partitions through chipset-specific boot-ROM or preloader interfaces.
Reviewed bkerler/mtkclient@118a000
Firmware · Tool:
BoschMe7x is an IDA Pro plugin that reads a Bosch ME7.x binary and tries to disassemble it.
Firmware · Tool:
CeDImu emulates selected Philips CD-I player hardware so user-provided BIOS images can run and be inspected.
Reviewed Stovent/CeDImu@8e49f99
Firmware · Tool:
CasioEmuNeo disassembles Casio calculator ROMs for use with its nX-U8/100 emulator and debugger.
Reviewed qiufuyu123/CasioEmuNeo@23de343
Firmware · Tool:
remus-rlf-reader parses REMUS-100 autonomous underwater vehicle run logs and companion ADCP, GPS, and mission files using an empirically derived record layout.
Reviewed isaacgerg/remus-rlf-reader@0367939
Firmware · Tool:
unME11 unpacks Intel ME 11.x firmware regions with Python 2.7 scripts.
Reviewed ptresearch/unME11@fa6b4d7
Firmware · Tool:
pocketwalker emulates the PokéWalker's H8/38606F hardware for running its device software.

Reviewed h4lfheart/pocketwalker@86026a0
Firmware · Tool:
Wii U Firmware Emulator models the console's processors and hardware to run user-dumped boot1, IOSU and Cafe OS through the menu stage.
Firmware · Tool:
Project IceStorm documents the Lattice iCE40 FPGA configuration bitstream format and supplies tools to analyse and create bitstream files.
Reviewed YosysHQ/icestorm@00da9c3
Firmware · Case study:
Recovers selected camera-tuning structures from an Intel Windows driver package and uses them to repair Linux image capture on one ThinkPad model.
Reviewed cschalle/mipi-fixes-x1-aura@533d995
Firmware · Case study:
An owner documents identifying an RK3229 TV box, investigating its stock Android ROM and repurposing it with a userspace gamepad driver and Armbian.
Reviewed bigtower17/mxqpro-rk3229@b9079b4
Firmware · Case study:
An owner-authorized XM530V200 camera case uses REA/Ghidra to investigate native Sofia command handlers, then adds local control and Home Assistant integration while preserving stock drivers and recording.
Reviewed Vittuu/icsee-localmod@52f0ca0
Firmware · Case study:
Nikond750 investigates the Nikon D750 firmware image D750_0115.bin using decryption scripts, CRC checks, module extraction and Ghidra notes.
Reviewed koshiro/nikond750@1f42606
Firmware · Case study:
LemonadeMirror ports the Lululemon Mirror's peripherals from its Android vendor software to Debian and a mainline Linux kernel.
Reviewed ikiiftekhar2/lemonademirror@263cd65
Firmware · Case study:
Bose USB Bridge uses firmware and updater research to select an existing USB audio mode on a guarded SoundLink Flex unit.
Firmware · Case study:
RTX 3070 Ti VBIOS Reverse Engineering documents analysis of an MSI GA104 VBIOS, covering its ROM layout, NPDE and BIT structures, x86 BIOS, compressed UEFI GOP and Falcon fuc5 microcode.
Reviewed jingx8885/rtx3070ti-vbios-re@d481a28
Firmware · Case study:
hantek-dso reconstructs USB control of Hantek DSO5000P oscilloscopes in a Linux Python client with GUI, CLI and API.
Firmware · Case study:
A Flipper Zero app that bit-bangs Telink’s SWire debug interface to dump and reflash TLSR825x Zigbee devices, with static-analysis notes on the dumps and freshly written firmware for two of them.
Reviewed ngxson/flipper-telink@d58aef2
Firmware · Case study:
Adds emulation of Real3D’s Pro-1000, the SCSI-attached image generator from which Sega’s Model 3 graphics hardware derives, to the Supermodel arcade emulator.
Reviewed trzy/Supermodel@4f5d686
Firmware · Case study:
Reimplements in C the firmware of the Wii U’s DMCU, the M68HC11-compatible display microcontroller in its AMD graphics controller, which in Wii mode reads the Video Interface state and configures display output, deinterlacing, scaling and overscan.
Reviewed GaryOderNichts/OpenDMCUFirm@9e6747f
Firmware · Case study:
Emulates the Lexicon 224, 224X and 224XL digital reverbs so that their own firmware runs in a browser page or a JUCE plugin.

Reviewed joelanders/reflecticon-224@37fde47
Protocol · Case study:
Reimplements the Boxine cloud services a Toniebox talks to as a self-hosted C server, so the box can fetch audio, settings and over-the-air content locally while the owner controls what reaches the manufacturer.
Protocol · Case study:
Replaces the vendor cloud of supported robot vacuums with a local service that runs on the rooted robot beside the vendor firmware and emulates the cloud endpoints that firmware expects, including a miio dummycloud and a counterpart for Midea's MSmart protocol.

Reviewed Hypfer/Valetudo@7826751
Firmware · Case study:
Replaces the software on an unlocked second-generation Amazon Echo Dot (2016, codename biscuit) so it works as a local Home Assistant voice satellite over the ESPHome API: EchoMuse's own Go firmware drives the microphones, speaker, LED ring and buttons, and a controller on the LAN handles wake words, devices and a dashboard.
Reviewed wilbowes/EchoMuse@4bbf7ff
Firmware · Case study:
OSIRIS replaces the DSP-board software of Onkyo TX-NR515 and TX-NR717 receivers with its own boot loader, Linux services and DSP code.

Reviewed ubis/OSIRIS@8515cd8
Firmware · Case study:
Virtual MPC Sample rehosts Akai MPC Sample 1.3.0.12 firmware in QEMU using a custom lab kernel and a browser panel for the device controls.
Firmware · Case study:
OpenJooki replaces the Jooki 2 music speaker's embedded Linux core and provides phone-based control, updates and SD-card recovery.

Reviewed Guillain-RDCDE/OpenJooki@8d302eb
Firmware · Case study:
Stickwalker ports a matching reconstruction of Pokéwalker firmware to the M5Stack Stick S3.
Reviewed lumirth/stickwalker@3e6634d
Firmware · Case study:
sony-bravia-linux investigates the Linux-based, pre-Android Sony BRAVIA platform and reconstructs selected media and portal behavior for owner-run services.
Firmware · Case study:
VanMoof BLE implements a Python client for the S5, A5 and S6 bicycle BLE protocols.
Reviewed Knight1/vanmoof-ble@173b4c4
Firmware · Case study:
open-picpak documents the PicPak 4.2-inch e-ink frame's stock firmware behavior, BLE GATT protocol, and image conversion pipeline.
Reviewed GottZ/open-PicPak@7b76daa
Firmware · Case study:
Hisense AEH-W41H1 local control replaces the air conditioner's cloud-connected Wi-Fi module with ESPHome firmware for an ESP32 board or the stock RTL8710C module.
Reviewed AndrewDemsDS/hisense-w41h1@678cc64
Firmware · Case study:
nRF52 e-paper tag reconstructs control of an undocumented electronic shelf label with an nRF52832 board and SSD1675A-class panel.
Reviewed niazlv/nrf52-eink-price-tag@ac789f2
Firmware · Case study:
The MOI3 cluster pipeline study reconstructs the display path from a VW MIB3 head unit to its instrument cluster on a PC bench.
Firmware · Case study:
openwrt-dlink-dir842-r1 ports OpenWrt to the D-Link DIR-842 R1 using a pinned base checkout and device-specific overlays.

Protocol · Case study:
ZOOM F8 BLE protocol documentation reconstructs remote control for F8-family field recorders.
Protocol · Case study:
UAD-2 OCTO-RE investigates the PCIe host transport of a Universal Audio DSP card through driver analysis and experiments on one Rev 5 board.
Reviewed ahmadexp/UAD2-OCTO-RE@f4da3ab
Firmware · Case study:
GameSir Cyclone 2 documents analysis of the controller’s JieLi BR23 firmware, including image layout, instruction encodings, timer behavior and firmware patches.
Reviewed dank0i/cyclone2@e51ce99
Firmware · Case study:
airport-express-tools reconstructs configuration and Wi-Fi client functions for the second-generation AirPort Express A1392 from firmware and ACP protocol research.
Firmware · Case study:
Gaomon M10K 2018 research decodes a substitution-encoded GD32F350 tablet firmware image and investigates its sensor loop and USB report path.
Reviewed stupidorphan/m10k-2018@7aeac12
Firmware · Case study:
nokia105-emu runs a Nokia 105 TA-1423 firmware dump from boot ROM to a usable menu interface.
Reviewed rohit746/nokia105-emu@8bbc5f2
Firmware · Case study:
Hisense VIDAA (MT9603) records an investigation of a TV firmware container and browser-facing local services.
Reviewed ipanalytics/Hisense-Vidaa-Reverse-Engineering@c5f550c
Firmware · Case study:
WebTV PTL documents the binary television-listings database used by WebTV Plus and DishPlayer set-top boxes.
Reviewed wtv-411/webtv-docs@f4d05c5
Firmware · Case study:
SL-GlassesLed26x7 documents the connections of a 26×7 charlieplexed LED-glasses matrix and drives it with an ESP32 in place of the original controller.

Reviewed DrSapling/LED-Glasses-Matrix-26x7-SL-GlassesLed26x7@af4e90e
Firmware · Case study:
FIFINE SC3 research documents decryption of the mixer's MVsilicon firmware and its ACP control protocol over USB HID.
Reviewed dank0i/sc3@476f5b4
Firmware · Case study:
HHKB-reverse-engineering investigates the vendor USB HID protocol of the HHKB Professional Classic keyboard.
Protocol · Case study:
nano3-os reconstructs the Canaan Avalon Nano 3's K230-to-K210 mining protocol from analysis of btcminer and UART captures.
Reviewed marceloeatworld/nano3-os@9da7837
Firmware · Case study:
gear360-raw investigates the Samsung Gear 360 SM-R210 camera's capture firmware and calibration data to enable 12-bit Bayer RAW shooting.
Reviewed greg-randall/gear360-raw@ae7daee
Firmware · Case study:
Minager builds a remote monitoring and control client for Antminer ASIC hardware from reconstructed CGI interfaces.

Reviewed ndenissov/minager@58591cf
Firmware · Case study:
chave-sandeiro documents an investigation of the Renault Sandero turn-signal switch through connector, interior and schematic images.
Reviewed lucas458/chave-sandero@46a393e