Mis on obfuskaator?

Obfuskaator on protsess või seade, mille eesmärk on muuta programmi raskemini mõistetavaks. Üldiselt on obfuskaatori lähenemisviis võtta suhteliselt sirgjooneline programm ja muuta selle aluseks olev kood keerukamaks. Kuigi lõppkasutaja ei märka tõenäoliselt koodi käitamise viisi erinevust, muudab obfuskaatori funktsioon koodi häkkimise ja programmi kaaperdamise raskemaks. Sellest vaatenurgast võib seda tüüpi tööriistade kasutamist vaadelda turvameetmena.

Seadme või protsessi nimi on laenatud sõnast “hägustama”, mis viitab sõnalise esitluse keerulisemaks muutmisele, et tekitada segadust või segadust. Samamoodi püüab obfuskaator muuta koodi mõistmise protsessi mõnevõrra segaseks. See raskendab sisuliselt koodi õõnestamist, kuna koodi tegelik sisu on nii sügavale maetud või segatud, et koodi olulisi tööosi on raske eraldada.

On mitmeid programmikeeli, mis reageerivad hägustamise protsessile väga hästi. C++ on üks populaarsemaid keeli ja võimaldab suhteliselt lihtsalt kasutada obfuskaatorit ilma põhikoodi funktsiooni rikkumata. Samamoodi kipuvad C ja Perl hästi töötama ka hägustamise kasutamisel, muutes nendes kolmes keeles kirjutatud programmeerimistele kaitseelemendi lisamise suhteliselt lihtsaks.

Kuigi obfuskaatori eesmärk on muuta koodi tahtlikult raskemaks lahti harutada, tuleb ka tagada, et programmeerimisega töötamiseks volitatud inimesed saaksid seda teha, ilma et neid takistaks hägustamise protsess. Selleks on võimalik kasutada erinevaid tehnikaid, et töötada läbi lisandunud komplikatsioonid ja jõuda baaskoodini. Seda protsessi nimetatakse pöördprojekteerimiseks, kuna see hõlmab sisuliselt tüsistuste tühistamist, et näha tegelikku pilti. Programmi viilutamine on näide pöördprojekteerimise tehnikatest, mida kasutatakse koodikomplekti hägususe eemaldamiseks.

Kuigi obfuskaator pakub teatud kaitset, on oluline mõista, et see protsess ei tohiks olla ainus programmeerimise kaitsmiseks kasutatav turbevahend. Samuti tuleks kasutada muid turbestrateegiaid tagamaks, et võrk ei võtaks vastu pahatahtlikke sisestusi ja et neil ei lubataks liikuda olemasolevatesse koodidesse.