Skip to content

irrFuscator for SWF

Features

irrFuscator protects the ActionScript 3 source code of SWF and AIR applications by replacing symbols with obfuscated names. This is necessary for a lot of developers because their code gets reverse engineered and stolen above-average often in the flash area.

Two modes of obfuscation

irrFuscator is able to obfuscate:

  • Source files, like .as or .mxml files
  • Binary .swf files, flash files which are already compiled

In this way, you have full control how and when you want your code to be obfuscated and have to possibility to integrate irrFuscator into your tool chain, be it based on the Flex compiler, the Flash Editor, FlexBuilder or FlexDevelop. The source obfuscation mode is also quite useful when Flex developers need to send the uncompiled source code to a untrusted third party. That’s also why irrfuscator has a built-in whitspace and comment removal system.

Sophisticated Options

irrFuscator supports a lot of features like:

  • Deterministic / Indeterministic obfuscation
  • Encryption of strings
  • Support for SWC files
  • Ignoring full packages
  • Ignore symbol lists
  • Automatic backup file creation
  • Copying of image and other media files
  • Comment Directives

irrFuscator is also able to reduce the file size of your SWF files by using a higher compression rate and the reduction of symbol name lengths.

Flex and Flash Support

irrFuscator also supports source obfuscation of .mxml and .as files. The following Flex versions are supported:

  • Flex 1.0
  • Flex 1.5
  • Flex 2.0
  • Flex 3.0
  • Flex 4.0

irrFuscator also supports future Flex versions which can be simply added using the .SWC support mechanism.

Obfuscation Example

The following code demonstrates what irrfuscator does when obfuscating a source code project. The file MapResourceManager.as contains some plain AS3 code:

Before Source Obfuscation

After Source Obfuscation

import flash.utils.ByteArray;

// a resource manager specialized for maps
public class MapResourceManager
extends ResourceManager
{
public static function
canLoadResWithIndex(idx:int):Boolean
{
// if the resource is null, it cannot load
return getResFromIndex(idx) != null;
}

public static function
loadResString(idx:int):String
{
var cl:Class = getResFromIndex(idx);
if (!cl)
return "error";

// convert the data into a text string with
// 'end' suffix.

var data:ByteArray =
new cl as ByteArray;

return data.toString() +
"end.";
}
} // end class
import flash.utils.ByteArray;

public class _wm3952
extends _lc4996
{
public static function
_fi5847(_vr345:int):Boolean
{
return _ya7618(_vr345) != null;
}

public static function
_dm6121(_vr345:int):String
{
var _zu342:Class = _ya7618(_vr345);
if (!_zu342)
return irrcrpt(87, "kzrd");

var _lw654:ByteArray =
new _zu342 as ByteArray;

return _lw654.toString() +
irrcrpt(23, "uzd.");
}
}

Download Trial

irrFuscator has Windows and Mac two versioans, please go to download page for a trial:
Download Free Trial | Buy Online