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:
- Inline Bookmarks
- Solidity Visual Developer
- EthOver
- Slither VSCode
- GraphViz Interactive Preview
- 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.
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.
Algumas das características desta extensão são:
- Realce de sintaxe
- Realce semântico
- Recursos de gráficos e relatórios
- Recursos de revisão
- 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.
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.
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.
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.
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
oudot
. - 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
.
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.
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)