
Strumento di confronto fuzzy per deoffuscare APK Android, identificando funzioni rinumerate tra versioni diverse, generando file di mapping e report HTML interattivi per l'analisi di malware e vulnerabilità.
🤖 Obfu[DE]scate: uno strumento di de-offuscamento e confronto per APK Android. 📱
Obfu[DE]scate è uno strumento Python progettato per semplificare il processo di de-offuscamento e confronto di due versioni di un APK Android - anche se le funzioni sono state rinominata come parte dell'offuscamento. Con la logica di confronto fuzzy, Obfu[DE]scate può identificare somiglianze tra le funzioni e aiutarti a scoprire le modifiche tra le versioni degli APK.
Iniziare con Obfu[DE]scate è facile! Segui questi passaggi:
pip install -r REQUIREMENTS.txt
Obfu[DE]scate è stato testato su Windows 11, ma dovrebbe funzionare anche su altri sistemi.
Obfu[DE]scate offre diverse opzioni da riga di comando per personalizzare il suo comportamento:
Per confrontare due file APK, esegui semplicemente Obfu[DE]scate con il seguente comando:
python ObfuDeScate.py -a1 "old_example.apk" -a2 "new_example.apk" -cp "com.example.path"
Nell'esempio sopra, Obfu[DE]scate esaminerà tutte le funzioni nell'APK old_example.apk al percorso della classe com.example.path e le confronterà con tutte le funzioni trovate allo stesso percorso della classe in new_example.apk.
Obfu[DE]scate genera due file di output: un file di mappatura in formato elenco separato da nuove righe e un file HTML interattivo. Questi file di output includono:
com.chess.play.ObserveGameHelperImpl.d -> com.chess.play.ObserveGameHelperImpl.a .
Obfu[DE]scate è un progetto open-source e accoglie contributi dalla comunità. Se desideri contribuire a Obfu[DE]scate, segui queste linee guida:
Obfu[DE]scate segue il Codice di Condotta del Contributor Covenant. Assicurati di revisionare. e aderire a questo codice di condotta quando contribuisci a Obfu[DE]scate.
Se incontri un bug o hai un suggerimento per una nuova funzionalità, apri un issue nel repository GitHub. Fornisci il maggior numero di dettagli possibile, inclusi i passaggi per riprodurre il problema o una descrizione chiara della funzionalità proposta. Il tuo feedback è prezioso e aiuterà a migliorare Obfu[DE]scate per tutti.
Questo strumento non funzionerebbe senza APKTool! In secondo luogo, molti degli esempi in questo README utilizzano l'app Chess.com come base, dai un'occhiata qui.
| Abbreviazione | Parametro | Descrizione | Obbligatorio |
|---|
| -a1 | apk_file_path_1 | Il percorso dell'APK originale. Questo è l'APK con cui verrà confrontato il secondo APK (ad esempio una versione precedente dell'APK) | Vero |
| -a2 | apk_file_path_2 | Il percorso dell'APK più recente. L'output mostrerà le differenze tra APK 1 e questo APK. | Vero |
| -cp | class_path | Un percorso in notazione di dominio inversa che verrà utilizzato per filtrare le funzioni esaminate (ad esempio specificare com.example.class per confrontare solo le funzioni su questo percorso). | Falso |
| -o | output_dir | Una directory in cui salvare la mappatura, l'html e gli APK disassemblati. | Falso |
| -apktool | apk_tool_path | Se APKTool non è nel tuo PATH, usa questo parametro per indicare a ObfuDeScate dove si trova APKTool. | Falso |