> 2006/5/7, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> Is there any good way or method for obfuscation a Flash file so that
> swf works fine after obfuscation and also prevent any one to
> understand the code easily . Few common softwares for obfuscation are
> just not that good as swf stops working after using them . Of if not
> obfuscation is there any other method to prevent swf to be decompiled
> to fla . help will be really appreciate .
>
> Thx
>
> Max

My understanding is that encryption is unreliable - since the player has to be 
able to decrypt it anyway, and the swf format is known - so any trick that 
fools the decompiler is vulnerable to being corrected in the next release of 
the decompiler

I've written a home grown obfuscator of sorts (for AS2). It's a bit slow and 
clunky - and not AS3 compatible - but does what I need. (It can parse AS2 
source code for variable and functions names using VB, and then obfuscate the 
byte code using FLASM.)

> Few common softwares for obfuscation are  just not that good as swf stops 
> working after using them .

depending on coding style, you need to avoid changing names of variables that 
correspond to other constants (eg names of nodes in an XML file that are 
matched in your code - won't match if you rename the coded version)

Also array syntax (AS2) that does things like ["prop" + x]  - don't want to 
rename prop0, prop1 etc elsewhere

So you typically need some sort of exclusion list. I don't know that you can 
ask the software to reliably work out which variables must be excluded in some 
of these contexts.

(In some cases I could observe if functionality was impaired and look in that 
region of code for array syntax etc.)

I had a look at ASO lite a while ago and at the time it took the approach of 
not renaming any functions or classes - just simple variables, and it also 
allows a custom exclusion list.

I was naïve enough to try my own (using Flasm and VB) that also did function 
names etc.

The current ASO version now seems to rename functions and class names etc 
(still allowing a custom exclusion list).

Its pretty fast - but I've had your issue - my code stops working and I can't 
work out which additional variables to exclude. For example it seemed to kill 
the V2 mx components - and it was finding thousands of variables from those 
components.

It seemed to me that I only wanted to obfuscate my own code (eg I don't mind if 
people decompile the mx components etc).

So I revisited the one I'd tinkered with. Its slow - uses VBA and Flasm. (I 
tested it as compiled VB6 and almost identical speed. VBA allows me to use 
Excel for data storage.

I now get it to parse my AS2 files first and locate all of the variables and 
functions names I have introduced. (I don't get it to scan the mx source files 
so it will leave them in swf).

I do have a list of excluded native functions - onRollOver etc.

Anyway, then VBA uses FLASM to search for those variables in the byte code (flm 
file). (not all of them make it into the byte code)

Then, when there is a common list (my variables / functions / class names that 
do appear in the swf - it does text a text / replace with an "illegal" name - 
eg an integer  - which works at byte code level, but not if decompiled).

This is all horribly slow (10 minutes - for say 75 classes - 400 k of AS2 files 
- 200 k of swf - 2 MB  flm file - on slowish machine)

Not sure it would qualify as a "good solution" for other contexts

But it does work well for my AS2 based development and I have full control over 
obfuscation and I know it works.

 I don't know what method ASO uses though I saw on the Flasm website that one 
of ASO's people helped them optimise Flasm - so maybe a similar (more 
optimised) approach. Was too aggressive for me though - couldn't get it to work.

Any interest in this?

Cheers

Rob

Important - This email and any attachments may be confidential. If received in 
error, please contact us and delete all copies. Before opening or using 
attachments check them for viruses and defects. Regardless of any loss, damage 
or consequence, whether caused by the negligence of the sender or not, 
resulting directly or indirectly from the use of any attached files our 
liability is limited to resupplying any affected attachments. Any 
representations or opinions expressed are those of the individual sender, and 
not necessarily those of the Department of Education.
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to