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
kavanoz — Deimpacchettamento statico di malware bancari Android comuni. | Kitploit
Strumenti/GitHubGitHub/eybisi/kavanoz
Sicurezza AndroidAnalisi StaticaStrumenti di Crittografia/DecrittografiaReverse EngineeringAnalisi MalwareSicurezza MobileArchived
GitHubeybisi/kavanoz

kavanoz

Deimpacchettamento statico di malware bancari Android comuni.

Vedi Repository
159201 anno 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

🫙 kavanoz 🫙

Kavanoz (barattolo in turco) è uno strumento per l'unpacking statico dei malware bancari Android più comuni. Hai mai voluto ottenere il payload da un malware impacchettato senza eseguire un emulatore Android? Nemmeno io :) Ma comunque ecco uno strumento.

👀 Installazione

root@kitploit:~
pip install kavanoz

Per installare dalla sorgente, clona il repository ed esegui un'installazione modificabile con -e. Ciò significa che se modifichi o aggiungi nuovi plugin al progetto, verranno usati senza dover reinstallare.

root@kitploit:~
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .

⚡ Utilizzo

dalla riga di comando

root@kitploit:~
kavanoz /tmp/filepath

Puoi usare il parametro -vvv per stampare log dettagliati. (utile per il debug dei plugin)

come libreria Python

root@kitploit:~
from kavanoz.core import Kavanoz
from kavanoz import utils

utils.set_log("DEBUG")
k = Kavanoz(apk_path="tests/test_apk/coper.apk")
for plugin_result in k.get_plugin_results():
    if plugin_result["status"] == "success":
        print("Unpacked")
        print(plugin_result)
        break

🐍 Script:

  • rc4.py File asset generico crittografato con rc4. Lo script copre più versioni.
  • old_rc4.py Un altro file asset generico crittografato con rc4.
  • subapp.py Decrittazione del file con chiave derivata dalla variabile ProtectKey del file Manifest.
  • multidex.py Loader simile a multidex con file impacchettato decompresso. (compressione zlib)
  • coper.py Estrarre la chiave rc4 dalla libreria nativa tramite emulazione (AndroidNativeEmu)
  • moqhao.py Emulazione per l'unpacking di moqhao.
  • sesdex.py
  • simple_aes.py
  • simple_xor.py
  • simple_xor2.py
  • simple_xor_zlib.py
  • subapp.py Decrittare l'asset con il nome del pacchetto

⚙️ Sviluppo

Assicurati di installare kavanoz in modalità modificabile (con -e). Per aggiungere nuovi plugin crea semplicemente un nuovo file nella cartella loader. Estendi la classe Unpacker dal file unpack_plugin.py. Definisci la funzione start_decrypt con la tua implementazione.

root@kitploit:~
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):

Aggiungi la seguente funzione per uscire anticipatamente dal plugin.

root@kitploit:~
def lazy_check(self,apk_object:APK, dexes: "list[DEX]"):

Se l'estrazione ha successo, assegna a self.decrypted_payload_path il percorso del file estratto. Puoi usare le funzioni helper della classe unpacker:

  • get_array_data
  • get_smali
  • find_method(class_name,method_name,descriptor="")
  • check_and_write_file(file_data) : verifica che il file abbia header dex, zip e zlib e scrive il dex estratto con nome : "external-{m[:8]}.dex"

Assicurati di eseguire python -m unittest prima di aprire una PR. Per ottenere i file apk di test, usa il comando git lfs pull.

📖 Consigli

  • self.dexes contiene oggetti dex. Puoi ottenere la classe con dex.get_class(smali_annotation_of_class).
  • Puoi usare la funzione get_smali e passare l'oggetto del metodo target per ottenere la rappresentazione smali del metodo. Poi applica qualche regex per estrarre i dati dallo smali. Ci sono molte regex definite nel file smali_regexes.py da consultare.
  • Molto spesso i packer usano file dalla cartella asset. Puoi ottenere i file con self.apk_object.get_files()
  • Molto spesso i packer usano la classe Application per avviare la sequenza di unpacking. Usa application = self.apk_object.get_attribute_value("application", "name") per ottenere la classe Application definita nel file manifest.

Ringraziamenti:

apkdetect.com per i campioni unici con cui lavorare.

Scarica lo strumento