Analiza statyczna plików APK
Dekompilacja
Analiza statyczna plików APK to bezpłatna lekcja Ethical Hacking Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ethical Hacking Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Statyczna analiza APK
Analiza statyczna pliku APK polega na badaniu jego kodu i zasobów bez uruchamiania go. Celem jest odzyskanie kodu przypominającego czytelny kod źródłowy ze skompilowanego DEX.
Ujawnia to zaszyte na stałe sekrety, błędy logiczne i rzeczywiste zachowanie aplikacji.
Dekodowanie za pomocą apktool
apktool dekoduje plik APK do postaci czytelnych zasobów i kodu smali (czytelnej dla człowieka postaci kodu bajtowego DEX). Dekoduje również binarny plik AndroidManifest.xml.
Można go użyć do odczytu manifestu i ponownego pakowania zmodyfikowanych aplikacji.
apktool d app.apk -o app_srcKod Smali
Smali to język przypominający asembler dla kodu bajtowego Dalvik. Jest rozwlekły, ale pozwala precyzyjnie edytować kod, na przykład ominąć kontrolę przez zmianę porównania.
Można zmodyfikować kod smali i ponownie zbudować plik APK, aby zmienić zachowanie aplikacji.
const/4 v0, 0x1 # force a boolean to trueUzyskiwanie kodu Java za pomocą jadx
jadx dekompiluje DEX bezpośrednio do czytelnego kodu Java. Wersja z interfejsem graficznym, jadx-gui, umożliwia przeglądanie klas, wyszukiwanie napisów i śledzenie wywołań metod.
To najszybszy sposób na zrozumienie logiki aplikacji.
jadx-gui app.apkŚcieżka dex2jar
Alternatywny proces konwertuje DEX do pliku JAR za pomocą dex2jar, a następnie otwiera go w dekompilatorze Javy, takim jak JD-GUI.
jadx zwykle tworzy czytelniejszy wynik, ale dex2jar jest przydatny, gdy jadx ma trudności z analizą.
d2j-dex2jar app.apk -o app.jarWyszukiwanie sekretów
Zdekompilowany kod często zawiera zaszyte na stałe sekrety: klucze API, tokeny, klucze szyfrujące i adresy URL backendu.
Należy przeszukać kod źródłowy pod kątem słów kluczowych, takich jak password, secret, apikey i http. Deweloperzy błędnie zakładają, że skompilowany kod ukrywa te dane.
grep -ri "api_key\|secret\|password" app_src/Przeglądanie manifestu
Po zdekodowaniu manifestu należy sprawdzić:
- Eksportowane komponenty.
android:debuggable="true".android:allowBackup="true"(dane można wyodrębnić za pomocą kopii zapasowej).- Niebezpieczne lub niestandardowe uprawnienia.
Konfiguracja bezpieczeństwa sieci
Konfiguracja bezpieczeństwa sieci określa działanie TLS. Konfiguracja zezwalająca na ruch tekstowy lub ufająca certyfikatom CA dodanym przez użytkownika osłabia bezpieczeństwo transportu.
Takie ustawienia znacznie ułatwiają przechwytywanie ruchu, któremu poświęcony jest późniejszy temat.
<application android:usesCleartextTraffic="true">Automatyczne skanowanie za pomocą MobSF
MobSF (Mobile Security Framework) automatyzuje analizę statyczną. Po przesłaniu pliku APK raportuje uprawnienia, zaszyte na stałe sekrety, niebezpieczne ustawienia oraz ocenę ryzyka.
Świetnie nadaje się do wstępnej selekcji, choć ręczny przegląd nadal pozwala wykryć głębiej ukryte problemy.
Ponowne pakowanie i podpisywanie
Po zmodyfikowaniu kodu smali przebuduj aplikację za pomocą apktool i podpisz ją ponownie (Android odrzuca niepodpisane aplikacje). Narzędzia takie jak apksigner lub uber-apk-signer obsługują podpisywanie.
Ten proces stanowi podstawę testów modyfikacji oraz zmian w czasie działania.
apktool b app_src -o patched.apk
uber-apk-signer -a patched.apkDeep linki i WebView
Poszukaj filtrów intencji deep link oraz użycia WebView. Błędnie skonfigurowane deep linki mogą otwierać wewnętrzne ekrany z danymi kontrolowanymi przez atakującego.
WebView z interfejsem JavaScriptInterface lub ładowaniem niezaufanych treści może narazić aplikację na wstrzyknięcie kodu i kradzież danych. Oba problemy są częstymi ustaleniami podczas analizy statycznej.
Szybkie sprawdzenie
Proszę przypomnieć sobie, które narzędzie udostępnia czytelny kod Java bezpośrednio z pliku APK.
Podsumowanie
Rozumieją już Państwo analizę statyczną plików APK:
- Używaj apktool do kodu smali i zdekodowanego manifestu, a jadx do czytelnego kodu Java.
- Wyszukuj sekrety zapisane na stałe w kodzie i sprawdzaj w manifeście flagi exported, debuggable oraz backup.
- Sprawdzaj Network Security Config; używaj MobSF do automatycznego wstępnego rozpoznania.
- Modyfikuj kod smali, a następnie przebuduj i podpisz ponownie, aby testować modyfikacje.
W następnej części zmodyfikują Państwo działającą aplikację za pomocą Frida.
Często zadawane pytania
Czy lekcja „Analiza statyczna plików APK” jest bezpłatna?
Tak — pełny tekst „Analiza statyczna plików APK” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ethical Hacking Academy, przejdź na CoddyKit PRO. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Analiza statyczna plików APK”?
Dekompilacja Ćwiczysz Ethical Hacking Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ethical Hacking Academy?
Nie wymagamy żadnego doświadczenia. Ethical Hacking Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Analiza statyczna plików APK”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ethical Hacking Academy?
Tak. Każda lekcja Ethical Hacking Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Struktura aplikacji Android
- Analiza statyczna plików APK
- Analiza dynamiczna za pomocą Frida
- Niebezpieczne przechowywanie i komunikacja