
Cadre d'exécution symbolique dynamique et d'analyse binaire avec analyse de flux, résolution de contraintes, émulation multi-architecture via Sleigh de Ghidra, et liaisons Python pour la découverte automatisée de vulnérabilités.
Maat est un framework open-source d'exécution symbolique dynamique et d'analyse binaire. Il fournit diverses fonctionnalités telles que l'exécution symbolique, l'analyse de contamination, la résolution de contraintes, le chargement de binaires, la simulation d'environnement, et utilise la bibliothèque sleigh de Ghidra pour le levage d'assembly : https://maat.re
Fonctionnalités clés :
Pour installer le module python de Maat :
python3 -m pip install pymaat
Pour installer le SDK natif de Maat et utiliser l'API C++, consultez 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()
Pour les discussions générales, les questions et les suggestions, nous utilisons Github Discussions
Pour signaler des problèmes et des bogues, veuillez utiliser Github Issues
Pour tout autre chose, envoyez un e-mail à [email protected]