.SMALI

Fichier SMALI

Android Smali Assembly Source File
Poser une question
RÉPONSE RAPIDE

Un fichier .smali est un code source d'assemblage Dalvik pour Android produit lorsqu'un APK est désassemblé avec apktool ou baksmali. C'est un artefact d'ingénierie inverse - pas quelque chose que les utilisateurs réguliers rencontrent. Ouvrez-le dans n'importe quel éditeur de texte ou Visual Studio Code. Si vous avez un dossier de fichiers .smali et que vous souhaitez récupérer un APK, utilisez apktool pour les réassembler.

Développeur : Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Catégorie : Fichiers de développement MIME: text/plain
S'OUVRE SUR Windows macOS Linux Android
Lié : .DO · .MD · .HEX · .XSD

Sur cette page

19k+ extensions indexées
Dernière révision le Aug 12, 2026

Pas sûr de la nature de votre fichier ?

Déposez n'importe quel fichier dans notre identificateur - nous lisons juste les premiers octets pour nommer le format.

Identifier un fichier

Qu'est-ce que le format de fichier SMALI ?

Les fichiers .smali contiennent du bytecode Dalvik ou ART lisible par l'homme - la représentation en langage d'assemblage du code d'application Android. Les noms smali et baksmali sont des mots islandais pour assembleur et désassembleur ; les outils ont été créés par Ben Gruver (JesusFreke) en 2010 et sont désormais maintenus par Google.

Lorsqu'un .apk Android est dépaqueté à l'aide de apktool ou baksmali, chaque classe compilée à l'intérieur du fichier .dex est extraite sous forme de fichier .smali distinct. La syntaxe déclare les métadonnées de classe avec les directives .class, .super et .implements ; les champs avec .field ; et les méthodes à l'intérieur des blocs .method....end method. Les opcodes Dalvik individuels (invoke-virtual, move-result, return-void, et autres) opèrent sur des registres nommés (v0, v1, p0, etc.).

Les fichiers .smali sont principalement utilisés dans l'ingénierie inverse Android, la recherche en sécurité et les défis CTF (Capture The Flag). Un flux de travail typique est : dépaqueter un APK avec apktool d, éditer les sources .smali pour corriger le comportement, puis repaqueter avec apktool b et signer à nouveau. Ce sont des artefacts de désassemblage intermédiaires - les utilisateurs Android ordinaires ne rencontrent jamais de fichiers .smali bruts.

Chaque fichier .smali correspond à exactement une classe, y compris les classes internes anonymes (qui apparaissent comme des fichiers séparés). Les opcodes disponibles varient selon le niveau d'API Android, reflété dans la version du format .dex (par exemple, 035 pour Android 5, 039 pour Android 12+).

Sécurité et sûreté

RISQUE : MEDIUM

Les fichiers .smali eux-mêmes sont du texte brut et ne peuvent pas nuire à votre système lorsqu'ils sont consultés dans un éditeur. Le risque est contextuel : 1. Si vous avez désassemblé un APK suspect, les fichiers .smali révèlent son comportement - recherchez les chaînes obfusquées, le chargement de code dynamique (DexClassLoader) et les appels réseau vers des hôtes suspects. 2. Corriger des APK et les signer à nouveau pour la distribution peut violer les conditions d'utilisation de l'application et, dans certaines juridictions, la loi sur le droit d'auteur. L'usage personnel est généralement accepté ; la redistribution ne l'est pas. 3. Téléchargement de « correctifs » .smali de sources inconnues - traitez-les comme du code exécutable ; examinez-les avant de les appliquer.

Détails du format

en bref
NOM COMPLETAndroid Smali Assembly Source Filealias Smali file, Dalvik assembly
DÉVELOPPEURBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)depuis 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
TYPE MIMEtext/plain
TYPEcode source d'assemblage en texte brut (représentation du bytecode Dalvik/ART)

Programmes qui ouvrent les fichiers SMALI

Windows3 apps
NotePad++ text editor Open-source Fichier > Ouvrir - sélectionnez le fichier .smali. Coloration syntaxique via un langage défini par l'utilisateur pour smali disponible sur la communauté NP++.
Visual Studio Code Open-source Ouvrez le fichier .smali directement ; installez l'extension « smali » depuis le marketplace VS Code pour la coloration syntaxique.
apktool Open-source apktool d app.apk - produit un dossier de fichiers .smali. apktool b folder/ - les réassemble en APK.
macOS3 apps
TextEdit Intégré Ouvrez le fichier .smali dans TextEdit (mode texte brut - Format > Convertir au format Texte).
Visual Studio Code Open-source Ouvrez le fichier .smali directement ; installez l'extension « smali » depuis le marketplace VS Code pour la coloration syntaxique.
apktool Open-source apktool d app.apk - produit un dossier de fichiers .smali. apktool b folder/ - les réassemble en APK.
Linux3 apps
gedit Open-source Ouvrez le fichier .smali dans gedit pour la visualisation et l'édition.
apktool Open-source apktool d app.apk - produit un dossier de fichiers .smali. apktool b folder/ - les réassemble en APK.
Vim / Vi Open-source vim file.smali - plugin de syntaxe smali communautaire disponible.
Android1 app
Not applicable Gratuit Les fichiers Smali sont des artefacts de développement/ingénierie inverse ; ils ne sont pas ouverts sur les appareils Android.

Détails techniques

spécifications approfondies
DéveloppeurBen Gruver (JesusFreke), auteur original ; désormais maintenu par Google (baksmali/smali v3+)
Type de fichierAssemblage de bytecode Dalvik/ART lisible par l'homme en texte brut
EncodageUTF-8
Étymologie du nomsmali et baksmali signifient assembleur et désassembleur en islandais
Un fichier par classeChaque fichier `.smali` correspond à exactement une classe Java ou Kotlin, y compris les classes internes anonymes
Équivalent compilé`.dex` (Dalvik Executable) - `.smali` est la représentation désassemblée lisible par l'homme
Taille typique1 Ko - 200 Ko par fichier ; les applications Android complexes produisent des milliers de fichiers `.smali`
Syntaxe des registresRegistres locaux : `v0`, `v1`, ... ; registres de paramètres : `p0`, `p1`, ... (`p0` est `this` dans les méthodes d'instance)
Versionnage des opcodesLié à la version du format `.dex` : 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
Flux de travail standardAPK → désassemblage `baksmali` → édition `.smali` → assemblage `smali` → APK repaqueter (nouvelle signature requise)
Intégration d'outils`apktool` utilise `smali`/`baksmali` en interne pour le désassemblage et le réassemblage d'APK
Principaux cas d'utilisationIngénierie inverse Android, correction d'applications, recherche de vulnérabilités de sécurité, défis CTF
Publié2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Dernière versionsmali/baksmali 3.x (Google-maintained as of 2024)
Spécificationgithub.com

Conversions SMALI

Q&R de la communauté

posées par les utilisateurs
Poser une question rapide
Obtenez de l'aide de personnes qui travaillent avec des fichiers SMALI. Soyez précis - incluez votre système et la version du logiciel.
Aucun compte requis · réponses généralement sous un jour

Pas encore de questions - soyez le premier à poser une question sur les fichiers SMALI.

Foire aux questions

Comment obtenir des fichiers .smali à partir d'un APK ?
Utilisez apktool : exécutez « apktool d yourapp.apk » dans un terminal. Cela crée un dossier avec des fichiers .smali pour chaque classe. Alternativement, utilisez baksmali directement sur le classes.dex à l'intérieur de l'APK.
Comment transformer des fichiers .smali en APK ?
Utilisez apktool : exécutez « apktool b foldername/ » pour reconstruire l'APK, puis signez-le à nouveau avec apksigner ou jarsigner.
Puis-je décompiler du .smali en Java ?
Indirectement - utilisez jadx directement sur l'APK pour obtenir le code source Java. jadx est préférable à une conversion manuelle smali→Java.
Que signifie la syntaxe des registres Dalvik (v0, p0) ?
Les registres sont l'équivalent smali des variables locales. Les registres « v » sont des variables locales générales ; les registres « p » sont des paramètres de méthode (p0 = « this » dans les méthodes d'instance).
Les fichiers .smali peuvent-ils être ouverts en toute sécurité ?
Oui - ce sont des fichiers texte brut. Ils ne peuvent pas s'exécuter lorsqu'ils sont consultés dans un éditeur de texte.
Est-il légal de décompiler des APK en smali ?
La légalité varie selon la juridiction et le cas d'utilisation. L'ingénierie inverse pour l'interopérabilité, la recherche en sécurité et l'usage personnel est généralement autorisée ; la redistribution d'APK modifiés peut violer les droits d'auteur ou les conditions d'utilisation.

Références

1GitHub - baksmali/smali (official, Google-maintained)github.com
2apktool - A tool for reverse engineering APKsapktool.org

Continuer l'exploration

à travers la base de données

Top des extensions cette semaine

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.BINCD/DVD Disc Image (BIN/CUE)
4.DATProgram Data File (generic)
5.PARTPartial Download File
6.EXEWindows Executable (Portable Executable)
7.NOMEDIAAndroid No-Media Marker File
8.RPMSGRestricted Permission Message
9.TMPTemporary File
10.TXTPlain Text File

Extensions liées

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Outils de fichiers gratuits

Un identificateur de fichier et un convertisseur d'images dans le navigateur - tout s'exécute sur votre appareil.

Ouvrir la boîte à outils

Parcourir les extensions de fichiers A-Z