"Obfuscator.exe" est le programme qui permet de rendre des script FSProg incompréhensibles par un humain, mais toujours exécutables par FSProg.
Pour cela il remplace les noms de variables et change les noms de fonctions sources.
Voici un script FSProg classique :
func ::Boucle
for ($i;=0,$i;<=5,+1)
if ($i;==3)
{
exitLoop
}
message(0,$i;,0)
next
endF
::Boucle
message(0,6,0)
Et voici le même script après avoir été obfusqué :
//\ Fichier rendu illisible par "Obfuscator.exe", développé par TT22 pour FSProg.
#replace o22817vW748V39RFeU fWrite
#replace n9Yn4Yd15H822Hx117 fRead
#replace dT86ZCQX17760lp524 fDel
#replace DFdL4o012cB2yIDb5R fCreate
#replace J1jvm400EX5G3V9pn4 fMove
#replace 89n3w50yNEul899sg0 fCopy
#replace 4o4HHY4h800R5U28gd fRun
#replace 0i4U2C894O9c2c2Z62 dDel
#replace 7RXk7Bajk9wV5gD734 dCreate
#replace wvL5j1mNp38O850O0q dMove
#replace 2rR8W2bn5Y2Kdld478 dCopy
#replace 9F39CLA05LPIin1y30 pDel
#replace DeeA8d3XRk45B7KJR3 pSet
#replace f0533NF9554Z9Obd6f pExist
#replace 53zxjKC0c26L3086kH pWait
#replace 7dOE065b8R3mK67l37 mMove
#replace 8H713mnDeHbZ005pW9 mLeft
#replace 9194C482O7Z1268cq1 mRight
#replace 7W6yc7R6w165n4490Z kSend
#replace m2B76Foh0C18fhjnH1 kDown
#replace bH550312k5s743Nv0M kUp
#replace h5GnL7vP09n15NX070 message
#replace 7yUB17495LE7QuL6V0 exit
#replace m2473p2bHn1aeO2v5r sleep
#replace S1ia6657043TyKpt8N console
#replace Pz4M2LI7C19Hm62l0a random
#replace sbkW1CITE4dH3d6K5z sSetErr
#replace 674nF626236hC3xROO sExitCode
#replace r076507303705A9U4Z sWriteErr
#replace 36Xq0K1694hD70271a sGetOsInfo
#replace 69133N4030Th9M20y2 strLeft
#replace 42r3BF9M46R7KURv90 strRight
#replace i2x45RI9755i980y65 strReplace
#replace aqlMah0v8t59yv995l strInStr
#replace jo20De02ul60q1K1Lt strLen
#replace 5oN149eO4I02PMt00h sGetEnv
#replace 659W018sRp381cJ33x sSetEnv
#replace 3e87l2STyOH3734xrO cWrite
#replace x7198375jFsu0WgdXy cClear
#replace W58GB9kUy24P806Ki5 cGet
#replace 59129oNKY6FDI1h356 cTitle
#replace tNuO90G249329553OF cExec
#replace 0N7z9L6b5S4h9o28MN isDeclared
#replace hE5FWw4v9zkedH7kt5 fExist
#replace mMpCNs0N9ZU8ut39BQ dExist
#replace B1290bS6PbDWH5g349 wActivate
#replace O08868AcHMO3Ag6E8K wWait
#replace 4YSyB36v0W800j1505 wSetPos
#replace 8Oj1H4ja60086005S9 wGetPos
#replace vWko277o22h2ajY85i wSetSize
#replace 6Zg70NpE85t25p1hqL wGetSize
#replace R1bj1q5Q9z9e14671k wExist
func ::Boucle
for ($R9uwys19WokMCjdn10;=0,$R9uwys19WokMCjdn10;<=5,+1)
if ($R9uwys19WokMCjdn10;==3)
{
7yUB17495LE7QuL6V0Loop
}
h5GnL7vP09n15NX070(0,$R9uwys19WokMCjdn10;,0)
next
endF
::Boucle
h5GnL7vP09n15NX070(0,6,0)