.SMALI

SMALI-bestand

Android Smali Assembly Source File
Stel een vraag
SNEL ANTWOORD

Een .smali-bestand is Android Dalvik assembly-broncode die wordt geproduceerd wanneer een APK wordt gedemonteerd met apktool of baksmali. Het is een artefact van reverse-engineering - niet iets dat gewone gebruikers tegenkomen. Open het in een tekstverwerker of Visual Studio Code. Als u een map met .smali-bestanden hebt en een APK terug wilt, gebruik dan apktool om ze opnieuw te assembleren.

Ontwikkelaar: Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Categorie: Ontwikkelaarsbestanden MIME: text/plain
OPENT OP Windows macOS Linux Android
Gerelateerd: .DO · .MD · .HEX · .XSD

Op deze pagina

19k+ extensies geïndexeerd
Laatst beoordeeld op Aug 12, 2026

Niet zeker wat uw bestand is?

Sleep een bestand naar onze identificatietool - we lezen alleen de eerste bytes om het formaat te benoemen.

Identificeer een bestand

Wat is het SMALI-bestandsformaat?

.smali-bestanden bevatten voor mensen leesbare Dalvik of ART bytecode - de assembly-taalweergave van Android-applicatiecode. De namen smali en baksmali zijn IJslandse woorden voor assembler en disassembler; de tools zijn in 2010 gemaakt door Ben Gruver (JesusFreke) en worden nu onderhouden door Google.

Wanneer een Android .apk wordt uitgepakt met apktool of baksmali, wordt elke gecompileerde klasse in het .dex-bestand uitgepakt als een afzonderlijk .smali-bestand. De syntaxis declareert klasse-metadata met .class, .super en .implements instructies; velden met .field; en methoden binnen .method....end method blokken. Individuele Dalvik opcodes (invoke-virtual, move-result, return-void en andere) werken op benoemde registers (v0, v1, p0, enz.).

.smali-bestanden worden voornamelijk gebruikt bij Android reverse engineering, beveiligingsonderzoek en CTF (Capture The Flag) uitdagingen. Een typische workflow is: een APK uitpakken met apktool d, de .smali-bronnen bewerken om gedrag aan te passen, en vervolgens opnieuw verpakken met apktool b en opnieuw ondertekenen. Het zijn tussenliggende demontage-artefacten - reguliere Android-gebruikers komen nooit onbewerkte .smali-bestanden tegen.

Elk .smali-bestand komt overeen met precies één klasse, inclusief anonieme innerlijke klassen (die als afzonderlijke bestanden verschijnen). Beschikbare opcodes variëren per Android API-niveau, weerspiegeld in de .dex-formaatversie (bijv. 035 voor Android 5, 039 voor Android 12+).

Beveiliging & veiligheid

RISICO: MEDIUM

.smali-bestanden zelf zijn platte tekst en kunnen uw systeem niet beschadigen wanneer ze in een editor worden bekeken. Risico is contextueel: 1. Als u een verdachte APK hebt gedemonteerd, onthullen de .smali-bestanden het gedrag - zoek naar verduisterde strings, dynamisch laden van code (DexClassLoader) en netwerkoproepen naar verdachte hosts. 2. Het patchen van APK's en het opnieuw ondertekenen voor distributie kan in strijd zijn met de servicevoorwaarden van de app en in sommige rechtsgebieden met het auteursrecht. Persoonlijk gebruik wordt over het algemeen geaccepteerd; herdistributie niet. 3. Het downloaden van .smali „patches” van onbekende bronnen - behandel deze als uitvoerbare code; controleer ze voordat u ze toepast.

Formaatdetails

in een notendop
VOLLEDIGE NAAMAndroid Smali Assembly Source Fileook bekend als Smali file, Dalvik assembly
ONTWIKKELAARBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)sinds 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
MIME-TYPEtext/plain
TYPEplatte tekst assembly-broncode (Dalvik/ART bytecode-weergave)
GERELATEERD.do.md.hex.xsd

Programma's die SMALI-bestanden openen

Windows3 apps
NotePad++ text editor Open-source Bestand > Openen - selecteer .smali-bestand. Syntaxisaccentuering via door de gebruiker gedefinieerde taal voor smali beschikbaar in de NP++ community.
Visual Studio Code Open-source Open het .smali-bestand rechtstreeks; installeer de „smali”-extensie van de VS Code marketplace voor syntaxisaccentuering.
apktool Open-source apktool d app.apk - produceert een map met .smali-bestanden. apktool b folder/ - assembleert ze opnieuw tot een APK.
macOS3 apps
TextEdit Ingebouwd Open het .smali-bestand in TextEdit (platte tekstmodus - Opmaak > Maak platte tekst).
Visual Studio Code Open-source Open het .smali-bestand rechtstreeks; installeer de „smali”-extensie van de VS Code marketplace voor syntaxisaccentuering.
apktool Open-source apktool d app.apk - produceert een map met .smali-bestanden. apktool b folder/ - assembleert ze opnieuw tot een APK.
Linux3 apps
gedit Open-source Open .smali-bestand in gedit voor weergave en bewerking.
apktool Open-source apktool d app.apk - produceert een map met .smali-bestanden. apktool b folder/ - assembleert ze opnieuw tot een APK.
Vim / Vi Open-source vim file.smali - community smali syntaxis-plugin beschikbaar.
Android1 app
Not applicable Gratis Smali-bestanden zijn artefacten voor ontwikkeling/reverse-engineering; ze worden niet geopend op Android-apparaten.

Technische details

diepe specificaties
OntwikkelaarBen Gruver (JesusFreke), oorspronkelijke auteur; nu onderhouden door Google (baksmali/smali v3+)
BestandstypePlatte tekst, voor mensen leesbare Dalvik/ART bytecode assembly
CoderingUTF-8
Naamsetymologiesmali en baksmali zijn IJslands voor assembler en disassembler
Eén bestand per klasseElk `.smali`-bestand is gekoppeld aan precies één Java- of Kotlin-klasse, inclusief anonieme innerlijke klassen
Gecompileerd equivalent`.dex` (Dalvik Executable) - `.smali` is de gedemonteerde, voor mensen leesbare weergave
Typische grootte1 KB - 200 KB per bestand; complexe Android-apps produceren duizenden `.smali`-bestanden
RegistersyntaxisLokale registers: `v0`, `v1`, ...; parameterregisters: `p0`, `p1`, ... (`p0` is `this` in instantiemethoden)
Opcode-versiebeheerGekoppeld aan `.dex`-formaatversie: 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
Standaard workflowAPK → `baksmali` demonteren → `.smali` bewerken → `smali` assembleren → opnieuw verpakte APK (opnieuw ondertekenen vereist)
Tool-integratie`apktool` gebruikt `smali`/`baksmali` intern voor APK-demontage en herassemblage
Belangrijkste use-casesAndroid reverse engineering, app-patching, onderzoek naar beveiligingslekken, CTF-uitdagingen
Uitgebracht2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Laatste versiesmali/baksmali 3.x (Google-maintained as of 2024)
Specificatiegithub.com

SMALI conversies

Community V&A

gevraagd door gebruikers
Stel een korte vraag
Krijg hulp van mensen die met SMALI-bestanden werken. Wees specifiek - vermeld uw systeem en softwareversie.
Geen account nodig · antwoorden meestal binnen een dag

Nog geen vragen - wees de eerste om iets te vragen over SMALI-bestanden.

Veelgestelde vragen

Hoe krijg ik .smali-bestanden uit een APK?
Gebruik apktool: voer „apktool d yourapp.apk” uit in een terminal. Het maakt een map met .smali-bestanden voor elke klasse. Als alternatief kunt u baksmali rechtstreeks gebruiken op de classes.dex in de APK.
Hoe zet ik .smali-bestanden weer om in een APK?
Gebruik apktool: voer „apktool b foldername/” uit om de APK opnieuw op te bouwen en onderteken deze vervolgens opnieuw met apksigner of jarsigner.
Kan ik .smali decompileren naar Java?
Indirect - gebruik jadx rechtstreeks op de APK om Java-broncode te krijgen. jadx is beter dan handmatig van smali naar Java gaan.
Wat betekent de Dalvik-registersyntaxis (v0, p0)?
Registers zijn het smali-equivalent van lokale variabelen. „v”-registers zijn algemene lokale variabelen; „p”-registers zijn methodeparameters (p0 = „this” in instantiemethoden).
Zijn .smali-bestanden veilig om te openen?
Ja - het zijn gewone tekstbestanden. Ze kunnen niet worden uitgevoerd wanneer ze in een tekstverwerker worden bekeken.
Is het legaal om APK's naar smali te decompileren?
De legaliteit varieert per rechtsgebied en use-case. Reverse engineering voor interoperabiliteit, beveiligingsonderzoek en persoonlijk gebruik is over het algemeen toegestaan; herdistributie van gewijzigde APK's kan in strijd zijn met het auteursrecht of de servicevoorwaarden.

Referenties

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

Blijf ontdekken

door de database

Populaire extensies deze week

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

Gerelateerde extensies

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

Gratis bestandstools

Een bestandsidentificatie en afbeeldingsconverter in de browser - alles draait op uw eigen apparaat.

Open de gereedschapskist

Blader door bestandsextensies A-Z