Selection of member types allows to include or exclude from obfuscation the assembly members on the basis of their types. There are several standard configurations of obfuscation being under consideration in this section.
Standalone executable file (.exe file)
If your assembly is a standalone executable file (.exe file), it can be obfuscated with Members.Full option, in this case all the members of the assembly will be obfuscated. The only exception here is the methods, fields and properties which were inherited from external types or implement external interfaces. This is the maximum protection type that can be used for obfuscation of such types of assemblies.
Class library
Two sub-types of assemblies are available here:
Assemblies-components without saving of inheritance.
For such types of the assemblies the user can apply options Members.Default or DefaultImproved, which allow to save public members and their inheritance as well.
Class library with saving of inheritance.
The main problem of Reflection/Serialization is that the members of this assembly are used by name, that is why it is so important to save the members used in Reflection/Serialization. This type of assembly requires saving of the untouched class members used in serialization. For this type of the assembly the user can apply Members.KeepsSerialization option for saving public properties, public types as well as the data of enum type. As the assembly can be of mixed types and/or use one or other tool, .Net provides more flexible options for customization. The user can manually customize Members property or use other Spices.Project tools for including or excluding one or other type of the assembly member.
namespace MyCompany.Mynamespace{ using NineRays.Obfuscator; [NotObfuscate] public class MyClass { }}
namespace MyCompany.Mynamespace{ using NineRays.Obfuscator; [assembly:NotObfuscateMembers("MyCompany.Mynamespace.*")] public class MyClass { }}
namespace MyCompany.Mynamespace{ using NineRays.Obfuscator; [SpecialName("~~")] public class MyClass { } }
namespace MyCompany.Mynamespace { using NineRays.Obfuscator; [assembly:ObfuscateMembers("MyCompany.Mynamespace.*")] public class MyClass { }}
Unlike the products allowing to hide bodies of the methods such as Salamander Protector, Reactor and CodeVeil, which actually substitute the table of RVA- addresses of methods and restore it during assembly loading, as well as insert unsafe/unmanaged assembly initializer or require external initializer, Spices.Obfuscator executes such operations in the assembly. Doing so, Spices. Obfuscator optimizes internal calls, and assembly loading does not require extra optimization, that influences productivity. It should be noted that the assemblies processed by the methods described above have many disadvantages such as: they depend on the runtime version; cannot operate with Compact Framework, Mono runtime; require distribution of external initializers, are not verifiable and cannot be CLSCompliant, are not scalable and transferable (the Net Framework platform itself gives these possibilities) in distinction from the assemblies generated by Spices.Obfuscator.Some antivirus products and systems of assembly safety containing native code can be considered infected and can be prohibited for running, unlike the assemblies generated by Spices.Obfuscator.
9Rays.Net is a technology company that specializes in .NET, VCL, and ActiveX components development. The company was founded in 2001 by merging Imca Systems with Dev4Net, Ariana Soft and several other world-class development teams.Among 9Ray.Net’s products, there is Spices.Net, FlyGrid.Net, FlyTreeView for Asp.NET, and FlyTreeXPro ActiveX. These products are adopted worldwide and consistently receive top ratings and recommendations by respected reviewers. 9Rays.Net is a Microsoft Partner Program member, a Visual Studio Industry Partner (VSIP) and a Borland Technology Partner. For more information about the company, please visit http://www.9rays.net/corporate.aspx Product page link: http://www.9rays.net/products/Spices.Net Direct download link: http://www.9rays.net/products/Spices.Net/download/spices.zip E-mail: [email protected] Company’s website: http://www.9rays.net Postal address: 901 North Pitt Street, Suite 325, Alexandria, VA 22314, USAPhone (toll free): (877) 9RAYSNET / (877) 972-9763Fax: (877) 972-9763