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
workshop_firmware_reverse_engineering — Workshop di reverse engineering del firmware | Kitploit
Strumenti/GitHubGitHub/emproof-com/workshop_firmware_reverse_engineering
Sicurezza Sistemi EmbeddedAnalisi StaticaReverse EngineeringAnalisi MalwareSicurezza Hardware e IoTAnalisi di BinariApprendimento e FormazioneAnalisi del FirmwareLab e Pratica

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
GitHubemproof-com/workshop_firmware_reverse_engineering

workshop_firmware_reverse_engineering

Workshop di reverse engineering del firmware

Vedi Repository
4435510 mesi faRevisionato da Kitploit

Workshop: Reverse Engineering del Firmware

Questo repository contiene slide e materiali pratici per il workshop di Emproof sul reverse engineering del firmware, presentato a ScapyCon Automotive 2025. Il workshop si rivolge a un pubblico tecnico con un'esperienza minima di sicurezza e insegna le basi attraverso attività pratiche e autonome. Gli argomenti includono

  • analisi di base di file/ELF;
  • cracking del software e keygenning;
  • decrittazione di stringhe e triage di malware;
  • unpacking di firmware embedded-Linux;
  • analisi bare-metal;
  • rilevamento di crittografia;
  • tecniche di offuscamento/anti-analisi e come aggirarle;

Se ti interessa, dai un'occhiata anche alla serie di webinar tecnici di Emproof con esercizi aggiuntivi e sessioni registrate.

Il contenuto del workshop è stato progettato e organizzato da Tim Blazytko, con il supporto di Simran Kathpalia.

Configurazione

Per configurare l'ambiente, clona il repository:

root@kitploit:~
git clone https://github.com/emproof-com/workshop_firmware_reverse_engineering
cd workshop_firmware_reverse_engineering

Per diversi esercizi è richiesto un ambiente di esecuzione Linux AArch64. Forniamo un contenitore Docker basato su Kali Linux con strumenti comuni (ad es. GNU Binutils, Binwalk) preinstallati. Questo semplifica l'ambiente su Linux, Windows e macOS, indipendentemente dall'architettura della CPU host. Per avviare il contenitore e accedere alla shell, esegui:

root@kitploit:~
./docker_run.sh

Nota: La prima esecuzione potrebbe richiedere del tempo per creare l'immagine.

Nota (architettura): Il servizio Docker Compose imposta platform: "linux/arm64".
Su host x86_64 (Intel macOS/Windows/Linux) Docker Desktop eseguirà l'immagine tramite emulazione, quindi la prima build e l'avvio potrebbero essere più lenti — è normale. Su host ARM64 nativi (Apple Silicon, server ARM) viene eseguito nativamente ed è più veloce.

Nota: Il contenitore Docker può eseguire anche binari ARMv7 (armhf). Installiamo il runtime armhf (dynamic loader + librerie) nell'immagine e registriamo i gestori binfmt sia per aarch64 che per arm tramite lo script di avvio.

Inoltre, installa i seguenti strumenti grafici sul tuo host per le attività interattive di reverse engineering (non sono inclusi nel contenitore):

  • Ghidra
  • Binary Ninja Free

Entrambi gli strumenti sono disponibili per Windows, Linux e macOS.

Nota: Binary Ninja Free non supporta AArch64. Per l'analisi AArch64 usa Ghidra (o una build con licenza di Binary Ninja). Pertanto, diversi laboratori includono un binario compagno ARMv7 (*.armv7) specificamente per Binary Ninja Free; questi possono essere eseguiti anche nello stesso contenitore.

Ordine degli Esercizi

Ogni esercizio è autonomo in tasks/<name>/ e include:

  • samples/ — i binari (e talvolta il sorgente) usati nell'esercizio
  • task.md — la consegna con istruzioni passo-passo e suggerimenti

Gli esercizi possono essere affrontati in modo indipendente, ma forniamo un ordine consigliato (elencato di seguito) che aumenta gradualmente la difficoltà e introduce nuove tecniche. La maggior parte dei campioni ha come target ARMv7 (Thumb/ARM32) o AArch64; dove rilevante, le note degli esercizi indicano l'architettura, gli strumenti richiesti e eventuali esigenze speciali di runtime.

  • tasks/hello_world: basi dei file ELF e analisi dei metadati; primi passi in Ghidra / Binary Ninja.

  • tasks/license_check: estrazione di segreti hardcoded / sblocco di funzionalità; patch di base per aggirare le validazioni (cracking).

  • tasks/game: semplice gioco di indovinare un numero; comprendere la logica e craccare la modalità trial rispetto a quella completa.

  • tasks/keygenning_1: fare reverse engineering di una validazione di licenza e scrivere un keygen minimale per generare seriali validi.

  • tasks/keygenning_2: un esercizio di keygenning leggermente più sofisticato (salt/chiavi, codifica hex).

  • tasks/string_encryption: binario con stringhe cifrate (comune nei malware); identificare il decryptor e recuperare le stringhe staticamente.

  • tasks/mirai: malware embedded che usa una routine di decrittazione delle stringhe; navigare in una codebase più grande, identificare costrutti interessanti e gestire stringhe offuscate.

  • tasks/embedded_linux_1: firmware embedded-Linux con filesystem; estrarre, esplorare e craccare le informazioni di login Linux (stile CTF).

  • tasks/embedded_linux_2: simile, ma trovare e analizzare un binario nascosto che non dovrebbe essere lì.

  • tasks/car_demo: analisi di firmware bare-metal: identificare architettura, scheda, mappa di memoria, artefatti del toolchain; estrarre credenziali Wi-Fi e endpoint di protocollo.

Licenza

Salvo diversa indicazione, tutti i materiali del workshop in questo repository sono concessi in licenza secondo la GNU General Public License, versione 2 (GPL-2.0). Vedi LICENSE per il testo completo.

Alcuni campioni di terze parti / provenienti da fonti esterne sono esclusi dalla GPL e forniti solo per analisi/istruzione (nessuna ridistribuzione). Questi sono:

  • tasks/mirai/samples/
  • tasks/embedded_linux_1/samples/
  • tasks/embedded_linux_2/samples/

Nota: Se una sottodirectory include un proprio file di licenza o header, quella licenza ha precedenza per il contenuto di quella sottodirectory.

Scarica lo strumento
  • tasks/iot_diag: dump di firmware bare-metal di uno strumento diagnostico; ricreare i layout di memoria dal datasheet, poi trovare la password per sbloccare la modalità diagnostica.

  • tasks/crypto_detection: binario AArch64 che esegue operazioni crittografiche con una chiave AES hardcoded; individuare la chiamata EVP e risalire a chiave/IV per decrittare senza il programma.

  • tasks/license_check_anti_patching: anti-patching tramite checksum del codice; comprendere il controllo CRC e imparare modi per aggirarlo.

  • tasks/fibonacci_obfuscation: implementazioni di Fibonacci pulite vs offuscate (switch flattening, computed goto, predicati opachi, offuscamento aritmetico, piccola VM); comprendere le tecniche e normalizzarle.