|
Personal Lite
|
Standard
|
Professional
|
Basics |
Supports ActionScript 3 and ActionScript 2 SWF files
Supports ActionScript 3 and ActionScript 2 SWF files
secureSWF supports ActionScript 3 and ActionScript 2 based Flash apps.
|
|
|
|
Opens SWC, AIR, & APK files
SWC, AIR, & APK Files Support
secureSWF can also protect SWC, AIR, and APK files from Flash decompilers and reverse engineering
tools. Everything works out-of-the-box!
|
|
|
|
Editable project configuration files
Editable project configuration files
secureSWF v4 saves project configurations in JSON format that is easy to read and edit.
|
|
|
|
Comprehensive configuration rules
Comprehensive configuration rules
A comprehensive control panel which will override any settings you have elsewhere.
Using configurations rules, you can create any number of rules to override renaming,
code transformation, and optimization settings for any package, class, or class member.
|
|
|
|
Native GUI for Windows, Mac, & Linux
Native GUI for Windows, Mac, & Linux
secureSWF is available for Windows, Mac, and Linux. For each platform, we provide a native binary build
which
uses the platform's GUI kit and standard look-and-feel. The Mac version uses Cocoa, and the Linux
version uses GTK 2.
|
|
|
|
Code Protection |
Control Flow Obfuscation
Control-flow Obfuscation
Adds random branches to the bytecode which will distract decompilers and disassemblers. This method
increases the SWF file size depending on the selected intensity. You can set the intensity between 10%
and 100%; a 10% intensity generates a smaller SWF file while a 100% intensity generates a more secure
SWF file. Our testing results have shown that even a 10% intensity will prevent most decompilers from
generating anything useful.
|
|
|
|
Statement-level Randomization
Statement-level Randomization
Restructures the bytecode which makes up an ActionScript line of code (statement). This makes the code
almost impossible to decompile back into ActionScript. The performance and file size effects of this
method depend on the source code. A block of code that has no branches will become smaller in size and
will execute faster. On the other hand, extra bytecode instructions will be added to handle the branches
which has negligible impact on the performance and file size. Use maximum statement level randomization
for maximum protection, and minimum to get a smaller file.
|
|
|
|
Dynamic Code Wrapping
Dynamic Code Wrapping
Wraps the ActionScript blocks with branches and junk bytes that effectively foils decompilers and
disassemblers. The size and performance impact of this method is negligible. You can set Code Wrapping
to three levels; minimum, medium, and maximum. The degree of code wrapping will determine the size of
the added code. Use maximum code wrapping for maximum protection, and minimum to get a smaller file.
|
|
|
|
Integer Data Obfuscation
Integer Data Obfuscation
Makes integer literals in your code harder to read.
|
|
|
|
Fine tune protection down to each package, class, or method
Fine tune protection per package, class, or method
Because not all code is created equal, secureSWF gives you the ability to fine tune your protection
configuration down to each package, class, or method.
|
|
|
|
Identifiers Renaming |
Aggressive: Renames all identifiers
Aggressive: Renames all identifiers
secureSWF code obfuscation engine can rename everything you have given a name while coding. This includes
all
your packages, classes, and class members. It also includes symbol instances, frame labels, and
textfield variables.
|
|
|
|
Smart: Avoids renaming dynamically accessed properties
Smart: Avoids renaming dynamically accessed properties
This feature helps avoid breaking your code after renaming identifiers. For example, secureSWF can detect
when
calculating an object property name at runtime and avoid renaming that property.
|
|
|
|
Configurable: Fine tune the entire process
Configurable: Fine tune the entire process
Exclude any identifier from being renaming. You can exclude entire packages and a specific class.
In addition to that, you can set how new identifiers names will get generated.
|
|
|
|
Post-build check
Post-build check
To further reduce the risk of breaking the code after renaming, post-build check will exclude any
identifier with a name similar to a string left after renaming. This feature will blindly look into the
protected file strings and try to match any identifier name with any string it can find.
|
|
|
|
Mapping table & incremental obfuscation
Mapping table & incremental obfuscation
Stores a mapping table of old and new identifiers names. This is helpful in two ways; translate error
messages with call stack trace and insure future builds will get renamed in a consistent manner.
|
|
|
|
Integration & Auto-build |
Cross-platform Java-based engine in a single Jar file
Cross-platform Java-based engine in a single Jar file
While secureSWF GUI is a native binary, the engine is a portable Jar file which you can copy to any
platform with Java 1.6 or later.
The engine is contained in a single Jar file. It has a well documented command-line and ANT interfaces
which you can use
directly without requiring the GUI.
|
|
|
|
Fully featured command-line interface
Fully featured command-line interface
Because we built the engine separately from the GUI, all the options available in the GUI are inherently
available in the CLI. The same commands the GUI uses to communicate with the engine are also available
to you to use and are
well documented.
|
|
|
|
Fully featured ANT interface
Fully featured ANT interface
With all the GUI features and command-line attributes available for ANT, you can use secureSWF
exclusively
through ANT.
|
|
|
|
In-Code configuration
In-Code configuration
While coding, annotate your classes, methods, and fields with metadata tags and secureSWF will pick
it up! You can set renaming values, control flow intensity, or dynamic code wrapping settings in
your source code, and they'll be secureSWF's default values.
|
|
|
|
Generate ANT script from GUI
Generate ANT script from GUI
Convert your GUI project into an ANT build script including all your settings alongside all the required
files. The generated build folder will be ready to run.
|
|
|
|
Encryption |
Literal strings encryption
Literal strings encryption
This feature allows you to select literal strings in your ActionScript for encryption. The selected
strings will be encrypted in the SWF file, and they will be decrypted only at runtime. This will prevent
SWF hackers from finding sensitive strings in your application such as passwords or URLs no matter what
kind of tools they use.
|
|
|
|
Encrypted domain lock
Encrypted domain lock
secureSWF helps you protect your Flash applications from illegal redistribution. With this feature,
you can define specific domains for your SWF files to work under. And then, your Flash application
will not load under any other domains.
You will not see your SWF files where you do not expect them to be.
|
|
|
|
AES & RC4 encryption modes
AES & RC4 encryption modes
Choose between two industry standard encryption methods. RC4 is super faster and AES is extra secure.
|
|
|
|
Encrypted loader
Encrypted loader
Encrypted loader will fully encrypt your SWF file, create a loader SWF file using the selected template,
and then place your encrypted file inside the loader to be decrypted at run-time.
It acts as a first line of defense. It also protects all resources (images, graphics, sounds ... etc)
from decompilers. If you have multiple SWF files, then a loader will be generated for each one of
them.
|
|
|
|
Loader designer and templates
Loader designer and templates
The encrypted loader features a sophisticated drag-and-drop designer for the pre-loader with many
templates to choose from.
|
|
|
|
Code Optimization |
Byte Code optimization
Byte Code Optimization
secureSWF optimizes your byte code for size and performance through the following:
- Remove debug information
- Replaces debug line numbers
- Replaces debug file names
- Merges code linkage
- Merges byte code blocks
- Resort the constant pool
|
|
|
|
Class optimization
Encrypted Domain Lock
secureSWF optimizes your classes for performance through the following:
- Finalizes classes
- Finalizes methods
- Makes methods static
- Privatizes fields
- Privatizes methods
- Removes write-only fields
- Replaces constants with their literal values
- Converts read-only fields to constants
- Removes function parameters
|
|
|
|
Instructions optimization
Code Optimization
secureSWF optimizes byte-code instructions for performance through the following:
- Removes trace calls
- Removes dead code
- Optimizes imports
- Optimizes push instructions
- Optimizes integer arithmetics
|
|
|
|
Method inlining
Method inlining
Inlining short and static methods will greatly enhance performance. This feature will replace selected
method calls by their entire code. The dialog for adding methods will only show methods secureSWF will
be able to inline. For a method to appear in the dialing, it has to be declared static and relatively
short.
|
|
|
|
Fine tune optimization per package, class, or method
Fine tune optimization per package, class, or method
Pin point which parts of your code you want to be affected by the optimization options.
|
|
|
|
SWF Optimization |
Super compression
Super compression
Lossless (does not reduce quality) enhanced zip compression for SWF file. It takes longer time to
compress the file but results in an average of 5% file reduction. Decompressing the file when it runs
will not be affected at all.
|
|
|
|
Images lossless optimization
Images lossless optimization
Uses the appropriate image encoding formats to reduce the file size without affecting the image
quality.
|
|
|
|
Shapes & fonts Optimization
Shapes & fonts Optimization
A lossy (reduces quality) method to reduce the size of vector shapes. If the intensity is increased, the
reduced graphics quality can be noticed.
|
|
|
|
Images re-compression
Images re-compression
Will re-compress JPG images using the assigned quality. This will highly reduce the SWF file size.
|
|
|
|
Remove unused assets
Remove unused assets
- Trim Tags: Will remove unneeded data in any SWF tag to reduce file size.
- Trim Shapes Data:
Will remove unneeded data in shapes data bytes to reduce file size.
- Trim Fonts Data:
Will remove unneeded data in fonts data bytes to reduce file size.
- Remove Frame Labels:
Will remove frame labels and replace any access to them in ActionScript 3 by their indices.
- Remove Unused Fonts:
Completely removes fonts and all their data if were not used.
- Remove Unused Images:
Completely removes unused images.
- Remove Unused Shapes:
Completely removes unused shapes and their data.
- Remove Unused Sounds:
Completely removes unused sound data.
- Remove Unused Sprites:
Completely removes unused movie-clips or sprites.
- Remove Unused Videos:
Completely removes unused videos.
|
|
|
|