All Projects → binarly-io → Efixplorer

binarly-io / Efixplorer

Licence: gpl-3.0
IDA plugin for UEFI firmware analysis and reverse engineering automation

Projects that are alternatives of or similar to Efixplorer

Uefi retool
A tool for UEFI firmware reverse engineering
Stars: ✭ 227 (-15.3%)
Mutual labels:  ida-plugin, firmware, uefi, reverse-engineering
Ghidra Firmware Utils
Ghidra utilities for analyzing PC firmware
Stars: ✭ 194 (-27.61%)
Mutual labels:  firmware, uefi, reverse-engineering
Efiseek
Ghidra analyzer for UEFI firmware.
Stars: ✭ 45 (-83.21%)
Mutual labels:  firmware, uefi, reverse-engineering
Binexport
Export disassemblies into Protocol Buffers
Stars: ✭ 586 (+118.66%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Flare Ida
IDA Pro utilities from FLARE team
Stars: ✭ 1,374 (+412.69%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Idarling
Collaborative Reverse Engineering plugin for IDA Pro & Hex-Rays
Stars: ✭ 588 (+119.4%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Sark
IDAPython Made Easy
Stars: ✭ 477 (+77.99%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Rematch
REmatch, a complete binary diffing framework that is free and strives to be open source and community driven.
Stars: ✭ 141 (-47.39%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Ida gel
A collection of IDA loaders for various game console ELF's. (PS3, PSVita, WiiU)
Stars: ✭ 76 (-71.64%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Ret Sync
ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.
Stars: ✭ 896 (+234.33%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Stingray
IDAPython plugin for finding function strings recursively
Stars: ✭ 110 (-58.96%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
Classinformer Ida7
ClassInformer backported for IDA Pro 7.0
Stars: ✭ 226 (-15.67%)
Mutual labels:  ida-pro, ida-plugin, reverse-engineering
GraphGrabber
No description or website provided.
Stars: ✭ 22 (-91.79%)
Mutual labels:  ida-pro, ida-plugin
idaidle
A plugin for the commercial IDA Pro disassembler that warns users if they leave their instance idling for too long.
Stars: ✭ 26 (-90.3%)
Mutual labels:  ida-pro, ida-plugin
Lumen
A private Lumina server for IDA Pro
Stars: ✭ 257 (-4.1%)
Mutual labels:  ida-pro, reverse-engineering
Opensteamcontroller
Steam Controller reverse engineering and customization project.
Stars: ✭ 253 (-5.6%)
Mutual labels:  firmware, reverse-engineering
ida migrator
IDA Migrator is an IDA Pro plugin which helps migrate existing work from one database instance to another. It Conveniently migrates function names, structures and enums.
Stars: ✭ 65 (-75.75%)
Mutual labels:  ida-pro, ida-plugin
DrGadget
dr.rer.oec.gadget IDAPython plugin for the Interactive Disassembler <ABANDONED PROJECT>
Stars: ✭ 61 (-77.24%)
Mutual labels:  ida-pro, ida-plugin
dynlib
IDA Pro plugin to aid PS4 user mode ELF reverse engineering.
Stars: ✭ 51 (-80.97%)
Mutual labels:  ida-pro, ida-plugin
ida-embed-arch-disasm
Allows IDA PRO to disassemble x86-64 code (WOW64) in 32-bit database
Stars: ✭ 22 (-91.79%)
Mutual labels:  ida-pro, ida-plugin

License: GPL v3

efiXplorer - IDA plugin for UEFI firmware analysis and reverse engineering automation

Contributors:

Supported versions of Hex-Rays products: everytime we focus on last versions of IDA and Decompiler because we try to use most recent features from new SDK releases. That means we tested only on recent versions of Hex-Rays products and do not guarantee stable work on previous generations.

Why not IDApython: all code developed in C++ because it's a more stable and performant way to support a complex plugin and get full power of most recent SDK's features.

Supported Platforms: Windows, Linux and OSX (x86/x64).

overview

efiXplorer Key features

Identify available Boot Services automatically

Annotate Boot Services calls in assembly code automatically

bs

Identify available Runtime Services automatically

Annotate Runtime Services calls in assembly code automatically

rt

Identify available SMM services automatically

Annotate SMM Services calls in assembly code automatically

efiXplorer_new_6

Identify available PEI services automatically

Annotate PEI Services calls in assembly code automatically

efiXplorer_new_6

Identify available EFI Protocols automatically

  • Build the list of EFI Protocols firmware consumes and installes

protocols

Identify known EFI GUID's

  • Build the list of identified EFI GUID's (including protocol names for known GUIDS)

guids

efiXloader Key features

  • efiXloader is an IDA Pro loader module, responsible for processing UEFI drivers within single IDA Pro instance.

loader_1.gif

UEFI drivers entry points identification

  • During UEFI drivers analysis efiXloader identifies each driver's entry.

loader_2.gif

Navigation between different UEFI drivers

  • Each UEFI driver is accessible within single IDA Pro instance for reverse-engineering.

loader_3.gif

UEFI drivers extraction

  • All processed UEFI drivers are dropped into prepared folder.

loader_4.gif

efiXplorer + efiXloader in action

  • All efiXplorer analysis capabilities can be applied to the whole UEFI firmware image (instead of reverse-engineering each single executable in a separate IDA session)

loader_5.gif

SMI handlers identification within the whole firmware

loader_5.gif

Dependency graph between DXE drivers

In conjunction with the loader efiXplorer can build a dependency graph between DXE drivers based on protocols usage.

graph.png

Build instruction

We try to make the build process for all supported platforms very simple, just use the build script to automate this process.

Build script

Usage: build.py [OPTIONS] IDASDK_DIR

Options:
  --copy TEXT  path to IDA plugins directory
  --help       Show this message and exit.

example of build process:

./build.py <IDASDK75_DIR>

Compilation with cmake

mkdir build
cd build
cmake .. -DIdaSdk_ROOT_DIR="/path/to/idasdk"
cmake --build . --config Release

efiXloader compilation and installation

The common steps are next.

cd efiXloader
mkdir build
cd build
cmake .. -DIdaSdk_ROOT_DIR="/path/to/idasdk"
cmake --build . --config Release

Installation

efiXplorer

Copy compiled binaries of efiXplorer plugin and guids directory to <IDA_DIR>/plugins. Enjoy!

efiXloader

Copy builds/efiXloader64.dll to <IDA_DIR>/loaders.

Features summary table

Feature \ Bitness 32-bit 64-bit
Boot Services + +
Runtime Services + +
SMM services - +
PEI Services + -
Protocols + +
GUIDS + +
Loader - +
Dependency graph - +

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].