Što je Obfuscator?

Obfuscator je proces ili uređaj koji je namijenjen da program učini težim za razumijevanje. Općenito, pristup obfuskatora je da uzme program koji je relativno jednostavan i da temeljni kod učini složenijim. Iako krajnji korisnik vjerojatno neće primijetiti razliku u načinu na koji se kod izvodi, funkcija obfuskatora otežava hakiranje koda i otmicu programa. Iz ove perspektive, korištenje ove vrste alata može se promatrati kao sigurnosna mjera.

Naziv uređaja ili procesa posuđen je od riječi “zamračiti”, što se odnosi na kompliciranje verbalne prezentacije u pokušaju da se zbuni ili zbuni. Na sličan način, obfuskator nastoji učiniti proces shvaćanja koda pomalo zbunjujućim. To u biti otežava potkopavanje koda, budući da je pravo meso koda toliko duboko zakopano ili zamagljeno da je teško izdvojiti bitne radne dijelove koda.

Postoji nekoliko programskih jezika koji vrlo dobro reagiraju na proces zamagljivanja. C++ je među najpopularnijim jezicima i omogućuje korištenje obfuskatora s relativnom lakoćom bez narušavanja funkcije osnovnog koda. Na sličan način, C i Perl također imaju tendenciju dobro funkcionirati uz korištenje zamagljivanja, što olakšava dodavanje elementa zaštite svakom programiranju napisanom na ova tri jezika.

Iako je svrha obfuskatora namjerno otežati razotkrivanje koda, postoji i potreba da se osigura da ljudi koji su ovlašteni za rad s programiranjem to mogu učiniti bez da ih proces zamagljivanja ometa. U tu svrhu moguće je upotrijebiti različite tehnike za rješavanje dodatnih komplikacija i dolazak do osnovnog koda. Ovaj proces je poznat kao obrnuti inženjering, budući da u biti uključuje poništavanje komplikacija kako bi se vidjela prava slika. Rezanje programa primjer je tehnika obrnutog inženjeringa koje se koriste za demaskiranje skupa koda.

Iako obfuskator pruža određeni stupanj zaštite, važno je shvatiti da ovaj proces ne bi trebao biti jedino sredstvo sigurnosti koje se koristi za zaštitu programiranja. Druge sigurnosne strategije također bi se trebale koristiti kako bi se osiguralo da mreža ne primi zlonamjerna umetanja i da im dopusti da probiju svoj put u postojeće kodove.