Obfuscator
Obfuscator (počeštěle obfuskátor z angl. obfuscate – zatemnit) je konverzní softwarová pomůcka, která převádí zdrojový kód konkrétního programovacího nebo skriptovacího jazyku do téhož zdrojového kódu v témže jazyku, ale provede v něm několik změn. Typicky:
- odstraní komentáře a dokumentaci uvnitř kódu
- zruší formátování kódu tím, že vymaže veškeré „bílé místo“ (white space)
- přejmenuje identifikátory proměnných popř. i konstant, někdy i uživatelských funkcí
- popř. další nadstandardní zásahy do kódu (definování a použití vlastních funkcí pro potřeby obfuskace)
Typ softwaru | vlastnost softwaru |
---|---|
Některá data mohou pocházet z datové položky. |
Účelem obfuskátoru je (jak napovídá název) zatemnit daný zdrojový kód, t.j. co nejvíce znesnadnit jeho „čitelnost“ pro člověka – odmazáním komentářů vysvětlujících, co kód dělá; zničení formátování kódu, zrušení odsazení, indikující hierarchii jednotlivých příkazů a jejich příslušnost do syntaktických struktur kódu, naruší způsob, kterým oko člověka znalého syntaxe daného programovacího jazyka je zvyklé daný kód číst. Přejmenování proměnných je obdobným krokem – názvy proměnných u programů s dobrou štábní kulturou naznačují, na co jsou tyto proměnné používány.
Podmínkou smyslu existence obfuskátoru je současně to, aby zdrojový kód byl i po konverzi čitelný pro překladač nebo interpret svého respektivního jazyku.
Důvod, proč se obfuskátory používají, je zamezení třetí osobě, která by ke zdrojovému kódu mohla získat přístup; aby tento program mohla snadno rozvíjet, dělat na něm úpravy (například i ty za účelem odstranění různých ochran heslem nebo licenčními klíči) apod.