Obfuscator
Monkey Targets Forums/HTML5/Obfuscator| 
 | ||
| Has somebody experiences about obfuscated javascript code? I see, that all "main.js" of my html5 apps are clearly readable. It would be very helpful if at least the variable names, function names and strings would be reduced to a short string or obfuscated. I tried an online obfuscator, but the result was double size and not working.... ***EDIT*** Ok,... I fould Google Closure. It seems to work pretty good. The code was reduced to a third, all names are a or b or c or a combination of it. The strings are kept as they have been. Now it would be very helpful, if MONKEY eliminates the PRINT command lines in RELEASE version. I use this only for debug purposes. Mark, could you add a feature to switch ON/OFF elimination in TED? | 
| 
 | ||
| Google have something called Closure that can be used https://developers.google.com/closure/compiler/ | 
| 
 | ||
|  Now it would be very helpful, if MONKEY eliminates the PRINT command lines in RELEASE version. I use this only for debug purposes. Mark, could you add a feature to switch ON/OFF elimination in TED?   I do use PRINT for debugging too, but I guess someone could use it for their actual game. What about wrapping Print yourself? Strict Function Main:Int() Print "Start" Return 0 End Function Print:Void(str:String) #If CONFIG="debug" monkey.Print str #End End | 
| 
 | ||
| This is the way I do it alread to switch on/off debug printing to a console. But it is no solution if I want to obfuscate all string texts. Comment out all print commands is a possibility, because monkey compiler eliminates such comments. I do not ask for a elimination of PRINT commands, but I want to have a flag in TED's setting window, where the user can decide how to handle he PRINT commands. | 
| 
 | ||
|  if I want to obfuscate all string texts  Why would you want to do that? Say if you use DrawText in your game, you wouldn't want the string to obfuscated!  but I want to have a flag in TED's setting window  TED is just a code editor, Monkey is the place you want to control it and you can with the CONFIG pre-processor. | 
| 
 | ||
| I want to eliminate the PRINT commands, because they say a lot about my code. And if they still are inside an obfuscated script, they still give a hint, what the original variable name was: LicenceCode=LoadText("...
Print "Licence code= " + LicenceCode
So I can create a pre precessor function and and a corresponding flag which could eliminate all lines wih PRINT at the left? Is it such flexible? | 
| 
 | ||
| You can comment all "print(" in the main.js. Example (*nix): sed 's#\(print("\)#// \1#g' main.js > main_noprint.jsClosure will remove commented lines. |