Inspecteur WebAssembly
WebAssembly Inspector
Liste les imports, les exports, la mémoire et la taille des sections d’un module .wasm et en imprime le format texte.
Ouvre un fichier `.wasm` et montre ce qu'il y a dedans : les sections et leurs tailles, chaque import et chaque export, les déclarations de mémoire et de table, et les noms de fonctions de la section de noms si la compilation les a gardés. Le module est analysé, jamais instancié ni exécuté.
Déposez un module .wasm
Analysé dans cet onglet : le module est inspecté, jamais instancié ni exécuté.
WebAssembly.validate du navigateur lui-même. Les corps de fonction sont mesurés, pas désassemblés : on voit ce qu’un module déclare et ce à quoi il touche, pas une conversion complète vers le format texte.Comment s’en servir
Déposez le module
N'importe quel fichier `.wasm`. Il est lu dans cet onglet et recoupé avec le `WebAssembly.validate` du navigateur lui-même : vous obtenez donc un second avis sur sa bonne formation.
Regardez d'abord les sections
La table des tailles est le moyen le plus rapide de voir où sont passés les octets — une grosse section de données signifie des ressources embarquées, une grosse section personnalisée est en général des noms de débogage ou du DWARF.
Lisez les imports
Les imports sont tout le contrat du module avec son hôte — chaque fonction qu'il peut appeler et chaque mémoire qu'il partage. Si vous auditez un module que vous n'avez pas compilé, c'est cette liste qui compte.
Questions fréquentes
Puis-je voir le code lui-même ?
Non. Les corps de fonctions sont mesurés, pas désassemblés — ceci rapporte ce qu'un module déclare et touche plutôt que de le convertir au format texte. `wasm2wat`, de la boîte à outils WABT, est l'outil du désassemblage complet.
Pourquoi les noms de fonctions manquent-ils ?
Parce que la compilation a retiré la section personnalisée de noms, ce que fait normalement une compilation de release. Les exports gardent leurs noms quoi qu'il arrive — ils font partie de l'interface du module — : une fonction exportée reste donc identifiable.
Un module qui a des imports est-il dangereux ?
Pas en soi — WebAssembly ne peut atteindre que ce que l'hôte lui remet, et un module sans imports ne peut pas toucher au monde extérieur du tout. Ce que les imports nomment est exactement ce qu'il peut faire, et c'est pourquoi il vaut la peine de les lire avant d'instancier quelque chose.
La validation du moteur dit « invalide » alors que l'analyse a réussi.
Les deux vérifient des choses différentes. L'analyse lit la structure ; `WebAssembly.validate` vérifie en plus le typage de chaque corps de fonction. Un module peut avoir une disposition de sections parfaitement lisible et être tout de même rejeté — un fichier tronqué, ou une étape de post-traitement qui a réécrit des octets qu'elle n'aurait pas dû toucher.
À alimenter depuis
Visionneuse hexadécimale
Hex Viewer
Affiche n’importe quel fichier en vidage décalage, hexadécimal et ASCII, identifie les octets d’en-tête et met en évidence une recherche.
Encodeur et décodeur Base64
Base64 Encoder & Decoder
Encode et décode en Base64 et en Base64URL, pour du texte comme pour des fichiers, avec un traitement correct de l’UTF-8.
Générateur de paire de clés
Key Pair Generator
Produit des paires de clés RSA, ECDSA ou Ed25519 et les exporte en PEM, en JWK ou en OpenSSH.
Générateur de clé SSH
SSH Key Generator
Produit une paire de clés OpenSSH avec commentaire et affiche son empreinte. La clé privée sort sans phrase secrète : ajoutez-en une localement avec ssh-keygen -p.
Ensuite
Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.
Explorateur d’image Docker
Docker Image Explorer
Ouvre une archive d’image exportée et montre pour chaque couche la commande, le poids et les fichiers ajoutés ou supprimés.
Visionneuse hexadécimale
Hex Viewer
Affiche n’importe quel fichier en vidage décalage, hexadécimal et ASCII, identifie les octets d’en-tête et met en évidence une recherche.
Formater ou minifier du JavaScript
JavaScript Beautifier & Minifier
Retire commentaires et espaces d’un JavaScript ou d’un TypeScript sans rien renommer, et réindente un bundle minifié pour qu’il redevienne lisible.
Encodeur et décodeur Base64
Base64 Encoder & Decoder
Encode et décode en Base64 et en Base64URL, pour du texte comme pour des fichiers, avec un traitement correct de l’UTF-8.
curl vers code
curl to Code
Traduit une commande curl en fetch, axios, requests Python, Go, PHP ou PowerShell.
Hachage de texte
Text Hash
Calcule le MD5, le SHA-1, le SHA-256, le SHA-384, le SHA-512 et le CRC-32 d’une chaîne, avec sortie en majuscules ou en Base64.