>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
C-plus-plus

Zajrzyj pod maskę aplikacji Android dzięki APK Studio

APK Studio

Każdy, kto próbował zdeasemblować cudzy plik APK, zna ten rytuał. Najpierw wpisujesz polecenia w terminalu apktool d, potem jednocześnie otwierasz jadx-gui, aby przeczytać kod Java, a następnie szukasz potrzebnej metody w ogromnym folderze z plikami Smali za pomocą VS Code lub zwykłego Sublime Text. Po wprowadzeniu zmian rozpoczyna się druga runda: przebudowa przez konsolę, wyrównanie zip za pomocą zipalign, podpisywanie kluczem przez apksigner lub uber-apk-signer oraz ręczna instalacja przez ADB.

Jeśli musisz zmienić jedną linię w aplikacji zewnętrznej lub zbadać, jak działa zewnętrzny SDK, łańcuch pięciu narzędzi konsolowych szybko staje się nużący. Projekt APK Studio łączy ten rozdrobniony zestaw w jedno zintegrowane środowisko programistyczne.

Interfejs APK Studio

Co kryje się w środku

To w zasadzie pełnoprawne IDE do inżynierii wstecznej Androida. Projekt jest napisany w C++ z użyciem Qt6, więc działa na Linuksie, macOS i Windows bez powolności Electrona i nadmiernego apetytu na RAM.

Główna idea stojąca za aplikacją jest prosta: zapewnić programistom i analitykom malware'u znajomy interfejs IDE, w którym drzewo projektu, edytor kodu, podgląd hex i terminal wykonywania poleceń są połączone w jednym oknie.

Przy pierwszym uruchomieniu APK Studio zajmuje się rutyną. Program sam pobiera i konfiguruje niezbędne pliki binarne: Java, Apktool, JADX, ADB i Uber APK Signer. Jeśli masz już lokalne wersje tych narzędzi, możesz po prostu nadpisać ścieżki do plików binarnych w ustawieniach.

Co oferuje to środowisko

Zamiast przeskakiwać między trzema oknami terminala a edytorem tekstu, otrzymujesz działającą ścieżkę pracy:

  1. Wbudowany edytor Smali, Java i XML. Zintegrowany edytor obsługuje podświetlanie składni dla kodu Dalvik (*.smali), zdekompilowanego kodu Java, manifestów AndroidManifest.xml i zasobów *.yml.
  2. Wbudowany edytor hex i przeglądarka mediów. Jeśli aplikacja zawiera zaszyfrowane pliki binarne lub niestandardowe obrazy, możesz je przeglądać bezpośrednio w drzewie projektu. QHexView jest połączony dla plików binarnych, a obrazy otwierają się we wbudowanej przeglądarce.
  3. Obsługa frameworków dostawców. Jeśli grzebiesz w aplikacjach systemowych Samsunga, LG lub HTC, często musisz załadować oryginalny framework-res.apk. APK Studio ma wbudowaną obsługę zarządzania tagami frameworka dla bezproblemowej dekompilacji kompilatora zasobów.
  4. Buduj, podpisuj i instaluj jednym kliknięciem. Po edycji Smali projekt jest przebudowany, podpisany wbudowanym uber-apk-signer i natychmiast wysyłany do urządzenia połączonego przez USB lub Wi-Fi.

Integracja z Eksploratorem jest również obsługiwana: możesz kliknąć prawym przyciskiem myszy dowolny .apk w menedżerze plików i otworzyć go bezpośrednio w środowisku dekompilacji.

Jak zbudować projekt ze źródeł

Jeśli chcesz samodzielnie zbudować najnowszą wersję z repozytorium, będziesz potrzebować kompilatora C++17, CMake 3.16+ oraz bibliotek Qt6 (moduły Core, Gui, Network, Widgets).

git clone --recursive https://github.com/vaibhavpandeyvpz/apkstudio.git
cd apkstudio

cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release

Na macOS ścieżka do Qt podczas konfiguracji jest przekazywana przez flagę -DCMAKE_PREFIX_PATH:

cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/Qt/6.10.1/clang_64

Gotowy plik binarny pojawi się w katalogu build/bin/.

Do jakich zadań się przydaje

Narzędzie rozwiązuje kilka jasnych, praktycznych zadań:

  • Szybki audyt bezpieczeństwa. Sprawdź, jakie uprawnienia aplikacja żąda, dokąd sięgają klienci sieciowi oraz czy w manifeście nie ma otwartych Activities lub podatnych ContentProviders.
  • Lokalizacja i modyfikacja porzuconych aplikacji. Gdy nie ma dostępnego kodu źródłowego, ale musisz przetłumaczyć interfejs lub dostosować zachowanie do nowszej wersji Androida.
  • Debugowanie integracji. Wygodne do ustalenia, dlaczego zewnętrzny zamknięty SDK zachowuje się inaczej niż opisano w jego oficjalnej dokumentacji.

APK Studio nie próbuje wymyślać własnych algorytmów parsowania kodu bajtowego — elegancko opakowuje sprawdzone w branży narzędzia w natywny, szybki interfejs GUI. Jeśli regularnie musisz rozpakowywać pakiety, zmieniać kilka opcji w zasobach lub łatać metody w Smali, ten projekt zaoszczędzi czas i uwolni cię od nużącej pracy z terminalem.

Powiązane projekty