.SMALI

Файл SMALI

Android Smali Assembly Source File
Задать вопрос
БЫСТРЫЙ ОТВЕТ

Файл .smali - это исходный код ассемблера Dalvik для Android, создаваемый при деассемблировании APK с помощью apktool или baksmali. Это артефакт обратной разработки, с которым обычные пользователи не сталкиваются. Его можно открыть в любом текстовом редакторе или Visual Studio Code. Если у вас есть папка с файлами .smali и вы хотите вернуть APK, используйте apktool для их повторной сборки.

Разработчик: Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Категория: Файлы разработчика MIME: text/plain
ОТКРЫВАЕТСЯ НА Windows macOS Linux Android
Связанные: .DO · .MD · .HEX · .XSD

На этой странице

Проиндексировано расширений: 19k+
Последняя проверка: Aug 12, 2026

Не знаете, что это за файл?

Перетащите любой файл в наш идентификатор - мы прочитаем первые байты, чтобы определить формат.

Идентифицировать файл

Что такое формат файла SMALI?

Файлы .smali содержат человекочитаемый байт-код Dalvik или ART - представление кода приложения Android на языке ассемблера. Названия smali и baksmali - это исландские слова, означающие «ассемблер» и «дизассемблер»; инструменты были созданы Беном Грувером (JesusFreke) в 2010 году и в настоящее время поддерживаются Google.

Когда Android .apk распаковывается с помощью apktool или baksmali, каждый скомпилированный класс внутри файла .dex извлекается как отдельный файл .smali. Синтаксис объявляет метаданные класса с помощью директив .class, .super и .implements; поля - с помощью .field; и методы внутри блоков .method....end method. Отдельные опкоды Dalvik (invoke-virtual, move-result, return-void и другие) оперируют именованными регистрами (v0, v1, p0 и т. д.).

Файлы .smali используются в основном при обратной разработке Android, исследованиях безопасности и в соревнованиях CTF (Capture The Flag). Типичный рабочий процесс: распаковка APK с помощью apktool d, редактирование исходников .smali для изменения поведения, затем перепаковка с помощью apktool b и повторная подпись. Они являются промежуточным артефактом дизассемблирования - обычные пользователи Android никогда не сталкиваются с «сырыми» файлами .smali.

Каждый файл .smali соответствует ровно одному классу, включая анонимные внутренние классы (которые отображаются как отдельные файлы). Доступные опкоды варьируются в зависимости от уровня Android API, что отражается в версии формата .dex (например, 035 для Android 5, 039 для Android 12+).

Безопасность и защита

РИСК: MEDIUM

Сами файлы .smali являются текстовыми и не могут нанести вред вашей системе при просмотре в редакторе. Риск носит контекстуальный характер: 1. Если вы дизассемблировали подозрительный APK, файлы .smali раскрывают его поведение - ищите обфусцированные строки, динамическую загрузку кода (DexClassLoader) и сетевые вызовы к подозрительным хостам. 2. Патчинг APK и их повторная подпись для распространения могут нарушать условия обслуживания приложения и, в некоторых юрисдикциях, закон об авторском праве. Личное использование обычно допустимо; распространение - нет. 3. Загрузка «патчей» .smali из неизвестных источников - относитесь к ним как к исполняемому коду; проверяйте перед применением.

Детали формата

в двух словах
ПОЛНОЕ НАЗВАНИЕAndroid Smali Assembly Source Fileтакже известен как Smali file, Dalvik assembly
РАЗРАБОТЧИКBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)с 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
MIME-ТИПtext/plain
ТИПисходный код ассемблера в текстовом формате (представление байт-кода Dalvik/ART)
СВЯЗАННЫЕ.do.md.hex.xsd

Программы, открывающие файлы SMALI

Windows3 apps
NotePad++ text editor Открытый код Файл > Открыть - выберите файл .smali. Подсветка синтаксиса через пользовательский язык для smali доступна в сообществе NP++.
Visual Studio Code Открытый код Откройте файл .smali напрямую; установите расширение «smali» из магазина VS Code для подсветки синтаксиса.
apktool Открытый код apktool d app.apk - создает папку с файлами .smali. apktool b folder/ - собирает их обратно в APK.
macOS3 apps
TextEdit Встроенная Откройте файл .smali в TextEdit (в режиме обычного текста - Формат > Сделать простым текстом).
Visual Studio Code Открытый код Откройте файл .smali напрямую; установите расширение «smali» из магазина VS Code для подсветки синтаксиса.
apktool Открытый код apktool d app.apk - создает папку с файлами .smali. apktool b folder/ - собирает их обратно в APK.
Linux3 apps
gedit Открытый код Откройте файл .smali в gedit для просмотра и редактирования.
apktool Открытый код apktool d app.apk - создает папку с файлами .smali. apktool b folder/ - собирает их обратно в APK.
Vim / Vi Открытый код vim file.smali - доступен плагин синтаксиса smali от сообщества.
Android1 app
Not applicable Бесплатно Файлы Smali являются артефактами разработки/обратной разработки; они не открываются на устройствах Android.

Технические подробности

глубокая спецификация
РазработчикБен Грувер (JesusFreke), оригинальный автор; сейчас поддерживается Google (baksmali/smali v3+)
Тип файлаТекстовый человекочитаемый ассемблер байт-кода Dalvik/ART
КодировкаUTF-8
Этимология названияsmali и baksmali - это исландские слова для ассемблера и дизассемблера
Один файл на классКаждый файл `.smali` соответствует ровно одному классу Java или Kotlin, включая анонимные внутренние классы
Скомпилированный эквивалент`.dex` (Dalvik Executable) - `.smali` является его дизассемблированным человекочитаемым представлением
Типичный размер1 КБ - 200 КБ на файл; сложные приложения Android генерируют тысячи файлов `.smali`
Синтаксис регистровЛокальные регистры: `v0`, `v1`, ...; регистры параметров: `p0`, `p1`, ... (`p0` - это `this` в методах экземпляра)
Версии опкодовПривязаны к версии формата `.dex`: 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
Стандартный процессAPK → дизассемблирование `baksmali` → редактирование `.smali` → сборка `smali` → перепакованный APK (требуется повторная подпись)
Интеграция инструментов`apktool` использует `smali`/`baksmali` внутри для дизассемблирования и сборки APK
Основные случаи использованияОбратная разработка Android, патчинг приложений, исследование уязвимостей безопасности, соревнования CTF
Выпущен2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Последняя версияsmali/baksmali 3.x (Google-maintained as of 2024)
Спецификацияgithub.com

Конвертации SMALI

Вопросы и ответы сообщества

спрошено пользователями
Задать быстрый вопрос
Получите помощь от людей, работающих с файлами SMALI. Будьте конкретны - укажите вашу систему и версию ПО.
Аккаунт не нужен · ответы обычно в течение дня

Вопросов пока нет - станьте первым, кто спросит о файлах SMALI.

Часто задаваемые вопросы

Как получить файлы .smali из APK?
Используйте apktool: выполните команду «apktool d yourapp.apk» в терминале. Это создаст папку с файлами .smali для каждого класса. Кроме того, можно использовать baksmali напрямую для файла classes.dex внутри APK.
Как превратить файлы .smali обратно в APK?
Используйте apktool: выполните команду «apktool b foldername/», чтобы пересобрать APK, а затем подпишите его заново с помощью apksigner или jarsigner.
Можно ли декомпилировать .smali в Java?
Косвенно - используйте jadx напрямую для APK, чтобы получить исходный код Java. jadx лучше, чем ручной перевод smali→Java.
Что означает синтаксис регистров Dalvik (v0, p0)?
Регистры - это эквивалент локальных переменных в smali. Регистры «v» - это общие локальные переменные; регистры «p» - это параметры метода (p0 = «this» в методах экземпляра).
Безопасно ли открывать файлы .smali?
Да - это обычные текстовые файлы. Они не могут быть исполнены при просмотре в текстовом редакторе.
Законно ли декомпилировать APK в smali?
Законность варьируется в зависимости от юрисдикции и варианта использования. Обратная разработка для обеспечения совместимости, исследований безопасности и личного использования обычно разрешена; перепродажа или распространение измененных APK может нарушать авторские права или условия обслуживания.

Ссылки

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

Узнать больше

по всей базе данных

Популярные расширения на этой неделе

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.ICSiCalendar data file
5.M4AMPEG-4 Audio File
6.DATProgram Data File (generic)
7.RPMSGRestricted Permission Message
8.ODTOpenDocument Text
9.EMLE-Mail Message (RFC 822 / MIME)
10.BINCD/DVD Disc Image (BIN/CUE)

Похожие расширения

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

Бесплатные инструменты для файлов

Идентификатор файлов и конвертер изображений в браузере - все работает на вашем устройстве.

Открыть инструменты

Обзор расширений файлов A-Z