.SMALI

Archivo SMALI

Android Smali Assembly Source File
Hacer una pregunta
RESPUESTA RÁPIDA

Un archivo .smali es el código fuente de ensamblador Dalvik de Android producido cuando un APK se desensambla con apktool o baksmali. Es un artefacto de ingeniería inversa, no algo que los usuarios comunes encuentren. Ábralo en cualquier editor de texto o Visual Studio Code. Si tiene una carpeta de archivos .smali y desea recuperar un APK, use apktool para reensamblarlos.

Desarrollador: Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Categoría: Archivos de desarrollo MIME: text/plain
SE ABRE EN Windows macOS Linux Android
Relacionado: .DO · .MD · .HEX · .XSD

En esta página

19k+ extensiones indexadas
Última revisión Aug 12, 2026

¿No está seguro de qué es su archivo?

Suelte cualquier archivo en nuestro identificador - leemos solo los primeros bytes para nombrar el formato.

Identificar un archivo

¿Qué es el formato de archivo SMALI?

Los archivos .smali contienen bytecode de Dalvik o ART legible por humanos: la representación en lenguaje ensamblador del código de la aplicación Android. Los nombres smali y baksmali son palabras islandesas para ensamblador y desensamblador; las herramientas fueron creadas por Ben Gruver (JesusFreke) en 2010 y ahora son mantenidas por Google.

Cuando un .apk de Android se desempaqueta usando apktool o baksmali, cada clase compilada dentro del archivo .dex se extrae como un archivo .smali independiente. La sintaxis declara los metadatos de la clase con las directivas .class, .super e .implements; los campos con .field; y los métodos dentro de bloques .method....end method. Los opcodes individuales de Dalvik (invoke-virtual, move-result, return-void, entre otros) operan sobre registros con nombre (v0, v1, p0, etc.).

Los archivos .smali se utilizan principalmente en ingeniería inversa de Android, investigación de seguridad y desafíos CTF (Capture The Flag). Un flujo de trabajo típico es: desempaquetar un APK con apktool d, editar las fuentes .smali para parchear el comportamiento, luego reempaquetar con apktool b y volver a firmar. Son un artefacto de desensamblado intermedio; los usuarios habituales de Android nunca encuentran archivos .smali sin procesar.

Cada archivo .smali corresponde exactamente a una clase, incluidas las clases internas anónimas (que aparecen como archivos separados). Los opcodes disponibles varían según el nivel de API de Android, lo que se refleja en la versión del formato .dex (por ejemplo, 035 para Android 5, 039 para Android 12+).

Seguridad y protección

RIESGO: MEDIUM

Los archivos .smali en sí mismos son texto plano y no pueden dañar su sistema cuando se ven en un editor. El riesgo es contextual: 1. Si desensambló un APK sospechoso, los archivos .smali revelan su comportamiento; busque cadenas ofuscadas, carga dinámica de código (DexClassLoader) y llamadas de red a hosts sospechosos. 2. Parchear APKs y volver a firmarlos para su distribución puede violar los términos de servicio de la aplicación y, en algunas jurisdicciones, las leyes de derechos de autor. El uso personal generalmente se acepta; la redistribución no. 3. Al descargar «parches» .smali de fuentes desconocidas, trátelos como código ejecutable; revíselos antes de aplicarlos.

Detalles del formato

en pocas palabras
NOMBRE COMPLETOAndroid Smali Assembly Source Filetambién conocido como Smali file, Dalvik assembly
DESARROLLADORBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)desde 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
TIPO MIMEtext/plain
TIPOcódigo fuente de ensamblador en texto plano (representación de bytecode Dalvik/ART)
RELACIONADO.do.md.hex.xsd

Programas que abren archivos SMALI

Windows3 apps
NotePad++ text editor Código abierto Archivo > Abrir - seleccione el archivo .smali. El resaltado de sintaxis mediante lenguaje definido por el usuario para smali está disponible en la comunidad de NP++.
Visual Studio Code Código abierto Abra el archivo .smali directamente; instale la extensión «smali» desde el marketplace de VS Code para el resaltado de sintaxis.
apktool Código abierto apktool d app.apk - produce una carpeta de archivos .smali. apktool b folder/ - los reensambla en un APK.
macOS3 apps
TextEdit Integrado Abra el archivo .smali en TextEdit (modo de texto plano - Formato > Convertir a texto simple).
Visual Studio Code Código abierto Abra el archivo .smali directamente; instale la extensión «smali» desde el marketplace de VS Code para el resaltado de sintaxis.
apktool Código abierto apktool d app.apk - produce una carpeta de archivos .smali. apktool b folder/ - los reensambla en un APK.
Linux3 apps
gedit Código abierto Abra el archivo .smali en gedit para visualizarlo y editarlo.
apktool Código abierto apktool d app.apk - produce una carpeta de archivos .smali. apktool b folder/ - los reensambla en un APK.
Vim / Vi Código abierto vim archivo.smali - plugin de sintaxis smali de la comunidad disponible.
Android1 app
Not applicable Gratis Los archivos Smali son artefactos de desarrollo/ingeniería inversa; no se abren en dispositivos Android.

Detalles técnicos

especificación profunda
DesarrolladorBen Gruver (JesusFreke), autor original; ahora mantenido por Google (baksmali/smali v3+)
Tipo de archivoEnsamblador de bytecode Dalvik/ART legible por humanos en texto plano
CodificaciónUTF-8
Etimología del nombresmali y baksmali significan ensamblador y desensamblador en islandés
Un archivo por claseCada archivo `.smali` se asigna exactamente a una clase Java o Kotlin, incluidas las clases internas anónimas
Equivalente compilado`.dex` (Dalvik Executable) - `.smali` es la representación legible por humanos desensamblada
Tamaño típico1 KB - 200 KB por archivo; las aplicaciones complejas de Android producen miles de archivos `.smali`
Sintaxis de registrosRegistros locales: `v0`, `v1`, ...; registros de parámetros: `p0`, `p1`, ... (`p0` es `this` en métodos de instancia)
Versiones de OpcodeVinculado a la versión del formato `.dex`: 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
Flujo de trabajo estándarAPK → desensamblado con `baksmali` → editar `.smali` → ensamblado con `smali` → APK reempaquetado (requiere volver a firmar)
Integración de herramientas`apktool` utiliza `smali`/`baksmali` internamente para el desensamblado y reensamblado de APK
Casos de uso principalesIngeniería inversa de Android, parcheo de aplicaciones, investigación de vulnerabilidades de seguridad, desafíos CTF
Lanzado2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Última versiónsmali/baksmali 3.x (Google-maintained as of 2024)
Especificacióngithub.com

Conversiones de SMALI

Preguntas y respuestas de la comunidad

preguntado por usuarios
Hacer una pregunta rápida
Obtenga ayuda de personas que trabajan con archivos SMALI. Sea específico: incluya su sistema y la versión del software.
No se necesita cuenta · respuestas generalmente en un día

Aún no hay preguntas; sea el primero en preguntar sobre los archivos SMALI.

Preguntas frecuentes

¿Cómo obtengo archivos .smali de un APK?
Use apktool: ejecute «apktool d tuapp.apk» en una terminal. Esto crea una carpeta con archivos .smali para cada clase. Alternativamente, use baksmali directamente sobre el archivo classes.dex dentro del APK.
¿Cómo convierto archivos .smali de nuevo en un APK?
Use apktool: ejecute «apktool b nombre_carpeta/» para reconstruir el APK, luego vuelva a firmarlo con apksigner o jarsigner.
¿Puedo descompilar .smali a Java?
Indirectamente: use jadx directamente sobre el APK para obtener el código fuente Java. jadx es mejor que pasar de smali a Java manualmente.
¿Qué significa la sintaxis de registros de Dalvik (v0, p0)?
Los registros son el equivalente en smali a las variables locales. Los registros «v» son locales generales; los registros «p» son parámetros del método (p0 = «this» en métodos de instancia).
¿Es seguro abrir archivos .smali?
Sí, son archivos de texto plano. No pueden ejecutarse cuando se visualizan en un editor de texto.
¿Es legal descompilar APKs a smali?
La legalidad varía según la jurisdicción y el caso de uso. La ingeniería inversa para interoperabilidad, investigación de seguridad y uso personal suele estar permitida; la redistribución de APKs modificados puede violar los derechos de autor o los términos de servicio.

Referencias

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

Siga explorando

en toda la base de datos

Extensiones principales esta semana

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

Extensiones relacionadas

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

Herramientas de archivo gratuitas

Un identificador de archivos y convertidor de imágenes en el navegador - todo se ejecuta en su dispositivo.

Abrir la caja de herramientas

Explorar extensiones de archivo A-Z