
Framework de execução simbólica dinâmica e análise binária com análise de taint, resolução de restrições, emulação multiarquitetura via Sleigh do Ghidra e bindings Python para descoberta automatizada de vulnerabilidades.
Maat é um framework de código aberto para Execução Simbólica Dinâmica e Análise Binária. Ele fornece diversas funcionalidades como execução simbólica, análise de taint, resolução de restrições, carregamento de binários, simulação de ambiente, e utiliza a biblioteca sleigh da Ghidra para elevação de assembly: https://maat.re
Principais funcionalidades:
Para instalar o módulo python do Maat:
python3 -m pip install pymaat
Para instalar o SDK nativo do Maat e usar a API C++, confira 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()
Para discussões gerais, perguntas e sugestões, usamos Github Discussions
Para relatar problemas e bugs, por favor use Github Issues
Para qualquer outra coisa, envie um e-mail para [email protected]