||Tasks separation, with executing them in separate threads and specifying the priority of the executed tasks. This concept allows developer not to delay "for later" urgent tasks, but launch them and work on next ones, monitoring the execution process in TaskList.
||Spices.Net Obfuscator includes a new module Spices.Localizer mentioned above.
The documents created by Localizer may be used for localization of your applications.
You may just specify the doc file and localization language in LocalizationOptions of each Spices.Project build, so that the application would be localized in the course of obfuscation process.
||Spices.Net Obfuscator now supports Automation. Combined together with Spices.Net Obfuscator Console Edition that is designed to run through script (JS and VBS) and command (CMD and BAT) files, it provides you with direct use of Spices.Project and Spices.Solution objects in your scripting code. With these objects you can access and manage all obfuscation settings and perform obfuscation from scripts. Now the full protection suite includes Spices.Net Obfuscator GUI, Spices.Net Obfuscator Console Edition, and Automation Support Module.
||ObfuscationEvents allows to include execution of different operations in the course of an obfuscation process; the wide set of ObfuscationEvents enables to include in the obfuscation process such tasks as preparation of builds, deployment, writing up or generating necessary files, as well as packaging obfuscated builds.
ObfuscationEvents are supported both in Spices.Project and in Spices.Solution.
|Code Flow Obfuscation
||Spices.Net Obfuscator uses the Spices.CodeAnonymizer technology (U.S. Patent #7,937,693) that scramble IL code so that it becomes completely unreusable after it is decompiled or disassembled.
||Spices.Net Obfuscator verifies generated assembly on PE, Metadata and IL validity.
|Integration with MS Visual Studio 2003 / 2005 / 2008 / 2010 / 2012 / 2013
||Spices.Net may now be integrated with both popular IDEs - MS Visual Studio 2003(v5.4.6 only), 2005, 2008, 2010, 2012, 2013. If two versions of Visual Studio are installed on your PC - no problem with using Spices.Net integration in both IDE.
|Integration with MSBuild platform
||Spices.Net Obfuscator integrates with MSBuild - is the new extensible XML-based build engine that delivers flexibility for the entire range of build scenarios, from single-user basics to complex build-lab scenarios.
|Stub Untouched Methods
||The Spices.CodeAnonymizer technology (U.S. Patent #7,937,693) lets you replace unobfuscated methods with anonymized stubs.
|External references anonymization
||Spices.CodeAnonymizer technology (U.S. Patent #7,937,693) masquerading(anonymize) calls to referenced types, methods and fields.
||This is a new object allowing to load in Spices.Net a collection of Spices.Project objects. It is known that programs are often issued in different configurations and packages. Spices.Solution allows to create various configurations and packages of your programs, and obfuscate them at a time.
|Spices.Net Obfuscator Protects Itself
||All Spices.Net (including Spices.Net Obfuscator) assemblies are protected by Spices.Net Obfuscator. This is how we show our trust to product we built!
|Supports All .Net Framework Implementations
||Spices.Net Obfuscator supports all known .Net Framework implementations (1.0, 1.1, 2.0, 3.5, 4.0, 4.5, 4.5.1, 4.6, Compact Framework, Mono, Portable.Net) and correctly obfuscates mixed code and SQL CLR assemblies.
|Supports All Types of Assemblies and Languages
||Spices.Net Obfuscator supports all types of assemblies - managed (C#, VB.Net, Delphi.Net, Asp.Net), CompactFramework, and mixed code (managed C++) assemblies.
|Support Mixed Assemblies (Managed C++ Assemblies)
||All features provided by Spices.Net Obfuscator are supported for mixed (containing both managed and unmanaged code, managed c++ assemblies) assemblies.
|Strong Incremental Obfuscation
||Spices.Net Obfuscator supports strong incremental obfuscation: even if the structure of an assembly has changed, the names of members are still retained.
||Anti ILDASM feature crashes ILDASM and most of other decompilers on loading a protected assembly. Spices.Net Obfuscator embeds a special attribute to prevent the protected assembly from decompilation by Spices.Decompiler
|Produce tamper resistant assemblies
||The risk with tampering is that strong-name of your assembly can be cracked and resigned by another key.
Assemblies generated by Spices.Net Obfuscator are tamper resistant.
||Spices.Net Obfuscator hides and encrypts strings, and embeds into IL-code as mini-heap a hidden warning saying that this info is extremely hard to extract and disassemble.
There are four modes supported:
Spices.CodeAnonymizer masquerading string decryption calls to protect from decompilers/deobfuscators.
- Hide (hide strings without encryption),
- Encrypt (encrypt strings using internal encryption implementation),
- Enhanced Encryption (encrypt strings using internal encryption implementation and pack encrypted stream with custom effective and fast packing algorithm),
- 3DES (encrypts string using TripleDES algorithm)
||Spices.Net Obfuscator supports cross-obfuscation (all members obfuscated in an assembly will be also obfuscated in all referenced assemblies) - this way is better than linking all assemblies into one, but the protection level is the same. Spices.Net Obfuscator automatically supports friend assemblies (when some internal types of some assembly can be used in marked as friend assembly)
|Customizable Obfuscation Options
||Each assembly included into Spices.Project (.iloprj) has individual obfuscation options providing control over a wide variety of obfuscation features.
||Obfuscation options specify a set of rules (ObfuscationOptions.Members) providing control over excluding/including some types of assembly members. Obfuscation.Members also have a predefined configuration of rules.
Spices.Net Obfuscator supports the attribute-based obfuscation, and provides a source code (C#, VB.Net and Delphi) for obfuscation attributes, such as Obfuscate, NotObfuscate, DontEncryptStrings, SpecialNamespace, SpecialName, NotObfuscateMembers (for batch exclusion from obfuscation, wildcards allowed).
System.Reflection.Obfuscationattribute is completely supported also.
||Spices.Net Obfuscator supports strong name assemblies, and re-signs assembly after obfuscation if a strong name key file is defined.
||Each assembly included into Spices.Project (.iloprj) has individual obfuscation options, so the user can choose one of 9 allowed naming conventions: Numbers, Alphabetical, AlphaNumeric, NonDisplayable, CustomAndNonDisplayable, AlphaNumericAndCustom, AlphaNumericAndNonDisplayableAndCustom, AlphaNumericAndNonDisplayable, CustomDictionary In case of using NonDisplayable dictionary characters ILDASM or other assembly browsers do not correctly display assembly member names).
||Spices.Net Obfuscator uses proprietary ShrinkNames technology that provides generation of shorter names. This technology was improved by DoublePackString technology that significantly decreases the size of string stream in the metadata, and allows to generate smaller assemblies.
|Provides for Exclusion and Substitution Control
||Spices.Net Obfuscator allows to manually include or exclude some assembly member in/from obfuscation by using regular expressions.
|Includes Assembly Compression and Optimization
||Spices.Net Obfuscator decreases the size of metadata (~45%) and optimizes the size of an assembly, which increases the assembly performance.
||Spices.Net Obfuscator creates assemblies that can be further debugged.
|Strips Debug Info
||Spices.Net Obfuscator allows excluding the debug information from an obfuscated assembly.
|Supports Stack Trace Deobfuscation
||Spices.Net Obfuscator provides the stack trace deobfuscation tool. Also we're offering very effective and free replacement of standard StackTrace - SmartStackTrace, that display very detailed information of exception, including real place of exception in your code or IL-code.
||Spices.Net Obfuscator provides the software watermarking feature, and embeds the software watermark into obfuscated assembly in NineRays.Obfuscator.SoftwareWatermark attribute. Your software can easily recognize this attribute, and extract software watermark from the Watermark property of this attribute.
||Spices.Net Obfuscator supports generic types and methods.
||Spices.Net Obfuscator has a standalone console implementation that can be used in the batch/automated building, such as NAnt or Visual Studio Build Events. Console implementation of Spices.Net Obfuscator provides all features of Spices.Net Obfuscator.
|Utilizes Proprietary Assembly Builder
Spices.Net Obfuscator uses proprietary assembly builder that generates assemblies fully compatible with the original assembly format.
No ilasm-ildasm round trip is required- assembly builder handles all the work by itself.
|Utilizes Proprietary Metadata Access Engine
||Spices.Net Obfuscator uses proprietary metadata access engine that allows to work with all known .Net assemblies and modules (.Net 1.0, 1.1, 2.0, CF.Net) generated by C#, managed C++, Vb.Net, J#, C# Builder, Delphi.Net, and does not harm the assemblies structore.