Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
manticore — Herramienta de ejecución simbólica | Kitploit
Herramientas/GitHubGitHub/trailofbits/manticore
Análisis EstáticoAnálisis Dinámico (Sandboxing)Ingeniería InversaFuzzingAnálisis de BinariosAprendizaje y EducaciónArchived
GitHubtrailofbits/manticore

manticore

Herramienta de ejecución simbólica

Ver Repositorio
3.9k4978hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Sitio web
Compartir

⚠️ Project is archived ⚠️

Este proyecto ya no se desarrolla ni mantiene internamente.

Manticore


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

Descargar herramienta

Manticore es una herramienta de ejecución simbólica para el análisis de contratos inteligentes y binarios.

Características

  • Exploración de programas: Manticore puede ejecutar un programa con entradas simbólicas y explorar todos los estados posibles que puede alcanzar
  • Generación de entradas: Manticore puede producir automáticamente entradas concretas que resulten en un estado de programa dado
  • Descubrimiento de errores: Manticore puede detectar caídas y otros casos de fallo en binarios y contratos inteligentes
  • Instrumentación: Manticore proporciona un control detallado de la exploración de estados mediante callbacks de eventos y hooks de instrucciones
  • Interfaz programática: Manticore expone acceso programático a su motor de análisis a través de una API de Python

Manticore puede analizar los siguientes tipos de programas:

  • Contratos inteligentes de Ethereum (bytecode EVM)
  • Binarios ELF de Linux (x86, x86_64, aarch64 y ARMv7)
  • Módulos WASM

Instalación

Nota: Recomendamos instalar Manticore en un entorno virtual para evitar conflictos con otros proyectos o paquetes

Opción 1: Instalación desde PyPI:

root@kitploit:~
pip install manticore

Opción 2: Instalación desde PyPI, con dependencias adicionales necesarias para ejecutar binarios nativos:

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

Opción 3: Instalación de una compilación de desarrollo nocturna:

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

Opción 4: Instalación desde la rama master:

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

Opción 5: Instalación mediante Docker:

root@kitploit:~
docker pull trailofbits/manticore

Una vez instalado, la herramienta CLI de manticore y la API de Python estarán disponibles.

Para una instalación de desarrollo, consulte nuestra wiki.

Uso

CLI

Manticore tiene una interfaz de línea de comandos que puede realizar un análisis simbólico básico de un binario o contrato inteligente. Los resultados del análisis se colocarán en un directorio de espacio de trabajo que comienza con mcore_. Para obtener información sobre el espacio de trabajo, consulte la wiki.

EVM

La CLI de Manticore detecta automáticamente que estás intentando probar un contrato si (por ejemplo) el contrato tiene una extensión .sol o .vy. Vea una demo.

Haga clic para expandir:
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

Se proporciona una herramienta CLI alternativa que simplifica las pruebas de contratos y permite escribir métodos de propiedades en el mismo lenguaje de alto nivel que utiliza el contrato. Consulte la documentación de manticore-verifier. Vea una demo

Nativo

Haga clic para expandir:
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 proporciona una interfaz de programación Python que se puede utilizar para implementar potentes análisis personalizados.

EVM

Para contratos inteligentes de Ethereum, la API se puede utilizar para la verificación detallada de propiedades arbitrarias del contrato. Los usuarios pueden establecer las condiciones iniciales, ejecutar transacciones simbólicas y luego revisar los estados descubiertos para asegurar que se mantengan los invariantes de un contrato.

Haga clic para expandir:
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)))

Nativo

También es posible utilizar la API para crear herramientas de análisis personalizadas para binarios de Linux. Ajustar el estado inicial ayuda a evitar los problemas de explosión de estados que ocurren comúnmente al usar la CLI.

Haga clic para expandir:
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 también puede evaluar funciones de WebAssembly sobre entradas simbólicas para validación de propiedades o análisis general.

Haga clic para expandir:
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])

Requisitos

  • Manticore requiere Python 3.7 o superior
  • Manticore admite oficialmente la última versión LTS de Ubuntu proporcionada por Github Actions
    • Manticore tiene soporte experimental para EVM y WASM (pero no para binarios nativos de Linux) en MacOS
  • Recomendamos ejecutar con un tamaño de pila aumentado. Esto se puede hacer ejecutando ulimit -s 100000 o pasando --ulimit stack=100000000:100000000 a docker run

Compilación de Contratos Inteligentes

  • El análisis de contratos inteligentes de Ethereum requiere el programa solc en tu $PATH.
  • Manticore usa crytic-compile para compilar contratos inteligentes. Si tienes problemas de compilación, considera ejecutar crytic-compile directamente sobre tu código para facilitar la identificación de cualquier problema.
  • Todavía estamos en proceso de implementar soporte completo para la semántica de instrucciones EVM Istanbul, por lo que ciertos opcodes pueden no ser compatibles. En caso de apuro, puedes intentar compilar con Solidity 0.4.x para evitar generar esas instrucciones.

Usando un solucionador diferente (Yices, Z3, CVC4)

Manticore depende de un solucionador externo que admita smtlib2. Actualmente, Z3, Yices y CVC4 son compatibles y se pueden seleccionar mediante la línea de comandos o la configuración. Si Yices está disponible, Manticore lo usará por defecto. Si no, recurrirá a Z3 o CVC4. Si deseas elegir manualmente qué solucionador usar, puedes hacerlo así: manticore --smt.solver Z3

Instalando CVC4

Para más detalles, visite https://cvc4.github.io/. De lo contrario, simplemente obtenga el binario y utilícelo.

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

Instalando Yices

Yices es increíblemente rápido. Más detalles aquí 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

Obteniendo Ayuda

No dudes en pasar por nuestro canal de slack #manticore en Empire Hacking para obtener ayuda sobre cómo usar o extender Manticore.

La documentación está disponible en varios lugares:

  • La wiki contiene información sobre cómo empezar con Manticore y contribuir

  • La referencia de la API tiene documentación más exhaustiva y detallada sobre nuestra API

  • El directorio examples tiene algunos ejemplos pequeños que muestran las características de la API

  • El repositorio manticore-examples tiene algunos ejemplos más complejos, incluyendo algunos problemas reales de CTF

Si deseas informar un error o solicitar una función, utiliza nuestra página de issues.

Para preguntas y aclaraciones, visita la página de discusión.

Licencia

Manticore está licenciado y distribuido bajo la licencia AGPLv3. Contáctenos si busca una excepción a los términos.

Publicaciones

  • 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

Si estás usando Manticore en trabajos académicos, considera postularte al Crytic $10k Research Prize.

Demo Video from ASE 2019

Brief Manticore demo video

Tool Integrations

  • MATE: Merged Analysis To prevent Exploits
    • Mantiserve: Interacción con la API REST de Manticore para iniciar, detener y verificar la instancia de Manticore
    • Dwarfcore: Plugins y detectores para usar dentro del motor Mantiserve durante la exploración
    • Under-constrained symbolic execution Interfaz para explorar simbólicamente funciones individuales con Manticore