WEB3DEV

Cover image for As 5 Principais Extensões do VS Code para Invasões de Contratos Inteligentes
Paulo Gio
Paulo Gio

Posted on

As 5 Principais Extensões do VS Code para Invasões de Contratos Inteligentes

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*uE9PRAeKAq_rMpvLhYTtvw.png

Olá, eu sou Samrat Gupta, também conhecido como Sm4rty, um auditor de Contratos Inteligentes na QuillAudits e um caçador de recompensas por bugs em meio período. Neste blog, vou compartilhar algumas extensões do VS Code usadas em invasões de Contratos Inteligentes. O uso dessas extensões ajudará você a encontrar bugs e ser eficiente na caça desses bugs em Contratos Inteligentes. Vamos começar:

Índice:

  1. Inline Bookmarks
  2. Solidity Visual Developer
  3. EthOver
  4. Slither VSCode
  5. GraphViz Interactive Preview
  6. MythXvsc [BÔNUS]

1. Inline Bookmarks:

A extensão Inline Bookmarks ajuda a marcar o próprio código. A extensão pode ser usada para acompanhar notas de desenvolvimento e tarefas (to-do) a serem feitas, para revisão de documentos e para fins de análise de registro e auditoria. Como as marcações são armazenadas com seus documentos, você pode facilmente compartilhar suas notas e marcações com outras pessoas.

https://miro.medium.com/v2/resize:fit:1100/0*X5ZUafVoP8Rkpk2y.gif

As seguintes palavras/tags de gatilho-padrão são configuradas por padrão:

  • @todo - (azul) Observação geral de tarefa a ser feita.
  • @note - (azul) Observação geral.
  • @remind - (azul) Observação geral.
  • @follow-up - (azul) Observação geral.
  • @audit - (vermelho) Marcador geral para possíveis problemas.
  • @audit-info - (azul) Marcador geral para informações a serem observadas para uso posterior.
  • @audit-ok - (verde) Adicione uma observação que uma linha específica não é um problema, mesmo que possa parecer.
  • @audit-issue - (roxo) Referência a uma localização de código para a qual um problema foi registrado.

Referência:

https://github.com/tintinweb/vscode-inline-bookmarks

2. Solidity Visual Developer:

Esta é uma extensão indispensável para um auditor de Contratos Inteligentes. As características desta extensão são bastante impressionantes. Esta extensão contribui com realce de sintaxe e semântica centrados na segurança, um esboço detalhado da classe, visualizações especializadas, insights avançados de código Solidity e melhoria para o Visual Studio Code.

https://miro.medium.com/v2/resize:fit:1100/0*XP1ZUo6oQKEC9qNN.gif

Algumas das características desta extensão são:

  1. Realce de sintaxe
  2. Realce semântico
  3. Recursos de gráficos e relatórios
  4. Recursos de revisão
  5. Múltiplas visualizações

Referência: https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor

3. EthOver

Às vezes, codificamos os endereços do contrato inteligente para integrá-los aos nossos. A extensão EthOver é usada para visualizar instantaneamente os detalhes dos endereços codificados em contratos inteligentes. Isso economiza muito tempo, pois você não precisa copiar e colar o endereço no Etherscan repetidamente.

https://miro.medium.com/v2/resize:fit:1100/0*6I-iQyMba1lZFYx1.gif

Tudo o que você precisa fazer é passar o mouse sobre um endereço Ethereum e obter uma série de opções, como:

  • Abrir no Etherscan.
  • Mostrar o saldo do endereço ao passar o mouse.
  • Baixar o bytecode e desmontá-lo.
  • Baixar o bytecode e mostrá-lo.
  • Mostrar a fonte do contrato verificado (etherscan.io).
  • Mostrar a fonte do contrato reconstruída a partir de eveem.org.
  • Mostrar a fonte do contrato reconstruída a partir de evm.js.
  • Executar o vscode-decompiler para descompilar o contrato manualmente usando localmente o panoramix (eveem.org).

Referência:

https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-ethover

4. Slither vscode

Esta extensão oferece integração do Visual Studio Code para o Slither, um framework de análise estática do Solidity escrito em Python 3. Com o Slither para Visual Studio Code, os usuários podem executar um conjunto de detectores de vulnerabilidades em seus contratos inteligentes Solidity para anotar o código potencialmente perigoso e receber correções sugeridas.

https://miro.medium.com/v2/resize:fit:1100/format:webp/0*O8DyOqArSS1zhOfL.png

Ele fornece uma visualização limpa de todos os bugs encontrados, ao contrário da versão CLI do Slither, onde é um pouco difícil de ler. Se você está usando o Slither, é recomendável ter uma extensão do VS Code para ele.

Algumas características do Slither são:

  • Analisar espaços de trabalho abertos.
  • Explorar resultados em uma árvore personalizada, classificada por tipo ou gravidade de problema.
  • Visualizar resultados como informações / avisos / erros nativos do Visual Studio Code.
  • Ver anotações para o código-fonte relevante de cada problema.
  • Imprimir descrições detalhadas do problema e recomendações.
  • Filtrar problemas por tipo (por configuração do espaço de trabalho).
  • Especificar caminho do compilador oficial do Solidity (solc) personalizado (por configuração do espaço de trabalho).
  • Realce de sintaxe Solidity.

Referência:

https://marketplace.visualstudio.com/items?itemName=trailofbits.slither-vscode

5. GraphViz Interactive Preview

GraphViz Interactive Preview é uma extensão do VSCode que oferece recursos como realce de sintaxe, snippets e uma visualização interativa ao vivo com zoom, pan e pesquisa, com rastreamento de borda para gráficos no formato Graphviz / dot. Ele aumenta sua eficiência, especialmente se o projeto que você está auditando é grande. Mapas mentais ajudam a obter uma compreensão geral do fluxo do projeto.

https://miro.medium.com/v2/resize:fit:1100/0*qD_HFM-Ubg-kqZ0B.gif

Algumas características do Graphviz são:

  • Ele renderiza fontes dot/Graphviz em uma visualização ao vivo interativa.
  • Ele atualiza a visualização conforme você digita.
  • Você pode procurar por nós no grafo.
  • Você também pode exportar o gráfico como svg ou dot.
  • Rastreamento de borda interativo. Clique em um nó para destacar as bordas de entrada e saída (ESC para desmarcar). A direção do destaque pode ser alterada (opções: única, para cima, para baixo, bidirecional).
  • Ele tem um motor de renderização configurável, opções de renderização e preferência de rastreamento: por exemplo, transitionDelay, transitionDuration.

Referência:

https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview

[BÔNUS] Mythx VSC:

MythX é um conjunto de técnicas de análise que detecta automaticamente vulnerabilidades de segurança em contratos inteligentes Ethereum. MythX VSC é uma extensão para executar análise de contrato inteligente MythX a partir do Visual Studio Code.

https://miro.medium.com/v2/resize:fit:1100/format:webp/0*p_BSyGq4xKUYcuSt.png

O MythX usa uma chave de API para autenticação. Depois de configurar sua conta, vá para o dashboard.mythx.io/. Na seção do Perfil, há um elemento rotulado como MythX API Key.

Algumas das características desta extensão são:

  • Compilação de contratos inteligentes (por meio da extensão Solidity do VS Code).
  • Autenticação na plataforma MythX.
  • Extração de AST do código fonte compilado.
  • Envio de análises.
  • Exibição dos resultados da análise no VS Code em um formato de linting.

Referência: https://marketplace.visualstudio.com/items?itemName=MythX.mythxvsc

Artigo original escrito por Sm4rty. Traduzido por Paulinho Giovannini.

Top comments (0)