Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
manticore — Symbolic execution tool | Kitploit
Tools/GitHubGitHub/trailofbits/manticore
Static AnalysisDynamic Analysis (Sandboxing)Reverse EngineeringFuzzingBinary AnalysisLearning & EducationArchived
GitHubtrailofbits/manticore

manticore

Symbolic execution tool

Repository anzeigen
3.9k497vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

⚠️ Projekt ist archiviert ⚠️

Dieses Projekt wird nicht mehr intern entwickelt und gewartet.

Manticore


Build Status Coverage Status PyPI Version Slack Status Documentation Status Example Status LGTM Total Alerts

Manticore ist ein Werkzeug zur symbolischen Ausführung für die Analyse von Smart Contracts und Binärdateien.

Funktionen

  • Programmerkundung: Manticore kann ein Programm mit symbolischen Eingaben ausführen und alle möglichen Zustände erkunden, die es erreichen kann
  • Eingabegenerierung: Manticore kann automatisch konkrete Eingaben erzeugen, die zu einem bestimmten Programmzustand führen
  • Fehlererkennung: Manticore kann Abstürze und andere Fehlerfälle in Binärdateien und Smart Contracts erkennen
  • Instrumentierung: Manticore ermöglicht eine feingranulare Steuerung der Zustandserkundung durch Ereignisrückrufe und Instruktions-Hooks
  • Programmierschnittstelle: Manticore bietet programmatischen Zugriff auf seine Analyse-Engine über eine Python-API

Manticore kann folgende Programmtypen analysieren:

  • Ethereum-Smart-Contracts (EVM-Bytecode)
  • Linux-ELF-Binärdateien (x86, x86_64, aarch64 und ARMv7)
  • WASM-Module

Installation

Hinweis: Wir empfehlen, Manticore in einer virtuellen Umgebung zu installieren, um Konflikte mit anderen Projekten oder Paketen zu vermeiden.

Option 1: Installation von PyPI:

root@kitploit:~
pip install manticore

Option 2: Installation von PyPI mit zusätzlichen Abhängigkeiten zur Ausführung nativer Binärdateien:

root@kitploit:~
pip install "manticore[native]"

Option 3: Installation eines nächtlichen Entwicklungsbuilds:

root@kitploit:~
pip install --pre "manticore[native]"

Option 4: Installation aus dem master-Branch:

root@kitploit:~
git clone https://github.com/trailofbits/manticore.git
cd manticore
pip install -e ".[native]"

Option 5: Installation über Docker:

root@kitploit:~
docker pull trailofbits/manticore

Nach der Installation stehen das CLI-Tool manticore und die Python-API zur Verfügung.

Für eine Entwicklungsinstallation siehe unser Wiki.

Verwendung

CLI

Manticore verfügt über eine Befehlszeilenschnittstelle, die eine grundlegende symbolische Analyse einer Binärdatei oder eines Smart Contracts durchführen kann. Die Analyseergebnisse werden in einem Arbeitsbereichsverzeichnis abgelegt, das mit mcore_ beginnt. Informationen zum Arbeitsbereich finden Sie im Wiki.

EVM

Die Manticore CLI erkennt automatisch, dass Sie einen Vertrag testen möchten, wenn (z. B.) der Vertrag die Erweiterung .sol oder .vy hat. Siehe eine Demo.

Zum Erweitern klicken:
root@kitploit:~
$ manticore examples/evm/umd_example.sol 
 [9921] m.main:INFO: Registered plugins: DetectUninitializedMemory, DetectReentrancySimple, DetectExternalCallAndLeak, ...
 [9921] m.e.manticore:INFO: Starting symbolic create contract
 [9921] m.e.manticore:INFO: Starting symbolic transaction: 0
 [9921] m.e.manticore:INFO: 4 alive states, 6 terminated states
 [9921] m.e.manticore:INFO: Starting symbolic transaction: 1
 [9921] m.e.manticore:INFO: 16 alive states, 22 terminated states
[13761] m.c.manticore:INFO: Generated testcase No. 0 - STOP(3 txs)
[13754] m.c.manticore:INFO: Generated testcase No. 1 - STOP(3 txs)
...
[13743] m.c.manticore:INFO: Generated testcase No. 36 - THROW(3 txs)
[13740] m.c.manticore:INFO: Generated testcase No. 37 - THROW(3 txs)
[9921] m.c.manticore:INFO: Results in ~/manticore/mcore_gsncmlgx
Manticore-verifier

Ein alternatives CLI-Werkzeug wird bereitgestellt, das das Testen von Verträgen vereinfacht und das Schreiben von Eigenschaftsmethoden in derselben Hochsprache wie der Vertrag ermöglicht. Schauen Sie sich die Dokumentation zu manticore-verifier an. Siehe eine Demo

Native

Zum Erweitern klicken:
root@kitploit:~
$ manticore examples/linux/basic
[9507] m.n.manticore:INFO: Loading program examples/linux/basic
[9507] m.c.manticore:INFO: Generated testcase No. 0 - Program finished with exit status: 0
[9507] m.c.manticore:INFO: Generated testcase No. 1 - Program finished with exit status: 0
[9507] m.c.manticore:INFO: Results in ~/manticore/mcore_7u7hgfay
[9507] m.n.manticore:INFO: Total time: 2.8029580116271973

API

Manticore bietet eine Python-Programmierschnittstelle, mit der leistungsstarke benutzerdefinierte Analysen implementiert werden können.

EVM

Für Ethereum-Smart-Contracts kann die API für die detaillierte Verifikation beliebiger Vertragseigenschaften verwendet werden. Benutzer können die Startbedingungen festlegen, symbolische Transaktionen ausführen und dann entdeckte Zustände überprüfen, um Invarianten für einen Vertrag sicherzustellen.

Zum Erweitern klicken:
root@kitploit:~
from manticore.ethereum import ManticoreEVM
contract_src="""
contract Adder {
    function incremented(uint value) public returns (uint){
        if (value == 1)
            revert();
        return value + 1;
    }
}
"""
m = ManticoreEVM()

user_account = m.create_account(balance=10000000)
contract_account = m.solidity_create_contract(contract_src,
                                              owner=user_account,
                                              balance=0)
value = m.make_symbolic_value()

contract_account.incremented(value)

for state in m.ready_states:
    print("can value be 1? {}".format(state.can_be_true(value == 1)))
    print("can value be 200? {}".format(state.can_be_true(value == 200)))

Native

Es ist auch möglich, die API zu verwenden, um benutzerdefinierte Analysetools für Linux-Binärdateien zu erstellen. Die Anpassung des Anfangszustands hilft, Probleme mit der Zustandsexplosion zu vermeiden, die bei Verwendung der CLI häufig auftreten.

Zum Erweitern klicken:
root@kitploit:~
# example Manticore script
from manticore.native import Manticore

m = Manticore.linux('./example')

@m.hook(0x400ca0)
def hook(state):
  cpu = state.cpu
  print('eax', cpu.EAX)
  print(cpu.read_int(cpu.ESP))

  m.kill()  # tell Manticore to stop

m.run()

WASM

Manticore kann auch WebAssembly-Funktionen mit symbolischen Eingaben für die Eigenschaftsvalidierung oder allgemeine Analyse auswerten.

Zum Erweitern klicken:
root@kitploit:~
from manticore.wasm import ManticoreWASM

m = ManticoreWASM("collatz.wasm")

def arg_gen(state):
    # Generate a symbolic argument to pass to the collatz function.
    # Possible values: 4, 6, 8
    arg = state.new_symbolic_value(32, "collatz_arg")
    state.constrain(arg > 3)
    state.constrain(arg < 9)
    state.constrain(arg % 2 == 0)
    return [arg]


# Run the collatz function with the given argument generator.
m.collatz(arg_gen)

# Manually collect return values
# Prints 2, 3, 8
for idx, val_list in enumerate(m.collect_returns()):
    print("State", idx, "::", val_list[0])

Anforderungen

  • Manticore erfordert Python 3.7 oder höher
  • Manticore unterstützt offiziell die neueste von GitHub Actions bereitgestellte LTS-Version von Ubuntu
    • Manticore bietet experimentelle Unterstützung für EVM und WASM (aber nicht für native Linux-Binärdateien) unter MacOS
  • Wir empfehlen die Ausführung mit erhöhter Stack-Größe. Dies kann durch Ausführen von ulimit -s 100000 oder durch Übergabe von --ulimit stack=100000000:100000000 an docker run erfolgen

Kompilieren von Smart Contracts

  • Die Analyse von Ethereum-Smart-Contracts erfordert das Programm solc in Ihrem $PATH.
  • Manticore verwendet crytic-compile, um Smart Contracts zu erstellen. Wenn Sie Kompilierungsprobleme haben, sollten Sie erwägen, crytic-compile direkt auf Ihren Code anzuwenden, um Probleme leichter zu identifizieren.
  • Wir implementieren derzeit die vollständige Unterstützung für die EVM-Istanbul-Instruktionssemantik, daher werden einige Opcodes möglicherweise nicht unterstützt. Im Notfall können Sie versuchen, mit Solidity 0.4.x zu kompilieren, um die Erzeugung dieser Instruktionen zu vermeiden.

Verwendung eines anderen Lösers (Yices, Z3, CVC4)

Manticore verwendet einen externen Löser, der smtlib2 unterstützt. Derzeit werden Z3, Yices und CVC4 unterstützt und können über die Befehlszeile oder Konfigurationseinstellungen ausgewählt werden. Wenn Yices verfügbar ist, wird Manticore es standardmäßig verwenden. Falls nicht, fällt es auf Z3 oder CVC4 zurück. Wenn Sie manuell auswählen möchten, welcher Löser verwendet werden soll, können Sie dies wie folgt tun: manticore --smt.solver Z3

Installieren von CVC4

Weitere Details finden Sie unter https://cvc4.github.io/. Andernfalls laden Sie einfach die Binärdatei herunter und verwenden Sie sie.

root@kitploit:~
    sudo wget -O /usr/bin/cvc4 https://github.com/CVC4/CVC4/releases/download/1.7/cvc4-1.7-x86_64-linux-opt
    sudo chmod +x /usr/bin/cvc4

Installieren von Yices

Yices ist unglaublich schnell. Weitere Details finden Sie unter https://yices.csl.sri.com/

root@kitploit:~
    sudo add-apt-repository ppa:sri-csl/formal-methods
    sudo apt-get update
    sudo apt-get install yices2

Hilfe erhalten

Besuchen Sie gerne unseren #manticore-Slack-Kanal im Empire Hacking für Hilfe bei der Verwendung oder Erweiterung von Manticore.

Dokumentation ist an mehreren Stellen verfügbar:

  • Das Wiki enthält Informationen zum Einstieg in Manticore und zum Beitragen

  • Die API-Referenz enthält ausführlichere und tiefgehendere Dokumentation zu unserer API

  • Das Verzeichnis Beispiele enthält einige kleine Beispiele, die API-Funktionen vorstellen

  • Das Repository manticore-examples enthält einige komplexere Beispiele, darunter echte CTF-Probleme

Wenn Sie einen Fehlerbericht oder eine Funktionsanfrage einreichen möchten, nutzen Sie bitte unsere Issues-Seite.

Für Fragen und Klarstellungen besuchen Sie bitte die Diskussionsseite.

Lizenz

Manticore ist unter der AGPLv3-Lizenz lizenziert und verteilt. Kontaktieren Sie uns, wenn Sie nach einer Ausnahme zu den Bedingungen suchen.

Veröffentlichungen

  • Manticore: A User-Friendly Symbolic Execution Framework for Binaries and Smart Contracts, Mark Mossberg, Felipe Manzano, Eric Hennenfent, Alex Groce, Gustavo Grieco, Josselin Feist, Trent Brunson, Artem Dinaburg - ASE 19

Wenn Sie Manticore in akademischen Arbeiten verwenden, ziehen Sie eine Bewerbung für den Crytic $10k Research Prize in Betracht.

Demovideo von der ASE 2019

Brief Manticore demo video

Tool-Integrationen

  • MATE: Merged Analysis To prevent Exploits
    • Mantiserve: REST-API-Interaktion mit Manticore zum Starten, Beenden und Überprüfen der Manticore-Instanz
    • Dwarfcore: Plugins und Detektoren zur Verwendung innerhalb der Mantiserve-Engine während der Erkundung
    • Unter-eingeschränkte symbolische Ausführung Schnittstelle zur symbolischen Erkundung einzelner Funktionen mit Manticore
Tool herunterladen