Inspetor de WebAssembly
WebAssembly Inspector
Lista imports, exports, memória e tamanho das seções de um módulo .wasm e imprime seu formato de texto.
Abre um arquivo `.wasm` e mostra o que há dentro: as seções e seus tamanhos, cada importação e exportação, as declarações de memória e de tabela, e os nomes das funções da seção de nomes se o build os manteve. O módulo é analisado, nunca instanciado nem executado.
Solte um módulo .wasm
Analisado nesta aba: o módulo é inspecionado, nunca instanciado nem executado.
WebAssembly.validate do navegador. Os corpos das funções são medidos, não desmontados: isto mostra o que um módulo declara e no que ele encosta, não uma conversão completa para o formato de texto.Como usar
Solte o módulo
Qualquer arquivo `.wasm`. Ele é lido nesta aba e conferido contra o próprio `WebAssembly.validate` do navegador, então você tem uma segunda opinião sobre se ele é bem-formado.
Olhe as seções primeiro
A tabela de tamanhos é o jeito mais rápido de ver para onde foram os bytes: uma seção de dados grande significa recursos embutidos, uma seção personalizada grande normalmente é nomes de depuração ou DWARF.
Leia as importações
As importações são todo o contrato do módulo com o host: cada função que ele pode chamar e cada memória que compartilha. Se você está auditando um módulo que não construiu, esta é a lista que importa.
Perguntas frequentes
Posso ver o código em si?
Não. Os corpos das funções são medidos, não desmontados: isto relata o que um módulo declara e toca em vez de convertê-lo para o formato de texto. O `wasm2wat` do kit WABT é a ferramenta para uma desmontagem completa.
Por que os nomes das funções estão faltando?
Porque o build removeu a seção personalizada de nomes, que é o que um build de release normalmente faz. As exportações mantêm seus nomes de qualquer forma — são parte da interface do módulo —, então uma função exportada continua identificável.
Um módulo com importações é perigoso?
Não por si só: WebAssembly só alcança o que o host lhe entrega, e um módulo sem importações não consegue tocar o mundo externo de jeito nenhum. O que as importações nomeiam é exatamente o que ele pode fazer, e é por isso que vale lê-las antes de instanciar algo.
A validação do motor diz inválido, mas ele foi analisado.
Elas conferem coisas diferentes. A análise lê a estrutura; `WebAssembly.validate` também checa os tipos de cada corpo de função. Um módulo pode ter um layout de seções perfeitamente legível e ainda assim ser rejeitado: um arquivo truncado ou uma etapa de pós-processamento que reescreveu bytes que não devia.
Pode receber de
Visualizador hexadecimal
Hex Viewer
Mostra qualquer arquivo como despejo offset/hex/ASCII, identifica os magic bytes e destaca uma busca.
Codificar e decodificar Base64
Base64 Encoder & Decoder
Codifica e decodifica Base64 e Base64URL para texto ou arquivos, tratando UTF-8 corretamente.
Gerador de par de chaves
Key Pair Generator
Gera pares de chaves RSA, ECDSA ou Ed25519 e os exporta como PEM, JWK ou OpenSSH.
Gerador de chave SSH
SSH Key Generator
Gera um par de chaves OpenSSH com comentário e mostra a fingerprint — as chaves nascem no seu navegador e nunca são transmitidas. A chave privada sai sem senha: coloque uma com ssh-keygen -p.
Em seguida
Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.
Explorador de imagem Docker
Docker Image Explorer
Abre o tarball de uma imagem exportada e mostra o comando, o tamanho e os arquivos adicionados ou apagados por cada camada.
Visualizador hexadecimal
Hex Viewer
Mostra qualquer arquivo como despejo offset/hex/ASCII, identifica os magic bytes e destaca uma busca.
Formatador e minificador de JavaScript
JavaScript Beautifier & Minifier
Remove comentários e espaços de JavaScript ou TypeScript sem renomear nada, e reindenta um bundle minificado para que dê para ler de novo.
Codificar e decodificar Base64
Base64 Encoder & Decoder
Codifica e decodifica Base64 e Base64URL para texto ou arquivos, tratando UTF-8 corretamente.
curl para código
curl to Code
Converte um comando curl em fetch, axios, Python requests, Go, PHP ou PowerShell.
Hash de texto
Text Hash
Calcula MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 de uma string, com opção de saída em maiúsculas e Base64.