
Dynamische symbolische Ausführung und binäres Analyse-Framework mit Taint-Analyse, Constraint-Lösung, Multi-Arch-Emulation via Ghidras Sleigh und Python-Bindungen für automatisierte Schwachstellenerkennung.
Maat ist ein Open-Source-Framework für dynamische symbolische Ausführung und Binäranalyse. Es bietet verschiedene Funktionen wie symbolische Ausführung, Taint-Analyse, Constraint-Lösung, Binärladen, Umgebungssimulation und nutzt Ghidras Sleigh-Bibliothek für das Assembly-Lifting: https://maat.re
Hauptfunktionen:
So installieren Sie Maats Python-Modul:
python3 -m pip install pymaat
Um Maats natives SDK zu installieren und die C++-API zu nutzen, lesen Sie BUILDING.md
from maat import *
# Create a symbolic engine for Linux X86-32bits
engine = MaatEngine(ARCH.X86, OS.LINUX)
# Load a binary with one command line argument
engine.load("./some_binary", BIN.ELF32, args=[engine.vars.new_symbolic_buffer("some_arg", 20)])
# Get current eax value
engine.cpu.eax
# Read 4 bytes at the top of the stack
engine.mem.read(engine.cpu.esp, 4)
# Set a callback displaying every memory read
def show_mem_access(engine):
mem_access = engine.info.mem_access
print(f"Instruction at {engine.info.addr} reads {mem_access.size} bytes at {mem_access.addr}")
engine.hooks.add(EVENT.MEM_R, WHEN.BEFORE, callbacks=[show_mem_access])
# Take and restore snapshots
snap = engine.take_snapshot()
engine.restore_snapshot(snap)
# Run the binary
engine.run()
Für allgemeine Diskussionen, Fragen und Vorschläge nutzen wir Github Discussions
Um Probleme und Fehler zu melden, verwenden Sie bitte Github Issues
Für alles andere senden Sie eine E-Mail an [email protected]