Visionneuse de bytecode DEX
Téléversez un fichier DEX (Dalvik Executable) pour consulter sa structure de bytecode, les instructions Dalvik, les opcodes, les mnémoniques, l'usage des registres et les définitions de méthodes. Analysez la structure DEX complète, y compris les champs d'en-tête, les tables de chaînes, les tables de types/prototypes/champs/méthodes, les définitions de classes et le désassemblage complet au niveau des instructions. Gratuit, privé et sans inscription.
Drop a DEX file here or click to browse
Supports .dex, .apk (extract classes.dex), and .odex files
Upload a DEX file to view its bytecode structure. The viewer parses the DEX header, string/type/proto/field/method tables, class definitions, and Dalvik bytecode instructions with full disassembly.
Pourquoi utiliser notre visionneuse de bytecode DEX ?
- Analyse complète de la structure DEX : Analyse tout le format de fichier DEX, y compris l'en-tête, les ID de chaînes, les ID de types, les ID de prototypes, les ID de champs, les ID de méthodes, les définitions de classes et les éléments de code. Consultez chaque élément structurel de votre fichier DEX avec les décalages et tailles bruts.
- Désassemblage complet du bytecode Dalvik : Désassemble les instructions Dalvik en mnémoniques lisibles avec les opérandes de registre, les références de méthode, les descripteurs de type et les constantes de chaîne. Prend en charge tous les principaux formats d'instruction, notamment 35c (invoke) et 3rc (invoke/range).
- Explorateur d'arborescence de classes et méthodes : Naviguez parmi les classes et leurs méthodes dans une vue arborescente dépliable. Consultez les indicateurs d'accès, la superclasse, les interfaces, le fichier source, l'usage des registres et le bytecode au niveau des instructions pour chaque méthode. Dépliez n'importe quelle classe ou méthode pour tous les détails.
- 100 % local dans le navigateur et privé : Toute l'analyse et le désassemblage DEX s'exécutent entièrement dans votre navigateur. Votre fichier DEX, les instructions de bytecode et la structure analysée ne quittent jamais votre appareil. Aucun envoi, aucun serveur, aucun suivi — totalement sûr pour analyser n'importe quel fichier DEX.
Cas d'usage courants de la visionneuse de bytecode DEX
- Analyse de malware et ingénierie inverse : Analysez les fichiers APK Android à la recherche de comportements malveillants en examinant les instructions de bytecode Dalvik. Identifiez les appels d'API suspects, les noms de méthodes obfusqués et les motifs de flux de contrôle inhabituels directement dans le bytecode — sans avoir besoin de décompiler en Java.
- Audit de sécurité des applications Android : Auditez les applications Android à la recherche de vulnérabilités de sécurité en examinant leur bytecode. Recherchez un usage d'API non sécurisé, des identifiants codés en dur dans la table de chaînes, des vérifications de permissions incorrectes et des exports de composants non protégés au niveau du bytecode DEX.
- Analyse d'obfuscation et de packers : Examinez les fichiers DEX à la recherche d'indicateurs d'obfuscation tels que des noms de classes/méthodes inhabituels, du code à forte réflexion, des méthodes invoquées dynamiquement, des motifs de chiffrement de chaînes et l'usage de chargeurs de classes. La vue de la table de chaînes aide à identifier les charges encodées ou chiffrées.
- Développement et débogage Android : Les développeurs Android peuvent examiner la sortie DEX compilée pour vérifier les optimisations ProGuard/R8, contrôler l'inlining des méthodes, comprendre comment les fonctionnalités Kotlin se compilent en bytecode et déboguer les problèmes de compilation au niveau des instructions.
- Analyse forensique des applications Android : Les analystes en forensique numérique peuvent examiner les fichiers DEX d'appareils Android pour comprendre le comportement des apps, récupérer des constantes de chaîne et des structures de classes, et brosser un tableau complet de ce que fait une application au niveau du bytecode.
- Étude pédagogique du bytecode Dalvik : Apprenez comment fonctionne la machine virtuelle Dalvik en explorant de vrais fichiers DEX. Comprenez les formats d'instruction, l'architecture basée sur les registres, la répartition des méthodes et la résolution des types. Parfait pour les étudiants en internals Android et en conception de compilateurs.
Qu'est-ce qu'un fichier DEX ?
Un fichier DEX (Dalvik Executable) est le format de bytecode compilé utilisé par la machine virtuelle Dalvik d'Android et son successeur ART (Android Runtime). Chaque application Android (fichier .apk) contient un ou plusieurs fichiers classes.dex qui renferment tout le code Java/Kotlin compilé. Contrairement aux fichiers de classe JVM standard, qui utilisent une architecture à base de pile, les fichiers DEX utilisent une architecture à base de registres où les instructions opèrent sur des registres virtuels nommés (v0, v1, etc.). Cette conception à base de registres permet une interprétation plus efficace du bytecode et de meilleures performances sur les appareils mobiles. Le format DEX a été introduit avec la plateforme Android en 2007 et a évolué à travers plusieurs versions (035, 037, 038, 039), chaque version ajoutant de nouveaux opcodes et fonctions d'optimisation.
Comment fonctionne notre visionneuse de bytecode DEX
La visionneuse de bytecode DEX analyse le format binaire DEX complet et désassemble les instructions Dalvik en trois étapes, entièrement dans votre navigateur :
- Téléversement et analyse binaire : Téléversez un fichier .dex (ou extrayez classes.dex d'un .apk). La visionneuse lit l'en-tête DEX pour localiser toutes les sections de données et analyse les ID de chaînes, ID de types, ID de prototypes, ID de champs, ID de méthodes et définitions de classes selon la spécification standard du format binaire DEX.
- Désassemblage du bytecode : Pour chaque méthode contenant du code, la visionneuse lit la structure de l'élément de code (nombre de registres, nombre d'arguments, tableau d'instructions) et désassemble chaque mot d'instruction de 16 bits. Chaque opcode est mappé à son mnémonique Dalvik (move, add-int, invoke-virtual, etc.), et les opérandes sont décodés selon le format d'instruction (12x, 35c, 3rc, etc.).
- Affichage structuré : Les données analysées sont présentées dans quatre vues : Classes (arborescence dépliable avec méthodes et bytecode), Méthodes (tableau à plat de toutes les méthodes avec prototypes), Chaînes (toutes les constantes de chaîne du fichier DEX) et En-tête (tous les champs d'en-tête DEX). Chaque instruction affiche son décalage, ses octets bruts, son mnémonique et ses opérandes décodés.
Ce que vous pouvez voir dans la structure DEX
- En-tête DEX : nombre magique (dex 035\0), somme de contrôle, signature SHA-1, taille du fichier, tailles et décalages de section pour toutes les tables de données.
- Pool de chaînes : toutes les constantes de chaîne utilisées dans le fichier DEX — noms de classes, noms de méthodes, noms de champs, chaînes de descripteur et valeurs littérales de chaîne utilisées dans les instructions const-string.
- Tables de types et prototypes : descripteurs de type (Ljava/lang/String;, I, [B, etc.) et définitions de prototypes de méthode (type de retour + types de paramètres) qui définissent les signatures de méthode.
- Définitions de classes : chaque classe du DEX avec les indicateurs d'accès (public, abstract, interface, enum), la superclasse, les interfaces, le fichier source et les listes de méthodes directes et virtuelles.
- Bytecode des méthodes : listes complètes d'instructions Dalvik avec nombre de registres, registres d'arguments, blocs try-catch et désassemblage par instruction indiquant décalages, opcodes, mnémoniques et opérandes décodés.
Confidentialité et sécurité
Cet outil s'exécute entièrement dans votre navigateur avec du JavaScript côté client. Le fichier DEX que vous téléversez, tout le bytecode analysé, les instructions désassemblées, les structures de classes, les tables de chaînes et les résultats d'analyse ne sont jamais envoyés à un serveur, stockés dans une base de données ou transmis sur le réseau. Toute l'analyse, le désassemblage et l'affichage s'exécutent localement sur votre appareil. Il n'y a aucun appel API, suivi analytique, cookie ou collecte de données d'aucune sorte. Cela le rend totalement sûr pour analyser des applications Android propriétaires, des échantillons de malware ou tout fichier DEX sensible.
Foire aux questions
Un fichier DEX (Dalvik Executable) contient le bytecode compilé des applications Android. Consulter le bytecode DEX permet de comprendre exactement ce que fait une app au niveau des instructions — utile pour l'analyse de malware, les audits de sécurité, l'ingénierie inverse, le débogage de problèmes de compilation et l'apprentissage du fonctionnement du bytecode Android.
Oui. Chaque APK Android contient un fichier classes.dex que la visionneuse de bytecode DEX peut analyser. Extrayez classes.dex de n'importe quel APK (avec n'importe quel extracteur ZIP) et téléversez-le. La visionneuse accepte aussi les fichiers .odex (DEX optimisé).
Le désassembleur prend en charge tous les principaux formats d'instructions Dalvik, notamment 10x, 11n, 12x, 21c, 22c, 22t, 23x, 35c, 3rc, 31i et 51l. Plus de 200 opcodes sont pris en charge dans toutes les catégories d'instructions.
Non. La visionneuse de bytecode DEX s'exécute entièrement dans votre navigateur. Votre fichier DEX, toutes les données analysées, les instructions désassemblées et les résultats d'analyse ne quittent jamais votre appareil. Aucun envoi à un serveur, aucun appel API et aucune collecte de données.
La visionneuse aide à identifier l'obfuscation en affichant les vrais noms de classes/méthodes, les constantes de chaîne et les motifs d'instructions. Les fichiers DEX obfusqués ont généralement des noms courts dépourvus de sens (a, b, c) visibles dans les tables de classes et de méthodes.
La table de chaînes affiche toutes les constantes de chaîne intégrées au fichier DEX, notamment les descripteurs de classe, les noms de méthodes et de champs, les descripteurs de type, les noms de fichiers source et les valeurs littérales de chaîne utilisées dans les instructions const-string.
Oui. Les méthodes avec gestion d'exceptions affichent les informations de bloc try-catch, notamment l'adresse de départ, le nombre d'instructions et le type de gestionnaire (classe d'exception capturée ou catch-all).
Le format 35c encode jusqu'à 5 registres d'arguments de manière compacte. Le format 3rc utilise un encodage par plage avec un registre de départ et un compte, utilisé lorsqu'il y a de nombreux arguments ou pour des plages de registres spécifiques.
Oui — 100 % gratuit, sans inscription, sans compte et sans limite d'utilisation. Analysez autant de fichiers DEX que nécessaire, autant de fois que vous voulez. Toute l'analyse s'exécute dans votre navigateur.