Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/calebfenton/dex-oracle
Sicurezza AndroidReverse EngineeringAnalisi MalwareAnalisi di Binari
GitHubcalebfenton/dex-oracle

dex-oracle

Un deofuscatore Dalvik basato su pattern che utilizza l'esecuzione limitata per migliorare l'analisi semantica.

Vedi Repository
5041107 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Oracle

Un deoffuscatore Dalvik basato su pattern che utilizza l'esecuzione limitata per migliorare l'analisi semantica. Inoltre, l'ispirazione per un altro deoffuscatore Android: Simplify.

Gem Version Code Climate Test Coverage

Prima before

Dopo after

sha1: a68d5d2da7550d35f7dbefc21b7deebe3f4005f3

md5: 2dd2eeeda08ac8c15be8a9f2d01adbe8

Installazione

Passo 1. Installa Smali / Baksmali

Dato che sei un elite reverser Android, sono sicuro che tu abbia già Smali e Baksmali nel tuo PATH. Se per qualche strana ragione non sono ancora installati, questo dovrebbe aiutarti a iniziare, ma per favore esaminalo attentamente prima di eseguire:

root@kitploit:~
mkdir ~/bin || cd ~/bin
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali-2.2.5.jar && mv smali-*.jar smali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.2.5.jar && mv baksmali-*.jar baksmali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali
chmod +x ./smali ./baksmali
export PATH=$PATH:$PWD

Passo 2. Installa Android SDK / ADB

Assicurati che adb sia nel tuo PATH.

Passo 3. Installa la Gem

root@kitploit:~
gem install dex-oracle

Oppure, se preferisci compilare dal sorgente:

root@kitploit:~
git clone https://github.com/CalebFenton/dex-oracle.git
cd dex-oracle
gem install bundler
bundle install

Passo 4. Collega un Dispositivo o un Emulatore

Devi avere un emulatore in esecuzione o un dispositivo connesso perché Oracle funzioni. La versione minima richiesta di Android è 5.0!

Oracle ha bisogno di eseguire metodi su un sistema Android attivo. Questo può essere su un dispositivo o un emulatore (preferito). Se è un dispositivo, assicurati di non avere problemi a eseguire codice potenzialmente ostile su di esso.

Se desideri usare un emulatore e hai già installato l'Android SDK, puoi creare e avviare immagini dell'emulatore con:

root@kitploit:~
android avd

Utilizzo

root@kitploit:~
Usage: dex-oracle [opts] <APK / DEX / Smali Directory>
    -h, --help                       Mostra questa schermata
    -s ANDROID_SERIAL,               ID del dispositivo per l'esecuzione del driver, predefinito=""
        --specific-device
    -t, --timeout N                  Timeout dell'esecuzione del comando ADB in secondi, predefinito="120"
    -i, --include PATTERN            Ottimizza solo metodi e classi che corrispondono al pattern, es. Ldune;->melange\(\)V
    -e, --exclude PATTERN            Escludi questi tipi dall'ottimizzazione; including overrides
        --disable-plugins STRING[,STRING]*
                                     Disabilita plugin, es. stringdecryptor,unreflector
        --list-plugins               Elenca i plugin disponibili
    -v, --verbose                    Sii verboso
    -V, --vverbose                   Sii molto verboso

Per esempio, per deoffuscare solo i metodi in una classe chiamata Lcom/android/system/admin/CCOIoll; all'interno di un APK chiamato obad.apk:

root@kitploit:~
dex-oracle -i com/android/system/admin/CCOIoll obad.apk

Come Funziona

Oracle accetta app Android (APK), eseguibili Dalvik (DEX) e file Smali come input. Prima, se l'input è un APK o DEX, viene disassemblato in file Smali. Poi, i file Smali vengono passati a vari plugin che eseguono analisi e modifiche. I plugin cercano pattern che possono essere trasformati in qualcosa di più facile da leggere. Per capire cosa sta facendo il codice, alcuni metodi Dalvik vengono effettivamente eseguiti e l'output viene raccolto. In questo modo, alcune chiamate a metodi possono essere sostituite con costanti. Dopo di ciò, tutti i file Smali vengono aggiornati. Infine, se l'input era un file APK o DEX, i file Smali modificati vengono ricompilati e viene creato un APK o DEX aggiornato.

L'esecuzione dei metodi è gestita dal Driver. L'APK, DEX o Smali di input viene combinato con il Driver in un singolo DEX usando dexmerge e viene inviato a un dispositivo o emulatore. I plugin possono quindi utilizzare Driver che usa la riflessione Java per eseguire metodi dal DEX di input. I valori di ritorno possono essere usati per migliorare l'analisi semantica oltre il semplice riconoscimento di pattern. Questo è particolarmente utile per molti metodi di decrittazione delle stringhe, che di solito prendono una stringa crittografata o un array di byte. Una limitazione è che l'esecuzione è limitata ai metodi statici.

Sviluppo

Creare il Tuo Plugin

Ci sono tre plugin che vengono forniti con Oracle:

  1. Undexguard - rimuove alcuni tipi di offuscamenti Dexguard
  2. Unreflector - rimuove alcuni riflessi Java
  3. String Decryptor - semplice plugin che rimuove un tipo comune di crittografia delle stringhe

Se incontri un nuovo tipo di offuscamento, potrebbe essere possibile deoffuscarlo con Oracle. Guarda lo Smali e capisci se il codice può essere:

  1. riorganizzato
  2. compreso eseguendo alcuni metodi statici

Se si verifica uno di questi due casi, dovresti provare a scrivere il tuo plugin. Ci sono quattro passi per costruire il tuo plugin:

  1. identificare i pattern Smali
  2. capire come semplificare i pattern
  3. capire come interagire con il driver e invocare metodi
  4. capire come applicare modifiche direttamente

I plugin inclusi dovrebbero essere una buona guida per comprendere i passi #3 e #4. Driver è progettato per aiutare con il passo #2.

Naturalmente, sei sempre il benvenuto a condividere qualsiasi offuscamento in cui ti imbatti e qualcuno potrebbe eventualmente occuparsene.

Aggiornare il Driver

Per prima cosa, assicurati che dx sia nel tuo PATH. Fa parte dell'Android SDK, ma probabilmente non è nel tuo PATH a meno che tu non sia un hardcore.

La cartella driver è un progetto Java gestito da Gradle. Importalo in Eclipse, IntelliJ, ecc. e apporta le modifiche che desideri. Per completare l'aggiornamento del driver, esegui ./update_driver. Questo ricostruirà il driver e convertirà il JAR di output in un DEX.

Risoluzione dei Problemi

Se c'è un problema nell'esecuzione del codice del driver sul tuo emulatore o dispositivo, assicurati di aprire monitor (parte dell'Android SDK) e controlla eventuali indizi lì. Anche se l'errore non ha senso per te, aiuterà se lo pubblichi insieme al problema che creerai.

Non tutte le piattaforme Android funzionano bene con dex-oracle. Alcune di esse si bloccano quando si tenta di eseguire file DEX arbitrari. Se hai problemi con segfault o crash del driver, prova a usare Android 4.4.2 API level 19 con ARM.

È possibile che un plugin veda un pattern che pensa sia offuscamento ma in realtà è codice che non dovrebbe eseguire. Questo sembra improbabile perché i pattern di offuscamento sono davvero insoliti, ma è possibile. Se scopri che un particolare plugin sta causando problemi e sei sicuro che l'app non sia protetta da quel particolare offuscatore, ad esempio l'app non è DexGuarded ma il plugin DexGuard sta cercando di eseguire cose, disabilitalo semplicemente.

Ulteriori Informazioni

  1. TetCon 2016 - Android Deobfuscation
  2. Hacking with dex-oracle for Android Malware Deobfuscation
Scarica lo strumento