<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Tutorial: Protecting Your Flash Game</title>
	<atom:link href="http://mochiland.com/articles/tutorial-protecting-your-flash-game/feed" rel="self" type="application/rss+xml" />
	<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game</link>
	<description>for(developer in flash_games){ this.mochiland = _root }</description>
	<lastBuildDate>Thu, 11 Mar 2010 16:23:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: charlie</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-75160</link>
		<dc:creator>charlie</dc:creator>
		<pubDate>Sat, 11 Jul 2009 00:07:07 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-75160</guid>
		<description>o.o sorry but you live in copyright prehistory. Free software and Open Source is the way to go now. Share your code to the world, let everybody learn and help improve your work. That feels really good.</description>
		<content:encoded><![CDATA[<p>o.o sorry but you live in copyright prehistory. Free software and Open Source is the way to go now. Share your code to the world, let everybody learn and help improve your work. That feels really good.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SwfShield</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-51960</link>
		<dc:creator>SwfShield</dc:creator>
		<pubDate>Sun, 30 Nov 2008 13:37:45 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-51960</guid>
		<description>You can try SwfShield. It provides a new encryption technology which encrypts the original swf file and embeds it into the other swf file.

This method hides complete swf file (including images, sounds etc) from decompiler.</description>
		<content:encoded><![CDATA[<p>You can try SwfShield. It provides a new encryption technology which encrypts the original swf file and embeds it into the other swf file.</p>
<p>This method hides complete swf file (including images, sounds etc) from decompiler.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bjo</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-47154</link>
		<dc:creator>bjo</dc:creator>
		<pubDate>Tue, 21 Oct 2008 04:11:18 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-47154</guid>
		<description>Flash Obfuscation overview

I spent a lot of time creating a flash app and making the content as secure as possible (within reason).
There is quite alot of junk to wade through to figure out the best options.
I believe Kindisoft&#039;s secureSWF is the best obfuscator at this point.  I&#039;ll get to it later.

I think an important step in protecting a SWF file is flash actionscript obfuscation (sometimes called encryption, although they don&#039;t do encryption)
Since actionscript is run from the source code each time, an unprotected swf can have its actionscript code copied by a Flash decompiler program (such as Trillix or Sothink).  So an obfuscator scrambles (obfuscates) the source code into something that is confusing to humans but functions the same in flash.

Flash obfuscators are relatively new.  Both Kindisoft&#039;s secureSWF and Amayeta&#039;s SWF Encrypt came out in 2005 (As far as I can tell, Amayeta started with version 3.0)  With the addition of Actionscript 3.0 there are many more obfuscators popping up, it&#039;s kinda like the wild west.

I have tried out the 5 obfuscator programs listed below with varying success. 

Kaiyu&#039;s Flash Encryption Genius and Swfprotect.net&#039;s SWF Protect did very little to obfuscate the code.  With the Sothink decompiler I could recover all the actionscript rather easily.  These are not worth it in my opinion.  Ambiera&#039;s irrFuscator works on .as files to rename all it can.  It gives the ability to choose what is renamed.  I didn&#039;t spend much time with it, but it could rival Ameyta&#039;s SWF Encrypt for some uses.  An additional benefit of Ambiera&#039;s irrFuscator is greater certianty that your swf won&#039;t break with later versions of flash, since it works on .as files.

I purchased Amayeta&#039;s SWF Encrypt first.  It does a decent job, mainly &quot;renaming&quot; a lot of actionscript variables.  The resulting actionscript after decompile has many unreadable names.  For my purposes though it didn&#039;t work since you have no control over what gets renamed.  It&#039;s all or nothing.  I needed to call a function from another swf, which is impossible with Amayeta&#039;s SWF Encrypt.

Fortunately Kindisoft&#039;s secureSWF version 3.0 came out in August &#039;08 (which supports actionscript 3.0).  I settled on the standard version for $200 since it does &quot;renaming&quot;.  SecureSWF does renaming and 3 other bytecode techniques.  These 3 other techniques work on the bytecode rather than sourcecode.  These 3 other bytecode techniques make Trillix and Sothink decompilers crash, which is good.
The &quot;personal&quot; edition of secureSWF for $99 does everything the standard version does except renaming.  Since even the personal edition crashes Trillix and Sothink, I&#039;m not sure the ammount of the additional benifit.  For my purposes I thought renaming was important enough for the additional $100.

Flash Actionscript Obfuscators:
Kindisoft&#039;s secureSWF ($99, $200, $400)
Amayeta&#039;s SWF Encrypt ($125) - adequate, simple, few options, mostly renames things
Ambiera&#039;s irrFuscator ($93) - works with .as files - basically renames things, has decent amount of control.
Kaiyu&#039;s Flash Encryption Genius ($99) - very limited obfuscation - not worth it
Swfprotect.net&#039;s SWF Protect ($30) - very limited obfuscation - not worth it

Additional protection used:
I truly encrypted my content swf using an encryption algorithm.  The swf I protected with secureSWF loads and decrypts the encrypted swf. (used loadBytes method: http://code.google.com/p/as3crypto/ )  This was very difficult to do, but worth it in my opinion.

I hope this helps someone else.

BJO</description>
		<content:encoded><![CDATA[<p>Flash Obfuscation overview</p>
<p>I spent a lot of time creating a flash app and making the content as secure as possible (within reason).<br />
There is quite alot of junk to wade through to figure out the best options.<br />
I believe Kindisoft&#8217;s secureSWF is the best obfuscator at this point.  I&#8217;ll get to it later.</p>
<p>I think an important step in protecting a SWF file is flash actionscript obfuscation (sometimes called encryption, although they don&#8217;t do encryption)<br />
Since actionscript is run from the source code each time, an unprotected swf can have its actionscript code copied by a Flash decompiler program (such as Trillix or Sothink).  So an obfuscator scrambles (obfuscates) the source code into something that is confusing to humans but functions the same in flash.</p>
<p>Flash obfuscators are relatively new.  Both Kindisoft&#8217;s secureSWF and Amayeta&#8217;s SWF Encrypt came out in 2005 (As far as I can tell, Amayeta started with version 3.0)  With the addition of Actionscript 3.0 there are many more obfuscators popping up, it&#8217;s kinda like the wild west.</p>
<p>I have tried out the 5 obfuscator programs listed below with varying success. </p>
<p>Kaiyu&#8217;s Flash Encryption Genius and Swfprotect.net&#8217;s SWF Protect did very little to obfuscate the code.  With the Sothink decompiler I could recover all the actionscript rather easily.  These are not worth it in my opinion.  Ambiera&#8217;s irrFuscator works on .as files to rename all it can.  It gives the ability to choose what is renamed.  I didn&#8217;t spend much time with it, but it could rival Ameyta&#8217;s SWF Encrypt for some uses.  An additional benefit of Ambiera&#8217;s irrFuscator is greater certianty that your swf won&#8217;t break with later versions of flash, since it works on .as files.</p>
<p>I purchased Amayeta&#8217;s SWF Encrypt first.  It does a decent job, mainly &#8220;renaming&#8221; a lot of actionscript variables.  The resulting actionscript after decompile has many unreadable names.  For my purposes though it didn&#8217;t work since you have no control over what gets renamed.  It&#8217;s all or nothing.  I needed to call a function from another swf, which is impossible with Amayeta&#8217;s SWF Encrypt.</p>
<p>Fortunately Kindisoft&#8217;s secureSWF version 3.0 came out in August &#8216;08 (which supports actionscript 3.0).  I settled on the standard version for $200 since it does &#8220;renaming&#8221;.  SecureSWF does renaming and 3 other bytecode techniques.  These 3 other techniques work on the bytecode rather than sourcecode.  These 3 other bytecode techniques make Trillix and Sothink decompilers crash, which is good.<br />
The &#8220;personal&#8221; edition of secureSWF for $99 does everything the standard version does except renaming.  Since even the personal edition crashes Trillix and Sothink, I&#8217;m not sure the ammount of the additional benifit.  For my purposes I thought renaming was important enough for the additional $100.</p>
<p>Flash Actionscript Obfuscators:<br />
Kindisoft&#8217;s secureSWF ($99, $200, $400)<br />
Amayeta&#8217;s SWF Encrypt ($125) &#8211; adequate, simple, few options, mostly renames things<br />
Ambiera&#8217;s irrFuscator ($93) &#8211; works with .as files &#8211; basically renames things, has decent amount of control.<br />
Kaiyu&#8217;s Flash Encryption Genius ($99) &#8211; very limited obfuscation &#8211; not worth it<br />
Swfprotect.net&#8217;s SWF Protect ($30) &#8211; very limited obfuscation &#8211; not worth it</p>
<p>Additional protection used:<br />
I truly encrypted my content swf using an encryption algorithm.  The swf I protected with secureSWF loads and decrypts the encrypted swf. (used loadBytes method: <a href="http://code.google.com/p/as3crypto/" rel="nofollow">http://code.google.com/p/as3crypto/</a> )  This was very difficult to do, but worth it in my opinion.</p>
<p>I hope this helps someone else.</p>
<p>BJO</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GameReclaim</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-44791</link>
		<dc:creator>GameReclaim</dc:creator>
		<pubDate>Tue, 07 Oct 2008 14:55:46 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-44791</guid>
		<description>Flash Encryption Genius is a SCAM! Beware! I bought it and the serial number they sent didn&#039;t work. Contacted support (Both the developers and the distributors) No help from them ever came. I lost 100$ to them just like that.</description>
		<content:encoded><![CDATA[<p>Flash Encryption Genius is a SCAM! Beware! I bought it and the serial number they sent didn&#8217;t work. Contacted support (Both the developers and the distributors) No help from them ever came. I lost 100$ to them just like that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SP</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-42981</link>
		<dc:creator>SP</dc:creator>
		<pubDate>Sun, 28 Sep 2008 15:34:31 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-42981</guid>
		<description>Variable name length is not an issue in AS3 any more.</description>
		<content:encoded><![CDATA[<p>Variable name length is not an issue in AS3 any more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Franklyn</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-27984</link>
		<dc:creator>Franklyn</dc:creator>
		<pubDate>Wed, 16 Jul 2008 23:08:30 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-27984</guid>
		<description>You should also specify how to sitelock an swf so that people dont add it to networks without your permission , this can be useful if you&#039;re working with sponsors.</description>
		<content:encoded><![CDATA[<p>You should also specify how to sitelock an swf so that people dont add it to networks without your permission , this can be useful if you&#8217;re working with sponsors.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adamscott</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-23974</link>
		<dc:creator>adamscott</dc:creator>
		<pubDate>Thu, 03 Jul 2008 13:43:40 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-23974</guid>
		<description>You forgot to mention secureSWF (www.kindisoft.com) I find it to be the best SWF protector out there!</description>
		<content:encoded><![CDATA[<p>You forgot to mention secureSWF (www.kindisoft.com) I find it to be the best SWF protector out there!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: voidSkipper</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-23329</link>
		<dc:creator>voidSkipper</dc:creator>
		<pubDate>Tue, 01 Jul 2008 00:51:54 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-23329</guid>
		<description>Don&#039;t be too aggressive when asking for removal too - one company was quite happy to compensate me the price of a full non-exclusive when I contacted them asking them to remove their ad-stripped copy of Insurgo. If I had&#039;ve come in cursing and threatening legal action, it may have been a lot harder to resolve.</description>
		<content:encoded><![CDATA[<p>Don&#8217;t be too aggressive when asking for removal too &#8211; one company was quite happy to compensate me the price of a full non-exclusive when I contacted them asking them to remove their ad-stripped copy of Insurgo. If I had&#8217;ve come in cursing and threatening legal action, it may have been a lot harder to resolve.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Badim</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-23316</link>
		<dc:creator>Badim</dc:creator>
		<pubDate>Mon, 30 Jun 2008 22:35:52 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-23316</guid>
		<description>Careful with variables names.
better use simple names, with just 1-2 letters. especially for variables in loops etc.
since in flash - less name got variable - then faster it proceed.</description>
		<content:encoded><![CDATA[<p>Careful with variables names.<br />
better use simple names, with just 1-2 letters. especially for variables in loops etc.<br />
since in flash &#8211; less name got variable &#8211; then faster it proceed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesper</title>
		<link>http://mochiland.com/articles/tutorial-protecting-your-flash-game/comment-page-1#comment-23283</link>
		<dc:creator>Jesper</dc:creator>
		<pubDate>Mon, 30 Jun 2008 20:36:02 +0000</pubDate>
		<guid isPermaLink="false">http://mochiland.com/?p=373#comment-23283</guid>
		<description>I find that protecting from import is almost pointless since it&#039;s the easiest thing to bypass. Note, I do think you should do it still, since it will stop some people from using it.

And since it&#039;s an interpreter language, any encrypting can be bypassed.

The very best thing you can do is to obfuscate the code, meaning making it unreadable, or hard to read/understand.

I haven&#039;t tried Flash Genius, but SWF Encrypt does more than just encrypt it, it has excellent obfuscation, which I think should have been mentioned. At the same time it protects and encrypts it so most flash decompilers can&#039;t handle it.

But the best part is the obfuscation. There is no way around obfuscation and it can make the code really hard to understand.

I tried out a few other pure obfuscation tools, but they all were no good and often even made the program not work anymore.

Another thing to remember to do is to split up any strings in your code. So instead of something like name = &quot;mochi&quot;;, you can write name = &quot;m&quot;; name += &quot;o&quot;; name += &quot;c&quot;; name += &quot;h&quot;; name += &quot;i&quot;; That will make the obfuscation better, and especially for site locking, where you have your url as a string, this is a good idea.</description>
		<content:encoded><![CDATA[<p>I find that protecting from import is almost pointless since it&#8217;s the easiest thing to bypass. Note, I do think you should do it still, since it will stop some people from using it.</p>
<p>And since it&#8217;s an interpreter language, any encrypting can be bypassed.</p>
<p>The very best thing you can do is to obfuscate the code, meaning making it unreadable, or hard to read/understand.</p>
<p>I haven&#8217;t tried Flash Genius, but SWF Encrypt does more than just encrypt it, it has excellent obfuscation, which I think should have been mentioned. At the same time it protects and encrypts it so most flash decompilers can&#8217;t handle it.</p>
<p>But the best part is the obfuscation. There is no way around obfuscation and it can make the code really hard to understand.</p>
<p>I tried out a few other pure obfuscation tools, but they all were no good and often even made the program not work anymore.</p>
<p>Another thing to remember to do is to split up any strings in your code. So instead of something like name = &#8220;mochi&#8221;;, you can write name = &#8220;m&#8221;; name += &#8220;o&#8221;; name += &#8220;c&#8221;; name += &#8220;h&#8221;; name += &#8220;i&#8221;; That will make the obfuscation better, and especially for site locking, where you have your url as a string, this is a good idea.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
