tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Guida alla Decompilazione di Wasm e Compilazione di Wat
Nel campo del WebAssembly, gli strumenti per decompilare e compilare sono essenziali per gli sviluppatori. Questa guida introduce alcune risorse online e software per gestire i file Wasm (WebAssembly binary) e Wat (WebAssembly text).
Strumenti Online
- Per decompilare Wasm in Wat, lo strumento disponibile nella demo wasm2wat di Wabt è molto utile.
- Per compilare Wat di nuovo in Wasm, la demo wat2wasm di Wabt serve allo scopo.
- Un'altra opzione di decompilazione può essere trovata in web-wasmdec.
Soluzioni Software
- Per una soluzione più robusta, JEB di PNF Software offre funzionalità estese.
- Il progetto open-source wasmdec è anche disponibile per compiti di decompilazione.
Risorse per la Decompilazione di .Net
Decompilare assembly .Net può essere realizzato con strumenti come:
- ILSpy, che offre anche un plugin per Visual Studio Code, consentendo l'uso multipiattaforma.
- Per compiti che coinvolgono decompilazione, modifica e ricompilazione, dnSpy è altamente raccomandato. Facendo clic con il tasto destro su un metodo e scegliendo Modifica Metodo si possono apportare modifiche al codice.
- dotPeek di JetBrains è un'altra alternativa per decompilare assembly .Net.
Migliorare il Debugging e il Logging con DNSpy
Logging di DNSpy
Per registrare informazioni in un file utilizzando DNSpy, integra il seguente frammento di codice .Net:
%%%cpp using System.IO; path = "C:\inetpub\temp\MyTest2.txt"; File.AppendAllText(path, "Password: " + password + "\n"); %%%
Debugging di DNSpy
Per un debugging efficace con DNSpy, si raccomanda una sequenza di passaggi per regolare gli attributi dell'Assembly per il debugging, assicurandosi che le ottimizzazioni che potrebbero ostacolare il debugging siano disabilitate. Questo processo include la modifica delle impostazioni di DebuggableAttribute
, la ricompilazione dell'assembly e il salvataggio delle modifiche.
Inoltre, per eseguire il debug di un'applicazione .Net eseguita da IIS, eseguire iisreset /noforce
riavvia IIS. Per allegare DNSpy al processo IIS per il debugging, la guida istruisce sulla selezione del processo w3wp.exe all'interno di DNSpy e sull'avvio della sessione di debugging.
Per una visione completa dei moduli caricati durante il debugging, è consigliato accedere alla finestra Moduli in DNSpy, seguita dall'apertura di tutti i moduli e dalla ordinazione degli assembly per una navigazione e un debugging più facili.
Questa guida racchiude l'essenza della decompilazione di WebAssembly e .Net, offrendo un percorso per gli sviluppatori per affrontare questi compiti con facilità.
Decompilatore Java
Per decompilare bytecode Java, questi strumenti possono essere molto utili:
Debugging di DLL
Utilizzando IDA
- Rundll32 viene caricato da percorsi specifici per le versioni a 64 bit e a 32 bit.
- Windbg è selezionato come debugger con l'opzione di sospendere il caricamento/scaricamento della libreria abilitata.
- I parametri di esecuzione includono il percorso della DLL e il nome della funzione. Questa configurazione interrompe l'esecuzione al caricamento di ogni DLL.
Utilizzando x64dbg/x32dbg
- Simile a IDA, rundll32 viene caricato con modifiche alla riga di comando per specificare la DLL e la funzione.
- Le impostazioni vengono regolate per interrompere all'ingresso della DLL, consentendo di impostare un punto di interruzione nel punto di ingresso desiderato della DLL.
Immagini
- I punti di arresto dell'esecuzione e le configurazioni sono illustrati tramite screenshot.
ARM & MIPS
- Per l'emulazione, arm_now è una risorsa utile.
Shellcodes
Tecniche di Debugging
- Blobrunner e jmp2it sono strumenti per allocare shellcode in memoria e debugarli con Ida o x64dbg.
- Blobrunner rilasci
- jmp2it versione compilata
- Cutter offre emulazione e ispezione di shellcode basate su GUI, evidenziando le differenze nella gestione del shellcode come file rispetto al shellcode diretto.
Deobfuscazione e Analisi
-
scdbg fornisce informazioni sulle funzioni del shellcode e capacità di deobfuscazione. %%%bash scdbg.exe -f shellcode # Informazioni di base scdbg.exe -f shellcode -r # Rapporto di analisi scdbg.exe -f shellcode -i -r # Hook interattivi scdbg.exe -f shellcode -d # Dump del shellcode decodificato scdbg.exe -f shellcode /findsc # Trova l'offset di partenza scdbg.exe -f shellcode /foff 0x0000004D # Esegui dall'offset %%%
-
CyberChef per disassemblare shellcode: ricetta CyberChef
Movfuscator
- Un offuscante che sostituisce tutte le istruzioni con
mov
. - Risorse utili includono una spiegazione su YouTube e diapositive PDF.
- demovfuscator potrebbe invertire l'offuscamento di movfuscator, richiedendo dipendenze come
libcapstone-dev
elibz3-dev
, e installando keystone.
Delphi
- Per i binari Delphi, si raccomanda IDR.
Corsi
- https://github.com/0xZ0F/Z0FCourse_ReverseEngineering
- https://github.com/malrev/ABD (Deobfuscazione binaria)
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.