.SMALI

SMALI-fil

Android Smali Assembly Source File
Ställ en fråga
SNABBT SVAR

En .smali-fil är Android Dalvik assembly-källkod som skapas när en APK demonteras med apktool eller baksmali. Det är en artefakt från reverse-engineering - inte något vanliga användare stöter på. Öppna den i valfri textredigerare eller Visual Studio Code. Om du har en mapp med .smali-filer och vill få tillbaka en APK, använd apktool för att återmontera dem.

Utvecklare: Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Kategori: Utvecklarfiler MIME: text/plain
ÖPPNAS PÅ Windows macOS Linux Android
Relaterat: .DO · .MD · .HEX · .XSD

På denna sida

19k+ filtillägg indexerade
Senast granskad Aug 12, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet SMALI?

.smali-filer innehåller läsbar Dalvik eller ART bytecode - assembly-språkrepresentationen av Android-applikationskod. Namnen smali och baksmali är isländska ord för assembler och disassembler; verktygen skapades av Ben Gruver (JesusFreke) 2010 och underhålls nu av Google.

När en Android .apk packas upp med apktool eller baksmali, extraheras varje kompilerad klass inuti .dex-filen som en separat .smali-fil. Syntaxen deklarerar klassmetadata med direktiven .class, .super och .implements; fält med .field; och metoder inuti .method....end method-block. Individuella Dalvik-opkoder (invoke-virtual, move-result, return-void med flera) opererar på namngivna register (v0, v1, p0, etc.).

.smali-filer används främst inom Android reverse engineering, säkerhetsforskning och CTF-utmaningar (Capture The Flag). Ett typiskt arbetsflöde är: packa upp en APK med apktool d, redigera .smali-källkoden för att patcha beteenden, paketera sedan om med apktool b och signera på nytt. De är en mellanliggande disassemblerings-artefakt - vanliga Android-användare stöter aldrig på råa .smali-filer.

Varje .smali-fil motsvarar exakt en klass, inklusive anonyma inre klasser (som visas som separata filer). Tillgängliga opkoder varierar med Android API-nivå, vilket återspeglas i .dex-formatversionen (t.ex. 035 för Android 5, 039 för Android 12+).

Säkerhet & trygghet

RISK: MEDIUM

.smali-filer i sig är ren text och kan inte skada ditt system när de visas i en redigerare. Risken är kontextuell: 1. Om du har disassemblerat en misstänkt APK avslöjar .smali-filerna dess beteende - leta efter obfuskerade strängar, dynamisk kodladdning (DexClassLoader) och nätverksanrop till misstänkta värdar. 2. Att patcha APK-filer och signera om dem för distribution kan bryta mot appens användarvillkor och i vissa jurisdiktioner mot upphovsrättslagen. Personligt bruk accepteras i allmänhet; vidaredistribution gör det inte. 3. Nedladdning av .smali-«patchar» från okända källor - behandla dessa som körbar kod; granska dem innan de används.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNAndroid Smali Assembly Source Fileäven känd som Smali file, Dalvik assembly
UTVECKLAREBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)sedan 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
MIME-TYPtext/plain
TYPkällkod för assembly i klartext (Dalvik/ART bytecode-representation)

Program som öppnar SMALI-filer

Windows3 apps
NotePad++ text editor Öppen källkod Arkiv > Öppna - välj .smali-fil. Syntaxmarkering via användardefinierat språk för smali finns tillgängligt i NP++ community.
Visual Studio Code Öppen källkod Öppna .smali-filen direkt; installera tillägget «smali» från VS Code marketplace för syntaxmarkering.
apktool Öppen källkod apktool d app.apk - skapar en mapp med .smali-filer. apktool b folder/ - återmonterar dem till en APK.
macOS3 apps
TextEdit Inbyggd Öppna .smali-filen i TextEdit (i rent textläge - Format > Gör till ren text).
Visual Studio Code Öppen källkod Öppna .smali-filen direkt; installera tillägget «smali» från VS Code marketplace för syntaxmarkering.
apktool Öppen källkod apktool d app.apk - skapar en mapp med .smali-filer. apktool b folder/ - återmonterar dem till en APK.
Linux3 apps
gedit Öppen källkod Öppna .smali-filen i gedit för visning och redigering.
apktool Öppen källkod apktool d app.apk - skapar en mapp med .smali-filer. apktool b folder/ - återmonterar dem till en APK.
Vim / Vi Öppen källkod vim file.smali - community-plugin för smali-syntax finns tillgängligt.
Android1 app
Not applicable Gratis Smali-filer är utvecklings- och reverse-engineering-artefakter; de öppnas inte på Android-enheter.

Tekniska detaljer

djup specifikation
UtvecklareBen Gruver (JesusFreke), ursprunglig författare; underhålls nu av Google (baksmali/smali v3+)
FiltypMänskligt läsbar Dalvik/ART bytecode-assembly i klartext
KodningUTF-8
Namnets etymologismali och baksmali är isländska för assembler och disassembler
En fil per klassVarje `.smali`-fil mappar till exakt en Java- eller Kotlin-klass, inklusive anonyma inre klasser
Kompilerad motsvarighet`.dex` (Dalvik Executable) - `.smali` är den disassemblerade mänskligt läsbara representationen
Typisk storlek1 KB - 200 KB per fil; komplexa Android-appar genererar tusentals `.smali`-filer
RegistersyntaxLokala register: `v0`, `v1`, ...; parameterregister: `p0`, `p1`, ... (`p0` är `this` i instansmetoder)
Opkod-versioneringKopplad till `.dex`-formatversion: 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
StandardarbetsflödeAPK → `baksmali` disassemblering → redigera `.smali` → `smali` assemblering → ompaketerad APK (om-signering krävs)
Verktygsintegration`apktool` använder `smali`/`baksmali` internt för disassemblering och återmontering av APK
Primära användningsområdenAndroid reverse engineering, app-patchning, säkerhetsforskning, CTF-utmaningar
Släppt2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Senaste versionsmali/baksmali 3.x (Google-maintained as of 2024)
Specifikationgithub.com

SMALI-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med SMALI-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om SMALI-filer.

Vanliga frågor

Hur får jag .smali-filer från en APK?
Använd apktool: kör «apktool d yourapp.apk» i en terminal. Det skapar en mapp med .smali-filer för varje klass. Alternativt kan du använda baksmali direkt på classes.dex inuti APK-filen.
Hur gör jag om .smali-filer till en APK igen?
Använd apktool: kör «apktool b foldername/» för att bygga om APK-filen, och signera den sedan med apksigner eller jarsigner.
Kan jag dekompilera .smali till Java?
Indirekt - använd jadx direkt på APK-filen för att få Java-källkod. jadx är bättre än att gå smali→Java manuellt.
Vad betyder Dalvik-registersyntaxen (v0, p0)?
Register är smali-motsvarigheten till lokala variabler. «v»-register är generella lokala variabler; «p»-register är metodparametrar (p0 = «this» i instansmetoder).
Är .smali-filer säkra att öppna?
Ja - de är vanliga textfiler. De kan inte köras när de visas i en textredigerare.
Är det lagligt att dekompilera APK-filer till smali?
Lagligheten varierar beroende på jurisdiktion och användningsområde. Reverse engineering för interoperabilitet, säkerhetsforskning och personligt bruk är i allmänhet tillåtet; vidaredistribution av modifierade APK-filer kan bryta mot upphovsrätten eller användarvillkoren.

Referenser

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

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.DATProgram Data File (generic)
4.JPGJPEG Image
5.RPMSGRestricted Permission Message
6.EXEWindows Executable (Portable Executable)
7.PARTPartial Download File
8.JSONJavaScript Object Notation file
9.BINCD/DVD Disc Image (BIN/CUE)
10.ICSiCalendar data file

Relaterade filtillägg

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

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö