Protection - obfuscating and masking routines <- get
'em while th 2003-12-12 - By Barry Swan
Back Stuff I'm working on. Works for me, although your mileage may vary because they are written for my coding style.
http://www.theburrow.co.uk/d85/obfuscator121203.zip <- 25k
The file contains a random behaviour of mine you can test on - just type
Obfuscate()
And
Maskfunctions()
In the message window. Or for 'fun', try Obfuscate(TRUE) instead. It's 'wacky' :/
To get 'em to work in your own movies, copy the reserved word list and script into your movie, and run the routines. The obfuscate routine DOES NEED TWEAKING - you'll be bloody lucky to have it work straight out of the box. As an example, here's the tags I needed in my FPS game to get it to work:
-- ---- --> IGNORES -- OBFUSCATE ignore 'register' -- OBFUSCATE ignore 'move_cursor' -- OBFUSCATE ignore 'l, o, c, d, r' -- OBFUSCATE ignore 'shaders, p, s, q, v, t, b, l' -- OBFUSCATE ignore 'view, lighting, scenery, effects, filtering, renderformat, detail, brightness, modeldetail' -- OBFUSCATE ignore 'misc, music, target' -- OBFUSCATE ignore 'layout' -- OBFUSCATE ignore 'standard' -- OBFUSCATE ignore 'join, joins, entities, block, blocks, models, root, plan, b_wp, b_sp' -- OBFUSCATE ignore 'north, east, south, west' -- OBFUSCATE ignore 'mml_trigger, t, tn' -- OBFUSCATE ignore 'keys, mouse' -- OBFUSCATE ignore 'up, down, left, right, strafeleft, straferight, jump, fire' -- OBFUSCATE ignore 'leftmousebutton, rightmousebutton, sensitivity' -- OBFUSCATE ignore 'active, on, off'
Basically anything (well, property list-wise) that came from a non-script source (preference file and fields loading data). Now I've tweaked it a bit, it does my entire game in under 30 seconds, so it's quick enough just to have a play with. It's up to you if you do a recompile all scripts afterwards, I'd probably recommend it. For behaviours just make sure you choose to keep current values, and don't reset 'em.
The maskfunction routine should be simple enough to tweak what does or doesn't get masked in each script type, and of course you can set what you want to happen when masked functions are called - I'm using the 'guaranteed crash' line courtesy of our very own Rasmus - cheers, it's good to pick up tips on how to annoy people!
Special thanks to Rasmus and Robert for their input and time while I was covering my security thing.
Shame we still haven't come up with a definitive reserved word list, but my code has routines to make adding new-found ones easy enough.
BACK UP BACK UP BACK UP before you use either - they OVERWRITE YOUR ORIGINAL SCRIPTS - pay careful note especially if you use external scripts!
DO NOT USE MASKFUNCTIONS BEFORE YOU OBFUSCATE. Obfuscate uses some of the features that MaskFunctions covers, so if you DO do it in the wrong order, expect Director to crash.
Any / all feedback / improvements / bug-fixes just let me know - the code is 'freeware' as it goes, 'cos the protection thing is something close to a lot of our heartson this list, be it anti-hack or simple DCR theft-protection.
Barry gerbil@(protected)
__ ____ ____ ____ ____ ____ ____ ____ ____ ____ dirGames-L mailing list - dirGames-L@(protected) http://nuttybar.drama.uga.edu/mailman/listinfo/dirgames-l
Earn $52 per hosting referral at Lunarpages.
|
|