Obfuscator

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Obfuscator (počeštěle obfuskátor z angl. obfuscatezatemnit) 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)

Úč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.