.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.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

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

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

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

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

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

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