.SMALI

SMALI-fil

Android Smali Assembly Source File
Stil et spørgsmål
HURTIGT SVAR

En .smali-fil er Android Dalvik assembly-kildekode produceret, når en APK adskilles med apktool eller baksmali. Det er et artefakt fra reverse-engineering - ikke noget almindelige brugere støder på. Åbn den i en hvilken som helst teksteditor eller Visual Studio Code. Hvis du har en mappe med .smali-filer og vil have en APK tilbage, skal du bruge apktool til at samle dem igen.

Udvikler: Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Kategori: Udviklerfiler MIME: text/plain
ÅBNER PÅ Windows macOS Linux Android
Relateret: .DO · .MD · .HEX · .XSD

På denne side

19k+ filtyper indekseret
Sidst gennemset Aug 12, 2026

Er du ikke sikker på, hvad din fil er?

Træk en fil over i vores identifikator - vi læser kun de første bytes for at navngive formatet.

Identificer en fil

Hvad er SMALI-filformatet?

.smali-filer indeholder menneskelæsbar Dalvik eller ART bytecode - assembly-sprogsrepræsentationen af Android-applikationskode. Navnene smali og baksmali er islandske ord for assembler og disassembler; værktøjerne blev skabt af Ben Gruver (JesusFreke) i 2010 og vedligeholdes nu af Google.

Når en Android .apk pakkes ud ved hjælp af apktool eller baksmali, udtrækkes hver kompileret klasse inde i .dex-filen som en separat .smali-fil. Syntaksen erklærer klasse-metadata med .class, .super og .implements direktiver; felter med .field; og metoder inde i .method....end method blokke. Individuelle Dalvik opcodes (invoke-virtual, move-result, return-void og andre) opererer på navngivne registre (v0, v1, p0 osv.).

.smali-filer bruges primært til Android reverse engineering, sikkerhedsforskning og CTF (Capture The Flag) udfordringer. En typisk arbejdsgang er: pak en APK ud med apktool d, rediger .smali-kilderne for at rette adfærd, pak derefter igen med apktool b og underskriv på ny. De er et mellemliggende disassembly-artefakt - almindelige Android-brugere støder aldrig på rå .smali-filer.

Hver .smali-fil svarer til præcis én klasse, herunder anonyme indre klasser (som optræder som separate filer). Tilgængelige opcodes varierer med Android API-niveau, hvilket afspejles i .dex-formatversionen (f.eks. 035 for Android 5, 039 for Android 12+).

Sikkerhed og tryghed

RISIKO: MEDIUM

.smali-filer i sig selv er ren tekst og kan ikke skade dit system, når de vises i en editor. Risikoen er kontekstuel: 1. Hvis du har adskilt en mistænkelig APK, afslører .smali-filerne dens adfærd - kig efter slørede (obfuscated) strenge, dynamisk kodeindlæsning (DexClassLoader) og netværkskald til mistænkelige værter. 2. Patching af APK-filer og genunderskrift af dem til distribution kan overtræde appens servicevilkår og i nogle jurisdiktioner ophavsretsloven. Personlig brug er generelt accepteret; videredistribution er ikke. 3. Download af .smali-«patches» fra ukendte kilder - behandl dem som eksekverbar kode; gennemse dem før de anvendes.

Formatdetaljer

kort fortalt
FULDSTÆNDIGT NAVNAndroid Smali Assembly Source Fileogså kendt som Smali file, Dalvik assembly
UDVIKLERBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)siden 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
MIME-TYPEtext/plain
TYPEalmindelig tekst assembly-kildekode (Dalvik/ART bytecode-repræsentation)

Programmer der åbner SMALI-filer

Windows3 apps
NotePad++ text editor Open-source Filer > Åbn - vælg .smali-fil. Syntaksfremhævning via brugerdefineret sprog til smali er tilgængelig på NP++ fællesskabet.
Visual Studio Code Open-source Åbn .smali-filen direkte; installer «smali»-udvidelsen fra VS Code marketplace for syntaksfremhævning.
apktool Open-source apktool d app.apk - producerer en mappe med .smali-filer. apktool b folder/ - samler dem igen til en APK.
macOS3 apps
TextEdit Indbygget Åbn .smali-filen i TextEdit (almindelig teksttilstand - Format > Gør til ren tekst).
Visual Studio Code Open-source Åbn .smali-filen direkte; installer «smali»-udvidelsen fra VS Code marketplace for syntaksfremhævning.
apktool Open-source apktool d app.apk - producerer en mappe med .smali-filer. apktool b folder/ - samler dem igen til en APK.
Linux3 apps
gedit Open-source Åbn .smali-fil i gedit for visning og redigering.
apktool Open-source apktool d app.apk - producerer en mappe med .smali-filer. apktool b folder/ - samler dem igen til en APK.
Vim / Vi Open-source vim fil.smali - fællesskabsudviklet smali-syntaksplugin er tilgængeligt.
Android1 app
Not applicable Gratis Smali-filer er udviklings-/reverse-engineering-artefakter; de åbnes ikke på Android-enheder.

Tekniske detaljer

dyb specifikation
UdviklerBen Gruver (JesusFreke), oprindelig forfatter; vedligeholdes nu af Google (baksmali/smali v3+)
FiltypeAlmindelig tekst, menneskelæsbar Dalvik/ART bytecode assembly
KodningUTF-8
Navne-etymologismali og baksmali er islandsk for assembler og disassembler
Én fil pr. klasseHver `.smali`-fil svarer til præcis én Java- eller Kotlin-klasse, herunder anonyme indre klasser
Kompileret modstykke`.dex` (Dalvik Executable) - `.smali` er den adskilte menneskelæsbare repræsentation
Typisk størrelse1 KB - 200 KB pr. fil; komplekse Android-apps producerer tusindvis af `.smali`-filer
RegistersyntaksLokale registre: `v0`, `v1`, ...; parameterregistre: `p0`, `p1`, ... (`p0` er `this` i instansmetoder)
Opcode-versioneringKnyttet til `.dex`-formatversion: 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
Standard arbejdsgangAPK → `baksmali` disassembly → rediger `.smali` → `smali` assembly → ompakket APK (kræver ny underskrift)
Værktøjsintegration`apktool` bruger `smali`/`baksmali` internt til APK-disassembly og genopbygning
Primære anvendelsesområderAndroid reverse engineering, app-patching, forskning i sikkerhedssårbarheder, CTF-udfordringer
Udgivet2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Seneste versionsmali/baksmali 3.x (Google-maintained as of 2024)
Specifikationgithub.com

SMALI-konverteringer

Fællesskabets Q&A

spurgt af brugere
Stil et hurtigt spørgsmål
Få hjælp fra folk, der arbejder med SMALI-filer. Vær specifik - medtag dit system og din softwareversion.
Ingen konto nødvendig · svar normalt inden for en dag

Ingen spørgsmål endnu - vær den første til at spørge om SMALI-filer.

Ofte stillede spørgsmål

Hvordan får jeg .smali-filer fra en APK?
Brug apktool: kør «apktool d dinapp.apk» i en terminal. Det opretter en mappe med .smali-filer for hver klasse. Alternativt kan du bruge baksmali direkte på classes.dex inde i APK-filen.
Hvordan laver jeg .smali-filer om til en APK igen?
Brug apktool: kør «apktool b mappenavn/» for at genopbygge APK-filen, og underskriv den derefter med apksigner eller jarsigner.
Kan jeg dekompilere .smali til Java?
Indirekte - brug jadx direkte på APK-filen for at få Java-kildekode. jadx er bedre end at gå fra smali til Java manuelt.
Hvad betyder Dalvik-registersyntaksen (v0, p0)?
Registre er smali-svaret på lokale variabler. «v»-registre er generelle lokale variabler; «p»-registre er metodeparametre (p0 = «this» i instansmetoder).
Er .smali-filer sikre at åbne?
Ja - de er almindelige tekstfiler. De kan ikke eksekveres, når de vises i en teksteditor.
Er det lovligt at dekompilere APK-filer til smali?
Lovligheden varierer efter jurisdiktion og brugssituation. Reverse engineering til interoperabilitet, sikkerhedsforskning og personlig brug er generelt tilladt; videredistribution af modificerede APK-filer kan overtræde ophavsret eller servicevilkår.

Referencer

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

Udforsk mere

på tværs af databasen

Populære filtyper i denne uge

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

Relaterede filtyper

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

Gratis filværktøjer

En fil-identifikator og billedkonverter direkte i browseren - alt kører på din enhed.

Åbn værktøjskassen

Gennemse filtyper A-Å