.SMALI

Plik SMALI

Android Smali Assembly Source File
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik .smali to kod źródłowy asemblera Dalvik dla systemu Android, powstający w wyniku dezasemblacji pliku APK za pomocą narzędzi apktool lub baksmali. Jest to artefakt inżynierii wstecznej - nie jest to coś, z czym stykają się zwykli użytkownicy. Można go otworzyć w dowolnym edytorze tekstu lub Visual Studio Code. Jeśli posiadasz folder z plikami .smali i chcesz odzyskać plik APK, użyj apktool, aby je ponownie złożyć.

Deweloper: Ben Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3) Kategoria: Pliki developerskie MIME: text/plain
OTWIERA SIĘ NA Windows macOS Linux Android
Powiązane: .DO · .MD · .HEX · .XSD

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Aug 12, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku SMALI?

Pliki .smali zawierają czytelny dla człowieka kod bajtowy Dalvik lub ART - reprezentację języka asemblera kodu aplikacji Android. Nazwy smali i baksmali to islandzkie słowa oznaczające asembler i dezasembler; narzędzia te zostały stworzone przez Bena Gruvera (JesusFreke) w 2010 roku i są obecnie utrzymywane przez Google.

Gdy plik .apk systemu Android zostanie rozpakowany za pomocą apktool lub baksmali, każda skompilowana klasa wewnątrz pliku .dex jest wyodrębniana jako oddzielny plik .smali. Składnia deklaruje metadane klas za pomocą dyrektyw .class, .super i .implements; pola za pomocą .field; oraz metody wewnątrz bloków .method....end method. Poszczególne kody operacyjne Dalvik (invoke-virtual, move-result, return-void i inne) operują na nazwanych rejestrach (v0, v1, p0 itd.).

Pliki .smali są używane głównie w inżynierii wstecznej systemu Android, badaniach nad bezpieczeństwem i wyzwaniach typu CTF (Capture The Flag). Typowy przepływ pracy to: rozpakowanie APK za pomocą apktool d, edycja źródeł .smali w celu zmiany zachowania, a następnie ponowne spakowanie za pomocą apktool b i podpisanie. Są one pośrednim artefaktem dezasemblacji - zwykli użytkownicy Androida nigdy nie napotykają surowych plików .smali.

Każdy plik .smali odpowiada dokładnie jednej klasie, w tym anonimowym klasom wewnętrznym (które pojawiają się jako osobne pliki). Dostępne kody operacyjne różnią się w zależności od poziomu API Androida, co odzwierciedla wersja formatu .dex (np. 035 dla Android 5, 039 dla Android 12+).

Bezpieczeństwo

RYZYKO: MEDIUM

Same pliki .smali są zwykłym tekstem i nie mogą zaszkodzić systemowi podczas przeglądania w edytorze. Ryzyko jest kontekstowe: 1. Jeśli zdezasemblowałeś podejrzany plik APK, pliki .smali ujawniają jego zachowanie - szukaj zaciemnionych (obfuscated) ciągów znaków, dynamicznego ładowania kodu (DexClassLoader) i połączeń sieciowych z podejrzanymi hostami. 2. Patchowanie plików APK i ich ponowne podpisywanie w celu dystrybucji może naruszać warunki korzystania z aplikacji, a w niektórych jurysdykcjach prawo autorskie. Użytek osobisty jest ogólnie akceptowany; redystrybucja nie. 3. Pobieranie „łatek” .smali z nieznanych źródeł - traktuj je jak kod wykonywalny; sprawdź przed zastosowaniem.

Szczegóły formatu

w pigułce
PEŁNA NAZWAAndroid Smali Assembly Source Fileznany również jako Smali file, Dalvik assembly
DEWELOPERBen Gruver (JesusFreke) - original author; now maintained by Google (baksmali/smali v3)od 2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
TYP MIMEtext/plain
TYPkod źródłowy asemblera w formacie czystego tekstu (reprezentacja kodu bajtowego Dalvik/ART)
POWIĄZANE.do.md.hex.xsd

Programy otwierające pliki SMALI

Windows3 apps
NotePad++ text editor Open-source Plik > Otwórz - wybierz plik .smali. Podświetlanie składni poprzez język zdefiniowany przez użytkownika dla smali jest dostępne w społeczności NP++.
Visual Studio Code Open-source Otwórz plik .smali bezpośrednio; zainstaluj rozszerzenie „smali” z VS Code marketplace, aby uzyskać podświetlanie składni.
apktool Open-source apktool d app.apk - tworzy folder z plikami .smali. apktool b folder/ - ponownie składa je w APK.
macOS3 apps
TextEdit Wbudowany Otwórz plik .smali w TextEdit (tryb czystego tekstu - Format > Utwórz tekst zwykły).
Visual Studio Code Open-source Otwórz plik .smali bezpośrednio; zainstaluj rozszerzenie „smali” z VS Code marketplace, aby uzyskać podświetlanie składni.
apktool Open-source apktool d app.apk - tworzy folder z plikami .smali. apktool b folder/ - ponownie składa je w APK.
Linux3 apps
gedit Open-source Otwórz plik .smali w gedit, aby go przeglądać i edytować.
apktool Open-source apktool d app.apk - tworzy folder z plikami .smali. apktool b folder/ - ponownie składa je w APK.
Vim / Vi Open-source vim file.smali - dostępna wtyczka społecznościowa do składni smali.
Android1 app
Not applicable Darmowy Pliki Smali są artefaktami programistycznymi/inżynierii wstecznej; nie otwiera się ich na urządzeniach z systemem Android.

Szczegóły techniczne

specyfikacja
DeweloperBen Gruver (JesusFreke), oryginalny autor; obecnie utrzymywane przez Google (baksmali/smali v3+)
Typ plikuZwykły tekst, czytelny dla człowieka asembler kodu bajtowego Dalvik/ART
KodowanieUTF-8
Etymologia nazwysmali i baksmali to po islandzku asembler i dezasembler
Jeden plik na klasęKażdy plik `.smali` mapuje się na dokładnie jedną klasę Java lub Kotlin, w tym anonimowe klasy wewnętrzne
Skompilowany odpowiednik`.dex` (Dalvik Executable) - `.smali` to zdezasemblowana, czytelna dla człowieka reprezentacja
Typowy rozmiar1 KB - 200 KB na plik; złożone aplikacje na Androida generują tysiące plików `.smali`
Składnia rejestrówRejestry lokalne: `v0`, `v1`, ...; rejestry parametrów: `p0`, `p1`, ... (`p0` to `this` w metodach instancji)
Wersjonowanie kodów operacyjnychPowiązane z wersją formatu `.dex`: 035 (Android 5-6), 037 (Android 7), 038 (Android 8-11), 039 (Android 12+)
Standardowy przepływ pracyAPK → dezasemblacja `baksmali` → edycja `.smali` → asemblacja `smali` → przepakowany APK (wymagane ponowne podpisanie)
Integracja z narzędziami`apktool` używa wewnętrznie `smali`/`baksmali` do dezasemblacji i ponownego składania APK
Główne przypadki użyciaInżynieria wsteczna Androida, patchowanie aplikacji, badanie luk w zabezpieczeniach, wyzwania CTF
Wydano2010 (baksmali 1.0 by Ben Gruver/JesusFreke)
Najnowsza wersjasmali/baksmali 3.x (Google-maintained as of 2024)
Specyfikacjagithub.com

Konwersje SMALI

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami SMALI. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby

Brak pytań - bądź pierwszą osobą, która zapyta o pliki SMALI.

Najczęściej zadawane pytania

Jak uzyskać pliki .smali z pliku APK?
Użyj apktool: uruchom „apktool d yourapp.apk” w terminalu. Spowoduje to utworzenie folderu z plikami .smali dla każdej klasy. Alternatywnie użyj baksmali bezpośrednio na pliku classes.dex wewnątrz APK.
Jak zamienić pliki .smali z powrotem w APK?
Użyj apktool: uruchom „apktool b nazwa_folderu/”, aby przebudować APK, a następnie podpisz go ponownie za pomocą apksigner lub jarsigner.
Czy mogę zdekompilować .smali do Java?
Pośrednio - użyj jadx bezpośrednio na pliku APK, aby uzyskać kod źródłowy Java. jadx jest lepszym rozwiązaniem niż ręczna konwersja smali→Java.
Co oznacza składnia rejestrów Dalvik (v0, p0)?
Rejestry są odpowiednikiem zmiennych lokalnych w smali. Rejestry „v” to ogólne zmienne lokalne; rejestry „p” to parametry metod (p0 = „this” w metodach instancji).
Czy pliki .smali są bezpieczne do otwarcia?
Tak - są to zwykłe pliki tekstowe. Nie mogą się uruchomić podczas przeglądania w edytorze tekstu.
Czy dekompilacja APK do smali jest legalna?
Legalność zależy od jurysdykcji i przypadku użycia. Inżynieria wsteczna w celu zapewnienia interoperacyjności, badań nad bezpieczeństwem i do użytku osobistego jest zazwyczaj dozwolona; redystrybucja zmodyfikowanych plików APK może naruszać prawa autorskie lub warunki korzystania z usługi.

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

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

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z