Un obfuscator este un proces sau un dispozitiv care are scopul de a face un program mai greu de înțeles. În general, abordarea ofuscatorului este de a lua un program care este relativ simplu și de a face codul de bază mai complex. Deși nu este probabil ca utilizatorul final să observe o diferență în modul în care rulează codul, funcția de ofuscator face mai dificilă piratarea codului și deturnarea programului. Din această perspectivă, folosirea acestui tip de instrument poate fi văzută ca o măsură de securitate.
Numele dispozitivului sau procesului este împrumutat de la cuvântul „obfuscate”, care se referă la complicarea unei prezentări verbale în încercarea de a deruta sau de a deruta. În același mod, ofuscatorul încearcă să facă procesul de înțelegere a codului oarecum nedumerit. Acest lucru îngreunează, în esență, subminarea codului, deoarece adevărata carne a codului este atât de adânc îngropată sau ascunsă încât este greu să extragi părțile esențiale de lucru ale codului.
Există mai multe limbaje de programe care tind să răspundă foarte bine la procesul de ofucare. C++ este printre cele mai populare limbi și face posibilă utilizarea unui obfuscator cu relativă ușurință, fără a deteriora funcția codului de bază. În același mod, C și Perl tind să funcționeze bine cu utilizarea ofuscarii, ceea ce face relativ ușor să adăugați un element de protecție oricărei programe scrise în aceste trei limbi.
În timp ce scopul unui obfuscator este de a face în mod intenționat codul mai greu de dezlegat, există, de asemenea, necesitatea de a vă asigura că oamenii care sunt autorizați să lucreze cu programarea pot face acest lucru fără a fi împiedicați de procesul de ofuscare. În acest scop, este posibil să folosiți diferite tehnici pentru a rezolva complicațiile adăugate și pentru a ajunge la codul de bază. Acest proces este cunoscut sub numele de inginerie inversă, deoarece implică în esență anularea complicațiilor pentru a vedea imaginea adevărată. Tăierea programului este un exemplu de tehnici de inginerie inversă utilizate pentru a descufunda un set de cod.
Deși ofuscatorul oferă un anumit grad de protecție, este important să ne dăm seama că acest proces nu ar trebui să fie singurul mijloc de securitate folosit pentru a proteja programarea. Alte strategii de securitate ar trebui, de asemenea, utilizate pentru a se asigura că inserțiile răuvoitoare nu sunt primite de rețea și nu sunt permise să își facă loc în codurile existente.