Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
dexcalibur — [Ufficiale] Strumento di reverse engineering Android focalizzato sull'automazione dell'instrumentazione dinamica sfruttando Frida. Disassembla dex, lo analizza staticamente, genera hook, scopre metodi riflessi, memorizza i dati intercettati e ne ricava nuove informazioni. Il suo obiettivo è essere una piattaforma tutto-in-uno per il reverse engineering Android. | Kitploit
Strumenti/GitHubGitHub/reversenseorg/dexcalibur
Sicurezza AndroidAnalisi StaticaAnalisi Dinamica (Sandboxing)Reverse EngineeringDebuggerFuzzingSicurezza MobileAnalisi di Binari

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 →

Informazioni

GitHub
reversenseorg/dexcalibur

dexcalibur

Vedi Repository
1.2k1302423 giorni faRevisionato da Kitploit

[Ufficiale] Strumento di reverse engineering Android focalizzato sull'automazione dell'instrumentazione dinamica sfruttando Frida. Disassembla dex, lo analizza staticamente, genera hook, scopre metodi riflessi, memorizza i dati intercettati e ne ricava nuove informazioni. Il suo obiettivo è essere una piattaforma tutto-in-uno per il reverse engineering Android.

Condividi

WiP : Passaggio a dexcalibur 2.0 | nome in codice : Reversense

npm dependencies npm npm Docker Automated build Build Status Twitter Follow PRs Welcome Maintainability

Dexcalibur banner

Dexcalibur

Dexcalibur è una piattaforma di reverse engineering Android focalizzata sull'automazione dell'instrumentazione. La sua particolarità è l'uso dell'analisi dinamica per migliorare le euristiche di analisi statica. Mira ad automatizzare compiti noiosi legati all'instrumentazione dinamica, come:

  • Decompilare/disassemblare bytecode intercettato in runtime
  • Scrivere codice hook e gestire molti messaggi hook
  • Cercare pattern/cose interessanti da hookare
  • Elaborare i dati raccolti dagli hook (file dex, metodo invocato, class loader, …)
  • e così via…

Ma non solo, perché Dexcalibur ha un proprio motore di analisi statica ed è in grado di eseguire porzioni parziali di smali.

Vuoi condividere qualcosa o hai bisogno di aiuto? Unisciti alle nostre chat ufficiali:

Telegram - il modo più rapido per ricevere una risposta

https://discord.gg/Pfw7Kc3dS

La documentazione ufficiale è disponibile qui (sito in lavorazione).

Vedi le ultime notizie qui: http://docs.dexcalibur.org/News.html

Guarda i video dimostrativi di Dexcalibur: Demo: Meno di 1 minuto per hookare 61 metodi? Nessun problema. (youtube)

Come supportare Dexcalibur?

Contribuisci!

Non esitare! Ci sono diversi modi per contribuire:

  • Fare una pull request relativa a una correzione o a una nuova funzionalità
  • Creare un issue per aiutarmi a correggere/migliorare gli strumenti
  • Aiutarmi a sviluppare l'interfaccia utente
  • Inviarmi una email con il tuo feedback
  • ecc…

A. Installazione

A.1 Nuova installazione

Vai alla documentazione di installazione

Alternativa: usa Docker

  • sul tuo host, installa adb (e un emulatore Android se appropriato)
  • docker-compose build android-dexcalibur
  • docker run --rm -it --net=host -v /tmp/dexcalibur:/shared -p 8000:8000 dexcalibur:2023.01 /bin/bash

A.2 Avviare dexcalibur

Per Linux e MacOS

Installazione NPM: Se Dexcalibur è stato installato globalmente usando NPM (opzione -g), allora Dexcalibur può essere avviato dal terminale eseguendo $ dexcalibur, altrimenti può essere avviato con $ node $(node root -g dexcalibur)/dexcalibur/dexcalibur.js.

Installazione da sorgente: dalla cartella dexcalibur, esegui $ dexcalibur o $ node dexcalibur.js.

Per Windows

Installazione NPM: Anche se Dexcalibur è installato globalmente usando NPM (opzione -g), Dexcalibur deve essere avviato dal terminale eseguendo il seguente comando da un terminale node <NPM_ROOT>/dexcalibur/dexcalibur.js.

Installazione da sorgente: dalla cartella dexcalibur, nel terminale, esegui il comando node dexcalibur.js.

A.3 Aggiornamento

Dalla versione <= 0.6.x

Stai usando una versione precedente di Dexcalibur?

Segui gli stessi passaggi di una nuova installazione e, quando ti viene chiesto il percorso del workspace, inserisci la posizione del tuo workspace attuale.

Dalla versione >= 0.7

Semplicemente eseguendo:

$  npm install -g dexcalibur

La configurazione e il workspace esistenti verranno rilevati automaticamente.

C. Schermate

Le seguenti schermate illustrano l'aggiornamento automatico degli xref in runtime.

Xref auto update

Features

D. Funzionalità e limitazioni

Attualmente, la limitazione più grande è che Dexcalibur non è in grado di generare codice sorgente di hook che targettano funzioni native (in librerie JNI). Tuttavia, puoi dichiarare manualmente un Interceptor di Frida modificando un hook.

Considerando che Dexcalibur non fornisce (per il momento) funzionalità per analizzare la parte nativa come librerie JNI o JNA, sono state dettagliate solo le funzionalità e limitazioni relative alla parte Java.

L'accuratezza dell'analisi dipende dalla completezza dell'immagine dell'API Android utilizzata durante le prime fasi dell'analisi. Ciò significa che, se utilizzi un file DEX generato dal file Android.jar di Android SDK, alcuni riferimenti a metodi, campi o classi interne dell'API Java Android potrebbero mancare. Risultati migliori si ottengono quando l'analisi parte da un file "boot.oat" estratto direttamente da un dispositivo reale che esegue la versione Android prevista.

D.1 Funzionalità

D.1.A Analizzatore statico

TODO: scrivi testo

D.1.B Gestore hook

TODO: scrivi testo

D.1.C VM smali di Dexcalibur

Comportamenti tracciati

L'analizzatore statico coinvolto nell'azione "Run smali (VM)" è in grado di scoprire e accettare, ma traccia i seguenti comportamenti:

  • Registro di destinazione fuori dai limiti (registro fuori da v0 - v255)
  • Registro sorgente fuori dai limiti (registro fuori da v0 - v65535)
  • Rileva istruzioni non valide che generano implicitamente un'eccezione interna
  • Rileva alcuni pezzi di bytecode valido ma non conforme alle specifiche Android
  • Calcola la lunghezza di un array non definito
  • Riempie un array non definito
  • e altro ancora…

Attualmente, gestori/listener per tali istruzioni non valide non sono supportati, ma gli eventi vengono tracciati e visualizzati.

IR di Dexcalibur

La VM produce una rappresentazione intermedia (IR) personalizzata e semplificata che viene visualizzata solo per aiutare l'analista a svolgere la propria analisi.

A seconda del valore della profondità dello stack di chiamate e della configurazione, l'IR può includere o meno le istruzioni eseguite nella funzione chiamata. Se l'esecuzione entra in un blocco try e prosegue fino al return, ma non esegue mai il catch, allora il blocco catch non verrà visualizzato. In effetti, lo scopo dell'IR di Dexcalibur è visualizzare solo "ciò che viene eseguito" o "ciò che potrebbe essere eseguito a seconda del valore di qualche simbolo" nel contesto della VM.

L'IR di Dexcalibur aiuta a leggere una versione ripulita del bytecode rimuovendo goto inutili e predicati opachi. L'IR di Dexcalibur può essere generato dalla VM con 2 livelli di semplificazione:

IR di primo livello, potrebbe essere usato se non ti fidi dell'IR di secondo livello:

  • nessuna semplificazione del CFG: vengono visualizzati salti condizionali e incondizionali.
  • ogni move in un registro viene visualizzato
Scarica lo strumento