|
Feature |
Description |
| Multiple languages decompilation/disassembling |
Spices.Decompiler generates well-formed and optimized code for 6 languages:
MSIL, C#, VB.Net, Delphi.Net, J# and managed C++ |
| Well-formed and optimized code |
Spices.Decompiler generates well-formed code with syntax highlighting,
indenting, folding (outlining) and active hints support |
| Own metadata access engine |
Spices.Decompiler uses own metadata access engine, that not crashes on
incorrect MSIL |
| Visual Decompiler |
Visual Decompiler is one of the key Spices.Net novelties. Now the user may
build a code flow diagram enabling to analyze the code execution. |
| All types of .Net assemblies |
Spices.Decompiler correctly decompiles all types of assemblies - managed (C#,
VB.Net, Delphi.Net), CompactFramework and mixed code(managed c++) assemblies. |
| Any scope of decompilation/diassembling |
You can choose any scope for decompilation in the assembly browser |
| .Net 2.0 support |
Spices.Decompiler supports .Net 2.0 assemblies format, generics, new MSIL
instructions etc. |
| Output directions |
Spices.Decompiler can generate code for displaying in the Spices.Net syntaxhighlihted
editor or output to files (with classes separation to namespaces or class
names). |
| Multiple selection decompilation |
User can choose multiple selection of members for decompilation. |
| Whole assembly decompilation |
Whole assembly decompilation with resources and assembly information
extraction is possible. |
| Optimizations/refactoring |
Spices.Decompiler can produce unoptimized(raw) code or optimized(refactored)
code. Wide range of code optimization/refactoring procedures is constantly
renewed. |
| Active hints |
Code generated and displayed in the Spices.Net is live - user can receive
detailed info about member at mouse cursor and go to this member in the
assembly browser. |
| Code outlining/folding |
Code golding/outlining is supported on all languages. |
| Supports all modifiers |
Spices.Decompiler supports all modifiers. |
| Supports all keywords |
Spices.Decompiler supports all keywords. |
| Complex Nested statements |
Spices.Decompiler recognizes complex statements such as iteration (for,
while, foreach), condition (if, else if, if-else if-else) and switch
statements. |
| Variables arrangement |
Spices.Decompiler arranges variables at their scope of usage. |
| Variable names extraction |
Spices.Decompiler extracts variable names from .PDB files (if avaialble). |
| COM/Interop/Unmanaged code |
Spices.Decompiler fully decompiles COM/Interop/Unmanaged code. |
| Unsafe code, pointers |
Spices.Decompiler marks as unsafe code with pointers. |
| Custom attributes |
Spices.Decompiler extracts all custom attributes information. |
| Method overloading, interface implementation, overriding recognition |
Spices.Decompiler recognizes method overloading, interface implementation,
overriding. |
| Generics support |
Spices.Decompiler supports generics. |
| IDE's integration |
Spices.Decompiler fully integrates into Spices.Net and Visual Studio
as part of Spices.VSIP.Net (Visual Studio Integration Package). |
|
and more... |
|
Feature |
Description |
| Multi Tasking |
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.
|
| Localization |
Spices.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.
|
| Automation |
Spices.Obfuscator now supports Automation. Combined together with Spices.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.Obfuscator GUI, Spices.Obfuscator Console Edition, and Automation Support Module.
|
| Obfuscation Events |
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.Obfuscator uses patent pending Spices.CodeAnonymizer technology that
scramble IL code so that it becomes completely unreusable after it is
decompiled or disassembled.
|
| Assembly Verification |
Spices.Obfuscator verifies generated assembly on PE, Metadata and IL
validity.
|
| Integration with VS2003 and VS2005 |
Spices.Net may now be integrated with both popular IDEs - MS Visual Studio 2003
and MS Visual Studio 2005. If two versions of Visual Studio are installed on
your PC - no problem in using Spices.Net integration in both IDE.
|
| Integration with MSBuild platform |
Spices.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 |
New Spices.CodeAnonymizer technology lets you replace unobfuscated methods with
anonymized stubs. |
| External references anonymization
|
Spices.CodeAnonymizer technology masquerading(anonymize) calls to referenced types,
methods and fields.
|
| Spices.Solution |
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.Obfuscator Protects Itself |
All Spices.Net (including Spices.Obfuscator) assemblies are protected by
Spices.Obfuscator. This is how we show our trust to product we built! |
| Supports All .Net Framework Implementations |
Spices.Obfuscator supports all known .Net Framework implementations (1.0,
1.1, 2.0, Compact Framework, Mono, Portable.Net) |
| Supports All Types of Assemblies and Languages |
Spices.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.Obfuscator are supported for mixed
(containing both managed and unmanaged code, managed c++ assemblies)
assemblies. |
|
Strong Incremental Obfuscation |
Spices.Obfuscator supports strong incremental obfuscation: even if the
structure of an assembly has changed, the names of members are still retained. |
|
AntiILDASM |
Anti ILDASM feature crashes ILDASM and most of other decompilers on
loading a protected assembly. Spices.Obfuscator embeds the NotDecompile attribute
to prevent the protected assembly from decompilation by Spices.Decompiler |
| Produce tamper-proof assemblies |
The risk with tampering is that strong-name of your assembly can be cracked and resigned by another key.
Assemblies generated by Spices.Obfuscator is tamper resistant.
|
|
String Encryption |
Spices.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:
- 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.CodeAnonymizer masquerading string decryption calls to
protect from decompilers/deobfuscators. |
| Cross Assembly Obfuscation |
Spices.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.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 Rules |
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. |
|
Declarative Obfuscation |
Spices.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). |
|
Strong Naming |
Spices.Obfuscator supports strong name assemblies, and re-signs assembly
after obfuscation if a strong name key file is defined. |
|
Naming Conventions |
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).
|
|
Overloaded Renaming |
Spices.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.Obfuscator allows to manually include or exclude some assembly member
in/from obfuscation by using regular expressions. |
| Includes Assembly Compression and Optimization |
Spices.Obfuscator decreases the size of metadata (~45%) and optimizes the
size of an assembly, which increases the assembly performance. |
|
Debugging Support |
Spices.Obfuscator creates assemblies that can be further debugged. |
| Strips Debug Info |
Spices.Obfuscator allows excluding the debug information from an obfuscated
assembly. |
| Supports Stack Trace Deobfuscation |
Spices.Obfuscator provides the stack trace deobfuscation tool. |
|
Software Watermarking |
Spices.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. |
|
Generics Support |
Spices.Obfuscator supports generic types and methods. |
|
Console Interface |
Spices.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.Obfuscator provides all features of
Spices.Obfuscator. |
| Utilizes Proprietary Assembly Builder |
Spices.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.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. |
|
Full IDE Integration |
Spices.Obfuscator is integrated into Spices.Net and Visual Studio as a
part of Spices.VSIP.Net (Visual Studio Integration Package). |
|
Feature |
Description |
| Pure GUI |
Pure GUI provided by Spices.Documenter allows you to browse/navigate your
code documentation, mark or simply add to bookmarks or simply add to bookmarks
some topics.
Smart code completion, that you can fill with your own code documentation tags
helps you to conveniently edit documentation.
Wide range of services provided by Spices.Documenter help you fill, format,
link to another topics and format documentation
|
| Documentation management externally from your source code |
Spices.Documenter provides more convenient way of code documentation
management - externally from your source code. Now you or your tech writers can
create, synchronize and manage code documentation referencing to your compiled
assemblies. |
| Import existing documentation, extract descriptions from metadata |
In the process of documentation creation Spices.Documenter imports existing
xmldoc documentation and extracts descriptions of assembly members from their
Description attributes. |
| All documentation in one file |
Spices.Documenter can store all documentation to the multiple assemblies in
one file, that simplifies code documentation management. |
| Compatibility |
Spices.Documenter .nrdoc format is compatible to use with xmldoc include
tags to include portions of documentation in the another documentation.
Spices.Documenter allows to use NDoc specific tags and exports
documentation to XmlDoc(slashdoc) and NDoc compatible format.
|
| Topics exclusion |
Spices.Documenter allows topics exclusion from export/documentation generation
|
| Documentation synchronization |
Spices.Documenter provides services for documentation synchronization with the
latest versions of assemblies connected to documentation. New/changed topics
marks as TODO topics for more convenient searching of new topics.
|
| Process of documentation creation is easier than you think! |
It is enough to load assembly for documentation creation and click
Tools->Documenter->Generate NRDoc for entire project to create prefilled
documentation. |
|
Future plans |
| Documentation builds |
In the near future Spices.Documenter will builds code documentation to the
HTMLHelp and HTMLHelp2 formats. |
| Managing of mixed documentation |
In the near future Spices.Documenter can handle mixed documentation, that
contains not only assembly members related topics.
Spices.Documenter will provide custom topics editing and topics previewing,
custom page templates and Table of Contents (TOC) management.
|
| Documentation filters |
In the near future Spices.Documenter will provide filtering features to filter
topics.
|
|
and more... |