Klasa obrnutog inženjeringa koncept je koji se koristi za promatranje, proučavanje i razumijevanje bilo kojeg specifičnog ili širokog softverskog programa. Obrnuti inženjering je pojam koji se primjenjuje na to kako studenti uče o određenom softverskom programu, elektroničkom uređaju ili mehaničkom objektu tako što ga rastavljaju i ispituju kako funkcionira. Postoji niz različitih tehnika koje usvajaju obrnuti inženjeri, kao što je hakiranje za dobivanje izvornog koda softvera. Učenje umjetnosti obrnutog inženjeringa nije nimalo lak zadatak, jer će učenik morati naučiti proces rada unatrag kroz program kako bi vidio kako funkcionira.
Kako biste odabrali najbolji tečaj obrnutog inženjeringa, pobrinite se da učenike podučavaju o x86 strukturi, vještinama programiranja i da učitelj ima snažno pozadinsko znanje o digitalnim logičkim sklopovima. Logička vrata kao što su OR, AND, NOT i puno drugih, kao što su XOR, XNOR i NAND, svi moraju biti pokriveni unutar učionice. Sljedeći važan i značajan korak prema učenju obrnutog inženjeringa je razumijevanje funkcionalnosti različitog softvera i programa, kao što su drajverski studio, visual basic, softver za krekiranje java i drugi kao što je SoftICE. Iznimno je važno razumjeti i ući pod kožu svestranog softvera za razvoj i hakiranje te držati sve alate fino podešenim, tako da će najbolji tečaj obrnutog inženjeringa pokriti sve ove aspekte u dubini.
Postoji nekoliko strategija i aspekata zaštite koji bi također trebali biti obuhvaćeni u klasi obrnutog inženjeringa, kao što su zaštita lozinkom, zaštita hardvera, omogućavanje/onemogućavanje funkcija i druge komercijalne sigurnosne sheme. Sigurnost i zaštita prvi su zid preko kojeg se obrnuti inženjeri moraju popeti da bi bili uspješni. Postoje brojne strategije zaštite i privatnosti koje su usvojili programeri softvera i tvrtke, tako da bi razred trebao imati duboko znanje o njima i biti u mogućnosti podučavati načine kako ih zaobići ili kroz njih.
Osnovni koncepti i poznavanje asemblerskog jezika i njegovih aplikacija također su preduvjeti za tečaj obrnutog inženjeringa. Učenik će također morati biti upoznat s programima za ispravljanje pogrešaka, dissemblerima i drugim pomoćnim softverom. Osnovni koncept i ideja o različitim aspektima kršenja sigurnosti i ranjivosti obvezni su za učenje studenata obrnutog inženjerstva. Ostale tehnike koje bi trebali podučavati su pronalaženje ranjivosti, procjena rješenja i korištenje jezika visoke klase, kao što su asemblerski i binarni potpisni kodovi.