Una classe di ingegneria inversa è il concetto utilizzato per l’osservazione, lo studio e la comprensione di qualsiasi programma software specifico o ampio. Il reverse engineering è il termine applicato a come gli studenti apprendono un particolare programma software, dispositivo elettronico o oggetto meccanico smontandolo ed esaminando come funziona. Esistono diverse tecniche che vengono adottate dagli ingegneri inversi, come l’hacking per ottenere il codice sorgente di un software. Imparare l’arte dell’ingegneria inversa non è affatto un compito facile, perché lo studente dovrà imparare il processo di lavorare all’indietro attraverso un programma per vedere come funziona.
Per scegliere la migliore classe di reverse engineering, assicurati che insegnino allo studente la struttura x86, le capacità di programmazione e che l’insegnante abbia una solida conoscenza di base dei circuiti logici digitali. Le porte logiche come OR, AND, NOT e molte altre, come XOR, XNOR e NAND, devono essere coperte in classe. Il prossimo importante e significativo passo verso l’apprendimento del reverse engineering è la comprensione delle funzionalità dei diversi software e programmi, come driver studio, visual basic, software di cracking Java e altri come SoftICE. È estremamente importante comprendere ed entrare a far parte dello sviluppo versatile e del software di hacking e mantenere tutti gli strumenti ottimizzati, quindi la migliore classe di reverse engineering coprirà tutti questi aspetti in profondità.
Esistono diverse strategie e aspetti di protezione che dovrebbero essere coperti anche nella classe di reverse engineering, come protezioni password, protezioni hardware, abilitazione / disabilitazione funzioni e altri schemi di sicurezza commerciale. La sicurezza e la protezione è la prima parete su cui gli ingegneri inversi devono scavalcare per avere successo. Esistono numerose strategie di protezione e privacy che vengono adottate dagli sviluppatori e dalle società di software, quindi la classe dovrebbe avere una profonda conoscenza di esse ed essere in grado di insegnare come aggirarle o attraversarle.
Concetti di base e conoscenza del linguaggio assembly e delle sue applicazioni sono anche prerequisiti per una classe di reverse engineering. Lo studente dovrà inoltre avere familiarità con i debugger, i dissemblatori e altri software di utilità. Il concetto e l’idea di base sui diversi aspetti e vulnerabilità della violazione della sicurezza sono obbligatori per gli studenti di ingegneria inversa. Le altre tecniche che dovrebbero insegnare sono la ricerca della vulnerabilità, la valutazione delle soluzioni e l’uso di linguaggi di alta classe, come codici di firma binaria e assembly.