
إطار عمل للتنفيذ الرمزي الديناميكي وتحليل الثنائيات مع تحليل التلوث، حل القيود، محاكاة متعددة المعماريات عبر Sleigh الخاص بـ Ghidra، وربطات Python لاكتشاف الثغرات الآلي.
Maat هو إطار عمل مفتوح المصدر للتنفيذ الرمزي الديناميكي وتحليل البرامج الثنائية. يوفر وظائف متنوعة مثل التنفيذ الرمزي، تحليل التلوث، حل القيود، تحميل البرامج الثنائية، محاكاة البيئة، ويستفيد من مكتبة Sleigh الخاصة بـ Ghidra لرفع التجميع: https://maat.re
الميزات الرئيسية:
لتثبيت وحدة Python الخاصة بـ Maat:
python3 -m pip install pymaat
لتثبيت SDK الأصلي لـ Maat واستخدام واجهة C++ API، راجع 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()
للنقاشات العامة والأسئلة والاقتراحات، نستخدم Github Discussions
للإبلاغ عن المشكلات والأخطاء، يرجى استخدام Github Issues
لأي شيء آخر، أرسل بريدًا إلكترونيًا إلى [email protected]