.SMALI

File SMALI

Android Smali Assembly Source File
Fai una domanda
RISPOSTA RAPIDA

Un file .smali è il codice sorgente assembly Dalvik di Android prodotto quando un APK viene disassemblato con apktool o baksmali. È un artefatto di ingegneria inversa - non è qualcosa che gli utenti comuni incontrano. Può essere aperto in qualsiasi editor di testo o Visual Studio Code. Se hai una cartella di file .smali e vuoi riottenere un APK, usa apktool per riassemblarli.

Sviluppatore: Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Categoria: File di sviluppo MIME: text/plain
SI APRE SU Windows macOS Linux Android
Correlati: .DO · .MD · .HEX · .XSD

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Aug 12, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file SMALI?

I file .smali contengono bytecode Dalvik o ART leggibile dall'uomo - la rappresentazione in linguaggio assembly del codice dell'applicazione Android. I nomi smali e baksmali sono parole islandesi che significano assemblatore e disassemblatore; gli strumenti sono stati creati da Ben Gruver (JesusFreke) nel 2010 e sono ora mantenuti da Google.

Quando un .apk Android viene decompresso utilizzando apktool o baksmali, ogni classe compilata all'interno del file .dex viene estratta come un file .smali separato. La sintassi dichiara i metadati della classe con le direttive .class, .super e .implements; i campi con .field; e i metodi all'interno dei blocchi .method....end method. I singoli opcode Dalvik (invoke-virtual, move-result, return-void e altri) operano su registri denominati (v0, v1, p0, ecc.).

I file .smali sono utilizzati principalmente nell'ingegneria inversa di Android, nella ricerca sulla sicurezza e nelle sfide CTF (Capture The Flag). Un flusso di lavoro tipico è: decomprimere un APK con apktool d, modificare i sorgenti .smali per correggere il comportamento, quindi riconfezionare con apktool b e firmare nuovamente. Sono un artefatto intermedio di disassemblaggio - gli utenti Android regolari non incontrano mai file .smali grezzi.

Ogni file .smali corrisponde esattamente a una classe, incluse le classi interne anonime (che appaiono come file separati). Gli opcode disponibili variano in base al livello API di Android, riflesso nella versione del formato .dex (ad esempio, 035 per Android 5, 039 per Android 12+).

Sicurezza e incolumità

RISCHIO: MEDIUM

I file .smali stessi sono testo semplice e non possono danneggiare il sistema se visualizzati in un editor. Il rischio è contestuale: 1. Se hai disassemblato un APK sospetto, i file .smali ne rivelano il comportamento - cerca stringhe offuscate, caricamento dinamico del codice (DexClassLoader) e chiamate di rete verso host sospetti. 2. Il patching degli APK e la loro nuova firma per la distribuzione possono violare i termini di servizio dell'app e, in alcune giurisdizioni, la legge sul copyright. L'uso personale è generalmente accettato; la ridistribuzione no. 3. Scaricare «patch» .smali da fonti sconosciute - trattale come codice eseguibile; esaminale prima di applicarle.

Dettagli del formato

in sintesi
NOME COMPLETOAndroid Smali Assembly Source Fileanche noto come Smali file, Dalvik assembly
SVILUPPATOREBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)dal 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
TIPO MIMEtext/plain
TIPOcodice sorgente assembly in testo semplice (rappresentazione bytecode Dalvik/ART)

Programmi che aprono file SMALI

Windows3 apps
NotePad++ text editor Open-source File > Apri - seleziona il file .smali. L'evidenziazione della sintassi tramite linguaggio definito dall'utente per smali è disponibile nella community di NP++.
Visual Studio Code Open-source Apri direttamente il file .smali; installa l'estensione «smali» dal marketplace di VS Code per l'evidenziazione della sintassi.
apktool Open-source apktool d app.apk - produce una cartella di file .smali. apktool b cartella/ - li riassembla in un APK.
macOS3 apps
TextEdit Integrato Apri il file .smali in TextEdit (modalità solo testo - Formato > Converti in formato Solo testo).
Visual Studio Code Open-source Apri direttamente il file .smali; installa l'estensione «smali» dal marketplace di VS Code per l'evidenziazione della sintassi.
apktool Open-source apktool d app.apk - produce una cartella di file .smali. apktool b cartella/ - li riassembla in un APK.
Linux3 apps
gedit Open-source Apri il file .smali in gedit per la visualizzazione e la modifica.
apktool Open-source apktool d app.apk - produce una cartella di file .smali. apktool b cartella/ - li riassembla in un APK.
Vim / Vi Open-source vim file.smali - disponibile plugin della community per la sintassi smali.
Android1 app
Not applicable Gratuito I file smali sono artefatti di sviluppo/ingegneria inversa; non vengono aperti sui dispositivi Android.

Dettagli tecnici

specifiche approfondite
SviluppatoreBen Gruver (JesusFreke), autore originale; ora mantenuto da Google (baksmali/smali v3+)
Tipo di fileAssembly bytecode Dalvik/ART leggibile dall'uomo in formato testo semplice
CodificaUTF-8
Etimologia del nomesmali e baksmali sono termini islandesi per assemblatore e disassemblatore
Un file per classeOgni file `.smali` mappa esattamente una classe Java o Kotlin, incluse le classi interne anonime
Equivalente compilato`.dex` (Dalvik Executable) - `.smali` è la rappresentazione disassemblata leggibile dall'uomo
Dimensione tipica1 KB - 200 KB per file; le app Android complesse producono migliaia di file `.smali`
Sintassi dei registriRegistri locali: `v0`, `v1`, ...; registri dei parametri: `p0`, `p1`, ... (`p0` è `this` nei metodi di istanza)
Versionamento degli opcodeLegato alla versione del formato `.dex`: 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
Flusso di lavoro standardAPK → disassemblaggio `baksmali` → modifica `.smali` → assemblaggio `smali` → APK riconfezionato (richiesta nuova firma)
Integrazione strumenti`apktool` utilizza internamente `smali`/`baksmali` per il disassemblaggio e il riassemblaggio degli APK
Casi d'uso primariIngegneria inversa Android, patching di app, ricerca di vulnerabilità di sicurezza, sfide CTF
Rilasciato2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Ultima versionesmali/baksmali 3.x (Google-maintained as of 2024)
Specificagithub.com

Conversioni SMALI

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file SMALI. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file SMALI.

Domande frequenti

Come posso ottenere file .smali da un APK?
Usa apktool: esegui «apktool d yourapp.apk» in un terminale. Verrà creata una cartella con i file .smali per ogni classe. In alternativa, usa baksmali direttamente sul file classes.dex all'interno dell'APK.
Come posso trasformare i file .smali di nuovo in un APK?
Usa apktool: esegui «apktool b nomecartella/» per ricostruire l'APK, quindi firmalo nuovamente con apksigner o jarsigner.
Posso decompilare .smali in Java?
Indirettamente - usa jadx direttamente sull'APK per ottenere il codice sorgente Java. jadx è preferibile rispetto al passaggio manuale smali→Java.
Cosa significa la sintassi dei registri Dalvik (v0, p0)?
I registri sono l'equivalente smali delle variabili locali. I registri «v» sono locali generali; i registri «p» sono i parametri del metodo (p0 = «this» nei metodi di istanza).
I file .smali sono sicuri da aprire?
Sì - sono semplici file di testo. Non possono essere eseguiti quando vengono visualizzati in un editor di testo.
È legale decompilare gli APK in smali?
La legalità varia in base alla giurisdizione e al caso d'uso. L'ingegneria inversa per l'interoperabilità, la ricerca sulla sicurezza e l'uso personale è generalmente consentita; la ridistribuzione di APK modificati può violare il copyright o i termini di servizio.

Riferimenti

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

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.EXEWindows Executable (Portable Executable)
5.M4AMPEG-4 Audio File
6.MDMarkdown Document
7.DATProgram Data File (generic)
8.JSONJavaScript Object Notation file
9.JPGJPEG Image
10.NOMEDIAAndroid No-Media Marker File

Estensioni correlate

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

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z