-
My Flash protection tool
Protect the Flash is a returning subject and I spent some time this evening to think.. a _root._url can be quite easy to search and remove/replace. Another way to write it more confusing can be (url becomes _root._url):
var a = 'ao[HAr7ltEc:_eCdu4h'.split('');
var url = this[a[12]+a[5]+a[1]+a[1]+a[8]][a[12]+a[16]+a[5]+a[7]];
if (url not match in someway) do_bug;
And use it at several places to do small bugs which is hard to find. To make it more complex you could test single characters at different places. I did a test tool:
http://www.onemotion.com/flashprotector/
kind regards
Tomas Eriksson
-
Basically you are suggesting to obfuscate the strings/names in the code. You could do it with some tools too, for example:
http://www.genable.com/aso/
-
I read about obfuscating of local variables/functions etc before but how do you let a program obfuscate a global variable like _root._url (or any standard function) without getting general bad performance with all code?
-
Well, I havent bothered with obfuscation myself as I think its not worth the trouble. As I replied in the "Heli attack" thread changing the code is too easy. For example if you have some function to detect stolen swf then it can be changed or commented out like this:
//if (url not match in someway) do_bug;
-
Possibility is a better word than trouble ;-)
My idea was something like you place bugs like these, which is harder to find because its harder to understand what it does and there is no obvious _root._url call. Of course it can be tricky to hard code final-url-tests but it could be automated with a script or so on the class-file for example.
var a='_7tulrhGAeLd=Coac'.split('');var b=this[a[0]+a[5]+a[14]+a[14]+a[2]][a[0]+a[3]+a[5]+a[4]];if(b[a[16]+a[6]+a[15]+a[5]+a[13]+a[14]+a[11]+a[9]+a[8]+a[2]](0)+2819!=2923) sprite._visible = false;