Corso Reverse Code Engineering
Descrizione corso
Il corso "Reverse Code Engineering", organizzato in sette giornate, è rivolto ad utenti che possiedono una sufficiente esperienza di programmazione in un qualsiasi linguaggio di programmazione procedurale ed una conoscenza di base
del linguaggio Assembler. La sua finalità è quella di fornire una visione introduttiva delle metodologie e delle tecniche utilizzate per ricostruire il funzionamento dei programmi partendo dall'analisi del codice binario.
Ogni lezione sarà basata sulla risoluzione di una serie di esercizi e casi di studio assegnati ai partecipanti, che permetteranno di memorizzare velocemente i concetti fondamentali e verificare immediatamente le conoscenze acqusite.
Al fine di garantire una ottimale interazione studente/docente, le classi saranno composte da non più di 5 studenti.
Il corso è rivolto ad aziende e liberi professionisti.
- Generalità sul Reverse Code Engineering (RCE)
- Il formato dei file eseguibili e loro identificazione
- File eseguibili, file oggetto e file rilocabili dinamicamente
- Cosa è il reverse code engineering: significato, motivazioni, principi generali e metodologie
- Le principali tecniche di RCE: white-box, black-box e gray-box
- RCE di applicazioni Linux
- Il formato ELF di un file oggetto
- Come opera il linker statico
- Formato ELF di un file eseguibile
- Collegamento dinamico e caricamento di un file eseguibile
- Librerie dinamiche e loro codice
- Strumenti per reverse code engineering in ambiente Linux
- RCE di applicazioni Windows
- Il formato PE-COFF di un file eseguibile Windows
- Reverse code engineering di applicazioni Windows utilizzando un disassemblatore interattivo
- Reverse engineering di applicazioni Windows utilizzando un debugger
Il corso puo' essere svolto presso la nostra sede di Roma, in via Roggiano Gravina, 37 (zona Anagnina), oppure, su richiesta, presso la sede del cliente.
Al fine di poter attendere il corso con il massimo profitto è consigliato che i partecipanti siano in possesso delle seguenti conoscenze:
- Esperienza di programmazione in un linguaggio procedurale
- Conoscenza di un linguaggio assemblativo
Modulo di richiesta informazioni
-
Share
- Tweet