Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
manticore — Ferramenta de execução simbólica | Kitploit
Ferramentas/GitHubGitHub/trailofbits/manticore
Análise EstáticaAnálise Dinâmica (Sandboxing)Engenharia ReversaFuzzingAnálise de BináriosAprendizado e EducaçãoArchived
GitHubtrailofbits/manticore

manticore

Ferramenta de execução simbólica

Ver Repositório
3.9k497há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

⚠️ Projeto arquivado ⚠️

Este projeto não é mais desenvolvido e mantido internamente.

Manticore


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

Manticore é uma ferramenta de execução simbólica para análise de contratos inteligentes e binários.

Recursos

  • Exploração de Programas: Manticore pode executar um programa com entradas simbólicas e explorar todos os estados possíveis que pode alcançar
  • Geração de Entradas: Manticore pode produzir automaticamente entradas concretas que resultam em um estado de programa específico
  • Descoberta de Erros: Manticore pode detectar falhas e outros casos de erro em binários e contratos inteligentes
  • Instrumentação: Manticore fornece controle refinado da exploração de estados por meio de callbacks de eventos e hooks de instrução
  • Interface Programática: Manticore expõe acesso programático ao seu mecanismo de análise via uma API Python

Manticore pode analisar os seguintes tipos de programas:

  • Contratos inteligentes Ethereum (bytecode EVM)
  • Binários ELF Linux (x86, x86_64, aarch64 e ARMv7)
  • Módulos WASM

Instalação

Nota: Recomendamos instalar o Manticore em um ambiente virtual para evitar conflitos com outros projetos ou pacotes

Opção 1: Instalando a partir do PyPI:

root@kitploit:~
pip install manticore

Opção 2: Instalando a partir do PyPI, com dependências extras necessárias para executar binários nativos:

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

Opção 3: Instalando uma versão de desenvolvimento nightly:

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

Opção 4: Instalando a partir do branch master:

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

Opção 5: Instalar via Docker:

root@kitploit:~
docker pull trailofbits/manticore

Uma vez instalado, a ferramenta CLI manticore e a API Python estarão disponíveis.

Para uma instalação de desenvolvimento, veja nossa wiki.

Uso

CLI

Manticore possui uma interface de linha de comando que pode realizar uma análise simbólica básica de um binário ou contrato inteligente. Os resultados da análise serão colocados em um diretório de workspace começando com mcore_. Para informações sobre o workspace, veja a wiki.

EVM

A CLI do Manticore detecta automaticamente que você está tentando testar um contrato se (por ex.) o contrato tiver uma extensão .sol ou .vy. Veja uma demo.

Clique 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

Uma ferramenta CLI alternativa é fornecida que simplifica o teste de contratos e permite escrever métodos de propriedades na mesma linguagem de alto nível que o contrato usa. Confira a documentação do manticore-verifier. Veja uma demo

Nativo

Clique 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 fornece uma interface de programação Python que pode ser usada para implementar análises personalizadas poderosas.

EVM

Para contratos inteligentes Ethereum, a API pode ser usada para verificação detalhada de propriedades arbitrárias do contrato. Os usuários podem definir as condições iniciais, executar transações simbólicas e então revisar os estados descobertos para garantir que invariantes de um contrato sejam mantidos.

Clique 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

Também é possível usar a API para criar ferramentas de análise personalizadas para binários Linux. Personalizar o estado inicial ajuda a evitar problemas de explosão de estados que comumente ocorrem ao usar a CLI.

Clique 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 também pode avaliar funções WebAssembly sobre entradas simbólicas para validação de propriedades ou análise geral.

Clique 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 requer Python 3.7 ou superior
  • Manticore suporta oficialmente a versão LTS mais recente do Ubuntu fornecida pelo Github Actions
    • Manticore tem suporte experimental para EVM e WASM (mas não binários Linux nativos) no MacOS
  • Recomendamos executar com tamanho de pilha aumentado. Isso pode ser feito executando ulimit -s 100000 ou passando --ulimit stack=100000000:100000000 para docker run

Compilando Contratos Inteligentes

  • A análise de contratos inteligentes Ethereum requer o programa solc em seu $PATH.
  • Manticore usa crytic-compile para construir contratos inteligentes. Se você estiver tendo problemas de compilação, considere executar crytic-compile diretamente em seu código para facilitar a identificação de quaisquer problemas.
  • Ainda estamos no processo de implementar suporte completo para a semântica de instruções EVM Istanbul, então certos opcodes podem não ser suportados. Em caso de necessidade, você pode tentar compilar com Solidity 0.4.x para evitar gerar essas instruções.

Usando um solver diferente (Yices, Z3, CVC4)

Manticore depende de um solver externo compatível com smtlib2. Atualmente Z3, Yices e CVC4 são suportados e podem ser selecionados via linha de comando ou configurações. Se Yices estiver disponível, Manticore o usará por padrão. Caso contrário, ele usará Z3 ou CVC4. Se você quiser escolher manualmente qual solver usar, pode fazer assim: manticore --smt.solver Z3

Instalando CVC4

Para mais detalhes, acesse https://cvc4.github.io/. Caso contrário, apenas obtenha o binário e use-o.

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 é incrivelmente rápido. Mais detalhes aqui 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

Obtendo Ajuda

Sinta-se à vontade para visitar nosso canal #manticore no Slack do Empire Hacking para ajuda com o uso ou extensão do Manticore.

A documentação está disponível em vários lugares:

  • A wiki contém informações sobre como começar com o Manticore e contribuir

  • A referência da API possui documentação mais completa e aprofundada sobre nossa API

  • O diretório examples possui alguns exemplos pequenos que mostram recursos da API

  • O repositório manticore-examples possui alguns exemplos mais complexos, incluindo problemas reais de CTF

Se você gostaria de registrar um relatório de bug ou solicitação de recurso, por favor, use nossa página de issues.

Para perguntas e esclarecimentos, visite a página de discussão.

Licença

Manticore é licenciado e distribuído sob a licença AGPLv3. Contate-nos se você estiver procurando por uma exceção aos termos.

Publicações

  • Manticore: Uma Estrutura de Execução Simbólica Amigável para Binários e Contratos Inteligentes, Mark Mossberg, Felipe Manzano, Eric Hennenfent, Alex Groce, Gustavo Grieco, Josselin Feist, Trent Brunson, Artem Dinaburg - ASE 19

Se você está usando Manticore em trabalho acadêmico, considere se candidatar ao Prêmio de Pesquisa Crytic de $10k.

Vídeo de Demonstração da ASE 2019

Brief Manticore demo video

Integrações de Ferramentas

  • MATE: Análise Mesclada para Prevenir Explorações
    • Mantiserve: Interação com API REST do Manticore para iniciar, encerrar e verificar a instância do Manticore
    • Dwarfcore: Plugins e detectores para uso dentro do mecanismo Mantiserve durante a exploração
    • Execução simbólica sub-restrita Interface para explorar simbolicamente funções individuais com o Manticore
Baixar ferramenta