0Pricing
Ethical Hacking Academy · Lekcja

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_src

Kod 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 true

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

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

Deep 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

  1. Struktura aplikacji Android
  2. Analiza statyczna plików APK
  3. Analiza dynamiczna za pomocą Frida
  4. Niebezpieczne przechowywanie i komunikacja
← Powrót do Ethical Hacking Academy