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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
unidbg — Consente di emulare una libreria nativa Android e un'emulazione iOS sperimentale. | Kitploit
Strumenti/GitHubGitHub/zhkl0228/unidbg
Sicurezza AndroidAnalisi Dinamica (Sandboxing)Sicurezza iOSReverse EngineeringDebuggerAnalisi di BinariApprendimento e FormazioneReverse Engineering Assistito dall'IA
GitHubzhkl0228/unidbg

unidbg

Consente di emulare una libreria nativa Android e un'emulazione iOS sperimentale.

Vedi Repository
5.1k1.2k8214 giorni 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

unidbg

Consente di emulare una libreria nativa Android e una sperimentale emulazione iOS.

Questo è un progetto educativo per imparare di più sul formato file ELF/MachO e sull'assembly ARM.

Usalo a tuo rischio e pericolo!

Caratteristiche

  • Supporto MCP (Model Context Protocol) per il debug assistito dall'AI con Cursor e altri strumenti AI.
  • Emulazione dell'API JNI Invocation così che JNI_OnLoad possa essere chiamato.
  • Supporta JavaVM, JNIEnv.
  • Emulazione delle istruzioni syscall.
  • Supporta ARM32 e ARM64.
  • Hook inline, grazie a Dobby.
  • Hook delle importazioni Android, grazie a xHook.
  • Hook iOS con fishhook, substrate e whale.
  • Il backend unicorn supporta un semplice debugger da console, stub gdb, traccia delle istruzioni, traccia di lettura/scrittura della memoria.
  • Supporta il runtime objc e swift di iOS.
  • Supporta il backend veloce dynarmic.
  • Supporta l'hypervisor Apple M1, il backend ARM64 più veloce.
  • Supporta il backend Linux KVM con Raspberry Pi B4.
  • Rilevamento delle fughe di memoria per il codice nativo emulato con backtrace guest e stack trace host.

Debugger MCP (Integrazione AI)

unidbg supporta il Model Context Protocol (MCP) per il debug assistito dall'AI. Quando il debugger è attivo, digita mcp nella console per avviare un server MCP a cui gli strumenti AI (es. Cursor) possono connettersi.

Avvio rapido

L'MCP di unidbg ha due modalità operative:

Modalità 1: Debug con breakpoint — Collega il debugger ed esegui il tuo codice. Quando viene raggiunto un breakpoint, Breaker.debug() mette in pausa l'emulatore: digita mcp nella console per avviare il server MCP e lascia che l'AI assista con l'analisi. Tutti gli strumenti di debug sono disponibili (registri, memoria, disassembly, step, tracciamento, ecc.). Dopo la ripresa, se viene raggiunto un altro breakpoint, il debugger si mette di nuovo in pausa. Una volta che l'esecuzione termina senza raggiungere un breakpoint, il processo esce e l'MCP si spegne.

Debugger debugger = emulator.attach();
debugger.addBreakPoint(address);
// run your emulation logic — debugger pauses when breakpoint is hit

Modalità 2: Strumenti personalizzati (ripetibili) — Usa McpToolkit per registrare strumenti personalizzati e lascia che l'AI riesegua le funzioni target con parametri diversi. La libreria nativa viene caricata una sola volta; dopo ogni esecuzione il processo resta attivo e l'MCP rimane disponibile per l'esecuzione successiva.

McpToolkit toolkit = new McpToolkit();
toolkit.addTool(new McpTool() {
    @Override public String name() { return "encrypt"; }
    @Override public String description() { return "Run encryption"; }
    @Override public String[] paramNames() { return new String[]{"input"}; }
    @Override public void execute(String[] params) {
        String input = params.length > 0 ? params[0] : "default";
        // call encryption with input
    }
});
toolkit.run(emulator.attach());

Quando il debugger si ferma, digita mcp (oppure mcp 9239 per specificare la porta) nella console. Poi aggiungi nelle impostazioni MCP di Cursor:

{
  "mcpServers": {
    "unidbg-mcp-server": {
      "url": "http://localhost:9239/sse"
    }
  }
}

Strumenti MCP disponibili

Stato e informazioni

ToolDescription
check_connectionStato dell'emulatore: famiglia, architettura, capacità del backend, isRunning, moduli caricati
list_modules / get_module_infoElenca i moduli caricati, ottieni dettagli incluso il conteggio dei simboli esportati e le dipendenze
list_exportsElenca i simboli esportati/dinamici di un modulo con filtro opzionale e demangling C++
find_symbolTrova un simbolo per nome o trova il simbolo più vicino a un indirizzo
get_threadsElenca tutti i thread/attività nell'emulatore

Registri e disassembly

ToolDescription
get_registers / get_register / set_registerLegge/scrive i registri della CPU
disassembleDisassembla le istruzioni all'indirizzo (le destinazioni dei branch sono annotate automaticamente con i nomi dei simboli)
assembleAssembla il testo delle istruzioni in codice macchina
get_callstackOttieni lo stack di chiamate corrente (backtrace)

Memoria

ToolDescription
read_memory / write_memoryLegge/scrive byte grezzi di memoria
read_string / read_std_stringLegge una stringa C o std::string C++ (con rilevamento SSO)
read_pointerLegge una catena di puntatori con risoluzione dei simboli
read_typedLegge la memoria come valori tipizzati (int8–int64, float, double, pointer)
search_memoryCerca nella memoria pattern di byte con filtri di ambito/autorizzazioni
list_memory_mapElenca tutte le mappature di memoria con le autorizzazioni
allocate_memory / free_memory / list_allocationsAlloca (malloc/mmap) con dati iniziali opzionali, libera e traccia i blocchi di memoria
patchScrive istruzioni assemblate in memoria

Breakpoint ed esecuzione

ToolDescription
add_breakpoint / add_breakpoint_by_symbol / add_breakpoint_by_offsetAggiunge breakpoint per indirizzo, simbolo o modulo+offset
remove_breakpoint / list_breakpointsRimuove o elenca i breakpoint (con disassembly)
continue_executionRiprende l'esecuzione. Usa poll_events per attendere breakpoint_hit o execution_completed
step_over / step_into / step_outEsegue passo su, dentro (N istruzioni) o fuori dalla funzione
next_blockInterrompe al prossimo blocco di base (solo Unicorn)
step_until_mnemonicInterrompe alla prossima istruzione che corrisponde al mnemonico, es. bl, ret (solo Unicorn)
poll_eventsEsegue il polling di breakpoint_hit, execution_completed, eventi di traccia

Tracciamento

ToolDescription
trace_codeTraccia le istruzioni con i valori di lettura/scrittura dei registri (regs_read, prev_write)
trace_read / trace_writeTraccia letture/scritture di memoria in un intervallo di indirizzi

Chiamate di funzione

ToolDescription
call_functionChiama una funzione nativa per indirizzo con argomenti tipizzati (hex, stringa, byte, null). Restituisce il valore con risoluzione dei simboli e anteprima della memoria
call_symbolChiama una funzione esportata per modulo + nome del simbolo, es. libc.so + malloc

Solo iOS (disponibile quando Family=iOS)

ToolDescription
inspect_objc_msgIspeziona la chiamata objc_msgSend: mostra il nome della classe del ricevente e il selettore, es. -[NSString length]
get_objc_class_nameOttiene il nome della classe ObjC di un oggetto a un determinato indirizzo (pura analisi della memoria, nessuna modifica dello stato)
dump_objc_classEstrae la definizione della classe ObjC (proprietà, metodi, protocolli, ivars)
dump_gpb_protobufEstrae lo schema del messaggio protobuf GPB in formato .proto (solo 64-bit)

Strumenti MCP personalizzati

Scarica lo strumento