>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
C-plus-plus

Dare un'occhiata sotto il cofano delle app Android con APK Studio

APK Studio

Chiunque abbia mai provato a disassemblare l'APK di qualcun altro conosce questo rituale. Per prima cosa, digiti i comandi nel terminale apktool d, poi apri simultaneamente jadx-gui per leggere il codice Java, poi cerchi il metodo necessario nell'enorme cartella con i file Smali usando VS Code o Sublime Text normale. Una volta apportate le modifiche, inizia il secondo round: ricostruzione tramite console, allineamento zip tramite zipalign, firma con una chiave tramite apksigner o uber-apk-signer, e installazione manuale tramite ADB.

Se hai bisogno di modificare una singola riga in un'app di terze parti o investigare come funziona un SDK di terze parti, la catena di cinque utility console diventa rapidamente tediosa. Il progetto APK Studio riunisce questo zoo frammentato in un unico ambiente di sviluppo integrato.

Interfaccia di APK Studio

Cosa c'è dentro

In sostanza, è un IDE completo per il reverse engineering Android. Il progetto è scritto in C++ usando Qt6, quindi funziona su Linux, macOS e Windows senza la lentezza di Electron e l'eccessivo appetito di RAM.

L'idea principale dietro l'app è semplice: offrire agli sviluppatori e agli analisti di malware un'interfaccia IDE familiare dove l'albero del progetto, l'editor di codice, il visualizzatore esadecimale e il terminale di esecuzione dei comandi sono tutti combinati in una finestra.

Al primo avvio, APK Studio si occupa della routine. Il programma scarica e configura autonomamente i binari necessari: Java, Apktool, JADX, ADB e Uber APK Signer. Se hai già configurate versioni locali di queste utility, puoi semplicemente sovrascrivere i percorsi dei binari nelle impostazioni.

Cosa offre questo ambiente

Invece di saltare tra tre finestre di terminale e un editor di testo, ottieni una pipeline funzionante:

  1. Editor integrato per Smali, Java e XML. L'editor integrato supporta l'evidenziazione della sintassi per il bytecode Dalvik (*.smali), il codice Java decompilato, i manifest AndroidManifest.xml e le risorse *.yml.
  2. Editor esadecimale e visualizzatore multimediale integrati. Se un'app contiene blob binari crittografati o immagini personalizzate all'interno, puoi esaminarli direttamente nell'albero del progetto. QHexView è collegato per i binari e le immagini si aprono nel visualizzatore integrato.
  3. Supporto per framework del produttore. Se stai esplorando le app di sistema Samsung, LG o HTC, spesso devi caricare il framework-res.apk originale. APK Studio ha il supporto integrato per la gestione dei tag dei framework per la decompilazione senza errori del compilatore di risorse.
  4. Compila, firma e installa con un clic. Dopo aver modificato Smali, il progetto viene ricostruito, firmato con uber-apk-signer integrato e immediatamente inviato a un dispositivo connesso tramite USB o Wi-Fi.

È supportata anche l'integrazione con Explorer: puoi fare clic con il pulsante destro del mouse su qualsiasi .apk nel gestore di file e aprirlo direttamente nell'ambiente di decompilazione.

Come compilare il progetto dal codice sorgente

Se vuoi compilare tu stesso l'ultima versione dal repository, avrai bisogno di un compilatore C++17, CMake 3.16+ e le librerie Qt6 (moduli 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

Su macOS, il percorso Qt durante la configurazione viene passato tramite il flag -DCMAKE_PREFIX_PATH:

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

Il binario finito apparirà nella directory build/bin/.

Per quali attività è utile

Lo strumento risolve diversi compiti pratici chiari:

  • Audit di sicurezza rapido. Verifica quali permessi richiede un'app, dove i client di rete si stanno collegando e se ci sono Activity aperte o ContentProvider vulnerabili nel manifest.
  • Localizzazione e modifica di app abbandonate. Quando non c'è codice sorgente disponibile, ma devi tradurre l'interfaccia o adattare il comportamento per una versione Android più recente.
  • Debug dell'integrazione. Utile per capire perché un SDK chiuso di terze parti si comporta diversamente da quanto descritto nella sua documentazione ufficiale.

APK Studio non cerca di inventare i propri algoritmi di parsing del bytecode—avvolge elegantemente strumenti collaudati dal settore in una GUI nativa e veloce. Se hai regolarmente bisogno di decomprimere pacchetti, modificare un paio di opzioni nelle risorse o applicare patch ai metodi in Smali, questo progetto ti farà risparmiare tempo e ti libererà dalla noia del terminale.

Progetti correlati