Code control flow obfuscation can now be controlled down to a type/method level
Added a configuration setting to lower an obfuscation process priority
Eazfuscator.NET now runs on ARM64 machines natively without triggering x86 emulation (Windows 11+ ARM64, NET Framework 4.8.1+)
Changed system requirements: Windows 8.1+, Windows Server 2012 R2+
Improved .NET 7.0 support
Improved assembly merging
Improved assembly embedding
Improved NuGet integration
Improved metadata removal
Improved support of various serialization scenarios
Improved documentation
Fixed issue that could lead to "Unable to retrieve custom attributes container for XXX" error during obfuscation"
Fixed issue that could lead to "Method not found" error during obfuscation of a Unity project
Fixed issue that could lead to "The given assembly name or codebase was invalid" error when running an obfuscated application
Fixed issue that could lead to "Illegal characters in path" error during obfuscation
Fixed issue that could lead to "Dependencies deduction failed" error during obfuscation of a project that referenced "GitVersion.MsBuild" package
Fixed issue that could lead to "Identifier is not CLS-compliant" SGEN error during compilation
Fixed issue that could lead to "Property has related method belonging to another type" error during obfuscation when code inlining directive was used on a property accessor
Fixed issue that could lead to "The given key was not present in the dictionary" error during assembly merging under specific circumstances
Extended the list of code constructs supported by homomorphic encryption
Added the ability to fine-tune the inclusion of assemblies targeted by assembly mask syntax in assembly merging and embedding directives
Improved Xamarin support
Improved JSON serialization support
Improved XML serialization support
Improved reflection analysis for LINQ expressions
Improved serialization support of nullable value types
Fixed issue with method inlining that could occur when the method was called from virtualized code
Fixed issue with default interface implementation which could lead to an error during obfuscation
Fixed issue that could lead to "Method not found: 'System.ReadOnlySpan`1<Char> Microsoft.IO.Path.GetFileName(System.ReadOnlySpan`1<Char>)'" error during obfuscation when Visual Studio 17.3.0+ was installed
Fixed regression that might cause a package definition file be out of sync when obfuscating VSIX projects
Fixed issue that could lead to an obfuscation error when project targeted a platform on ARM processor
Fixed issue with resolving of System.ValueTuple out-of-band reference assembly for .NET Framework targets
Fixed issue that could lead to "Invalid metadata for attribute" error during obfuscation of WPF applications targeting .NET Core or .NET 5.0+
Fixed issue that caused an obfuscation error when the project had dependencies on Microsoft.Build.* assemblies
Fixed issue that could lead to "The filename or extension is too long" obfuscation error when merging feature was used
Improved handling of the code produced by Roslyn v16.6+ compilers
Improved documentation
Fixed issue with serialization of security permissions of .NET Standard assemblies
Fixed issue with dependency manifest (.deps.json) remastering that could occur when dereferenced assembly name did not correspond to a NuGet package name
Fixed issue with dependency manifest (.deps.json) remastering that could occur when dereferenced package was a dependency of another dereferenced package
Fixed issue that could lead to 'Type must be a type provided by the runtime.' error during obfuscation
Fixed VM issue that could lead to 'An attempt was made to load a program with an incorrect format' error during obfuscation
Fixed issue in Eazfuscator.NET SDK for Java that prevented it from working with Java 11+
Data virtualization now supports System.TimeSpan and enum types
Automatic assembly dependency manifest (.deps.json) remastering for .NET Standard and .NET Core targets
Code completion for Eazfuscator.NET properties in MSBuild project files
Extended key material extraction for predicates containing 'and' boolean operators in homomorphically encrypted regions of code
Changed system requirements: Windows 7 SP1+, .NET Framework 4.7.2+
Improved .NET Core 3.0 and 3.1 support
Improved .NET Standard 2.1 support
Improved Entity Framework Core support
Improved Visual Studio integration
Improved reflection analysis of dynamic expressions
Improved obfuscation coverage of compiler generated attributes
Fixed issue with Eazfuscator.NET console encoding
Fixed race condition that could occur on concurrent launches of an obfuscated app that used assembly embedding with [load-from-file] flag
Fixed issue that could lead to 'Unsupported type argument in custom attribute signature' error during obfuscation of .NET Core 3.0+ and .NET Standard 2.1+ assemblies
Fixed issue that could lead to a slow unbounded memory growth in the long-running multi-threaded virtualized code under specific conditions
Added ability to suppress Eazfuscator.NET warnings at class and member levels
New date-based version numbering system for Eazfuscator.NET starting with 2018.x for all releases in 2018
Significantly improved .NET Core support
Significantly improved .NET Standard support
Improved data virtualization
Improved Entity Framework Core support
Improved obfuscation coverage of code produced by CCRewrite tool from Code Contracts toolkit
Fixed issue in assembly merger that could lead to unverifiable code generation
Fixed issue with NuGet and .NET Core that could lead to assembly resolution conflicts
Fixed issue with long P/Invoke DLL imports
Fixed obfuscation issue that could occur when .NET Core assembly referenced System.ValueTuple type
Fixed issue with assembly signing when AssemblyKeyFileAttribute is specified in the source code
but MSBuild project parameters dictate that assembly should not be signed
Fixed issue with signature lookup of methods when they contained System.TypedReference arguments
Fixed issue with signature lookup of overloaded methods when they contained arguments of pointer types
Fixed issue that could lead to StackOverflowException during obfuscation of custom attributes with large byte array parameters
Fixed VM issue with exception finally blocks in code generated by Roslyn compilers
Fixed VM issue that could lead to endless loop on exception rethrow
Fixed issue with obfuscation of custom attribute initializers when they had an object argument which took a System.Type value
Fixed issue with Windows Runtime Component type mappings
Fixed "The process cannot access the file because it is being used by another process" issue that could occur during obfuscation of some Unity assemblies
Fixed issue that could lead to "Unable to load System.ValueTuple assembly" error during obfuscation
Automatic authenticode signing of obfuscated ClickOnce assemblies when corresponding certificate is specified in Visual Studio project settings
Preliminary support for Visual Studio "15" Preview
Improved Visual Studio integration
Improved compatibility with .NET Native
Improved LINQ to SQL support
Improved reflection analysis for LINQ expressions
Fixed issue with lost calling convention of calli instruction's operand
Fixed issue that occurred when trying to obfuscate UWP assemblies with a NuGet reference to Microsoft.NETCore.UniversalWindowsPlatform 5.2.2 package
Fixed issue that could lead to endless loop during analysis of IL code
Fixed issue that could lead to exception during obfuscation related to serialization of assembly custom attributes in .netmodule files
Fixed issue in Visual Studio extension that could lead to error dialogs in Visual Studio 2015 versions prior to Update 1
Fixed issue with ClickOnce manifests and timestamp server URL which might not be considered during obfuscation
Fixed issue with NuGet package assemblies resolution
Fixed issue that could lead to exception "A numeric comparison was attempted on
A.B that evaluates to X.Y instead of a number" during obfuscation.
The issue was caused by MSBuild integration subsystem of Eazfuscator.NET and
manifested itself with UWP and PCL projects when Visual Studio 2015 Update 3
was installed on developer machine
Visual Studio 2015 RC support.
Please note that if you plan to use Visual Studio 2015 RC or higher for production purposes then Eazfuscator.NET version 4.9 or higher is the requirement.
More info on Roslyn compilers and obfuscation
.NET Framework 4.6 preliminary support
Improved obfuscation coverage of enums
Improved virtualized code execution performance
Improved MSBuild integration
Fixed XAML issue with attached properties in the left side of assignment statements that include markup extensions on the right side
Fixed XAML issue with properties represented by GetXXX and SetXXX methods
Fixed XAML issue with null collections
Fixed VM issue with ref arguments of System.Object type
Fixed VM issue with ref arguments of nullable value types
Fixed VM issue with type-constrained virtual calls
Fixed issue with methods that implement IDispatch/Dual COM interfaces
Fixed race condition in PDB file processing pipeline
Fixed issue with PDB files generated by Roslyn compilers
Fixed issues with --configuration-file command line option
Public API surface is automatically shrunk when design-time usage protection is on
Improved Entity Framework support
Improved XML serialization support
Improved obfuscation coverage of imported COM types
Improved obfuscation coverage of web service proxy classes
Improved size efficiency of symbol names encryption
Improved debugging support
Improved documentation
Fixed issue that could lead to "Invalid PE file" error during obfuscation
Fixed BAML serialization issue with x:Shared property of resource dictionary item
Fixed type loading issue during XAML obfuscation that could occur for generic types specialized by WinRT types
Fixed issue that might lead to packaging of an unobfuscated .exe assembly into ClickOnce package when build was performed with Visual Studio 2013 Update 4 or higher
Fixed issue with custom publisher name in resigned ClickOnce manifests
Fixed assembly merging issue for .NET 4.5.1 + Windows 8.1 portable class libraries
Fixed issue with interface implementations in Windows Runtime Component assemblies that could lead to System.MissingMethodException
Fixed issue with conditional obfuscation diagnostics that occurred when Exclude property of ObfuscationAttribute had true value
Added has_attribute function for conditional obfuscation
Improved support for XAML and web services on WinRT platform
Improved support for JSON serializers
Improved filtering of XML documentation generated by F# compiler
Improved pruning of .NET metadata
Removed dependency on ILMerge tool for assembly merging
Fixed issues with implicit interface mapping
Fixed issue with equivalence of imported COM types
Fixed support for newer versions of Microsoft.Bcl and Microsoft.Bcl.Async NuGet packages when build machine has .NET 4.5 installed and project targets .NET 4.0
Fixed obfuscation hang for some applications when debug renaming feature was active
Fixed handling of ObfuscateAssembly attribute for Silverlight
Fixed assembly merging for WinRT
Fixed assembly merging issue when unverifiable code was produced for external field references flavored by volatile modifiers
Fixed XAML issues with forwarded types
Fixed XAML issues with generics
Fixed XAML issue with custom resource markup extension
Fixed XAML XBF issues for Windows 8.1 Store Apps
Fixed VM issue with call instruction for instance method when this pointer is null
Fixed issue with signature lookup of generic methods when they contain several generic parameters. The issue occurred for assemblies processed by PostSharp
Fixed XAML issue with attached properties defined in internal classes
Fixed XAML issues with data binding
Fixed VM issue with COM types casting
Fixed VM issue with implicit operators of nullable types
Fixed VM concurrency issue with calls to methods of System.Threading.Interlocked type
Fixed Eazfuscator.NET Assistant UI issues for DPI resolutions other than 96
Better metadata and code optimization. Added new hot spot optimizers
Improved XML serialization support
Fixed rare 'Ambiguous match found' issue
Fixed issue with evaluation message which can be unexpectedly shown during uninstall
Fixed issue with overloaded methods in VM
Fixed reflection issues when input assembly uses the assemblies with the same identities which are used by Eazfuscator.NET
Fixed issue in LINQ to SQL renaming
Fixed issue with method signature lookup during obfuscation and VM runtime for types with specifiers
Fixed licensing issue when Eazfuscator.NET is run from SYSTEM account by a build server
Fixed rare issue when virtualization produced unverifiable code for some methods
Fixed issue with interop array marshalling
Fixed issue with ildasm crash for some .NET 2.0/3.5 assemblies
Fixed rare issue with method renaming for classes inherited from MarshalByRefObject
Fixed minor issue with optimizer which can rarely lead to unverifiable code generation
Fixed issue with updater which can unexpectedly run during install and uninstall
Fixed issue with custom attributes' named properties and fields of array type
Fixed issue with custom configuration sections and custom attributes
Fixed overload method lookup issue when argument is a generic parameter of declaring type, and declaring type has large number of generic parameters
Fixed optimizer issue when obfuscation fails on some code statements with a message 'Index was out of range. Must be non-negative and less than the size of the collection.'
Fixed rare issue with generic method signatures during code injection
Fixed certification issues for WinRT applications
Fixed support of extension SDKs for WinRT applications
Fixed compatibility issue when trying to merge .NET 4.0 assemblies on a machine with installed .NET 4.5
Fixed certification issues for WinRT class libraries
Fixed obfuscation support for WinRT components
Fixed VM issue with array access
Fixed VM issue with Windows XNA applications
Fixed VM issue with array creation when length argument is UInt32
Fixed VM issue with dynamically loaded assemblies
Fixed VM issue with .NET framework retargeting
Fixed analysis for merged assemblies
Fixed WinRT store submission issue which sometimes led to vague error message on application upload
Control and data flow analysis. Delivers better reflection support
XNA 4 support
Silverlight 5 support
Windows SDK 8.0 support
Visual Studio 2012 support
This is the last free version of Eazfuscator.NET
Greatly improved support of self-hosted WCF services
Neutral mode is the default one for assembly loader now. This solves architecture dependency issues, and now it is possible to obfuscate 64 bit assemblies on 32 bit machines
Fixed template method signature lookup issue
Fixed bug in template constraints rewriting
Fixed own satellite assemblies embedding issue introduced in 3.2
Fixed a reflection analysis issue for Windows Phone apps introduced in 3.2
Fixed issues with overloaded methods in XML Documentation Filter
Rule-based conditional obfuscation for type members
PE32+ executable file format support
Post-mortem expert analysis feature. The built-in knowledge base is used to give a relevant hint to user when a tricky obfuscation error occurs
Script variables in declarative obfuscation attributes
Added ability to embed own satellite assemblies
Added ability to treat warnings as errors
Added ability to define probing paths by declarative obfuscation attributes
Added 'load_from_file' flag for assembly embedding
Added support for synergistic interoperability between CodeDom compilation and assembly embedding
Added support for embedding satellites of assemblies resided in GAC
Added extends('...') function to conditional obfuscation syntax
Improved string encryption
Improved obfuscation of enums
Improved LINQ to SQL analysis engine
Improved reflection analysis engine for toolbox item bitmaps
Added automatic workaround for VSTO projects integration issue
Declarative obfuscation attributes at assembly level from merged assemblies are now considered too
Changed Eazfuscator.NET redistribution terms in EULA
Fixed MEF ImportMany semantics handling
Fixed an error during obfuscation of Compact Framework assemblies. Sometimes it failed with a common message "Method 'A' in type 'B' from assembly 'C' does not have an implementation"
Fixed bug in renaming of nested generic constraints
Fixed bug in handling of '[in][out][opt]' method argument signature
Fixed bug in renaming of generics with multiple interface constraints
Fixed issue with renaming of interface methods when implicit implementations from external assemblies are involved
Fixed bug in 'endfilter' IL instruction handling
Fixed bug in overloaded signature lookup of generic return types
Fixed various modopt signature issues
Fixed anonymous types handling in Compact Framework assemblies
Fixed edge cases when assembly can become logically broken and unverifiable when custom [Obfuscation] attributes are applied to the bottom class of the class hierarchy
Fixed method signature lookup when it contains ByRef template parameter
Fixed declarative obfuscation support for VB.NET when corresponding attributes were defined in input assembly. The VB.NET code snippet at %ProgramFiles%\Eazfuscator.NET\Code Snippets\VB.NET\ObfuscationAttributes.vb was accordingly fixed too. This applies to Silverlight, Windows Phone and Compact Framework VB.NET projects only
Fixed method lookup issue when a class implements the same generic interface several times but with different generic parameters
Fixed custom attributes handling for method parameters
Minimal system requirements changed to Windows XP SP 3 and .NET Framework 4
Improved LINQ support
Improved string encryption
'ILMerge: Unresolved assembly reference not allowed: PresentationFramework' error is fixed for .NET 4 WPF applications
Fixed bug in signature calculation of template methods with 'out' parameters.
Fixed 'An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework' issue
Fixed bug with internal setter of public properties in .DLL assemblies
Fixed an issue with NamespaceDoc classes and XML Documentation Filter
Fixed issues with PostSharp integration
Fixed an issue with namespace-less classes
Fixed inheritance+interface mapping bug which led to missed method implementations
Added automatic XML documentation filter. XML documentation for non-public classes, methods, fields, properties and events is automatically pruned so that essential knowledge about component internals does not leak to the rest of the world anymore. This feature is essential for component developers and publishers
Added automatic signing key discovery. .SNK key file(s) can now be placed near the input assemblies
Added support for .NET 4.0 and Microsoft Visual Studio 2010
Added Eazfuscator.NET SDK for .NET
Added ability to pass custom parameters to ILMerge utility
Added an ability to create fail-safe project integrations. Such projects can be successfully built without obfuscation when Eazfuscator.NET is not installed on machine
Added an ability to ignore InternalsVisibleToAttribute
Added --probing-paths option. It allows to specify folders to use during assembly resolution
SuppressIldasmAttribute is automatically applied to the obfuscated assemblies
/ndebug command line option is automatically passed to ILMerge utility when assembly merging is used
ILMerge transitive closure detection is no longer turned on by default. This eliminates unexpected assembly merging
Improved reflection analysis for components with design-time behavior
Improved pruning of .NET metadata
Improved obfuscation speed
Improved performance of string encryption
Updated documentation
Fixed bug with custom COM marshallers
Fixed bug with satellite assemblies in .NET Compact Framework applications
Fixed a bug in .NET Framework installation path discovery
Fixed overload induction algorithm to satisfy C++ assemblies that reference obfuscated assemblies. This fix is essential for component developers and publishers
Fixed an issue with SuppressIldasmAttribute when Eazfuscator.NET is run by .NET 4.0
Added AllowPartiallyTrustedCallers attribute to Eazfuscator.NET.SDK.dll assembly. This fixed a bug with SDK in partial-trust environment
Fixed a bug in stackalloc statement processing
Fixed a bug in attribute-controlled obfuscation of fields
Added support for Silverlight 2 assemblies and XAP packages
Added 'Globally disable obfuscation' setting to Eazfuscator.NET Assistant GUI for debugging purposes
Implemented symbol renaming with printable characters
Implemented turn off feature for string encryption
Eazfuscator.NET Assistant GUI effects are turned off in remote desktop session
Greatly improved ASP.NET support. Implemented automatic detection of auto-bound events, so obfuscation of ASP.NET applications is mostly flawless now
Improved support of .NET 3.5 add-in technology. AddInViews assemblies are resolved automatically when add-in assembly is obfuscated, so now it's possible to obfuscate add-in pipeline assemblies without any additional efforts
Improved reflection analysis engine. Designer-generated resources in Compact Framework projects are handled automatically
Slightly improved obfuscation speed
Improved and updated documentation
Fixed bug during obfuscation of unsafe managed code
Fixed bug in processing of custom attributes for class properties. Now it's possible to manage obfuscation of properties with custom attributes
Fixed bug in handling of ldelema IL instruction. As a side effect, it was impossible to obfuscate the assemblies produced by the recent version of ILMerge (first seen with ILMerge version 2.9.0210)
Fixed bug in processing of public constants with enumeration types
Fixed bug in stack depth calculation. Also this fixes a long-term issue of assembly runtime crashes after code control flow obfuscation
Implemented code control flow obfuscation. This feature is not active by default, to get more information please refer to documentation
Improved reflection analysis engine. Automatic handling of localized properties of private components
Improved metadata removal algorithm
Improved symbol names encryption algorithm
More graceful error messages
Fixed bugs with method signature lookup
Fixed bug which led to "Unable to find tool 'Ildasm.exe'" error when Visual Studio Express SP1 is used as primary development tool and no other .NET tools are installed
Implemented support of the password protected assembly signing keys
Improved reflection analysis of the xml serialization scenarios
Improved metadata removal algorithm
Fixed bug which occurred when some custom attributes were read from the assembly. This bug often occurred during obfuscation of the classes generated by table adapter designer in Microsoft Visual Studio
Fixed a bug in integration with Microsoft Visual Studio C# Express
Fixed a bug which may occur when obfuscating x86-targeted assemblies on x64 system
Fixed a bug when Eazfuscator.NET was unable to detect CorFlags.exe from .NET SDK. Bug prevented Eazfuscator.NET from working with plain installations of Microsoft Visual Studio Express editions
Fixed a bug which may occur during processing of some custom attributes in assembly
Automatic software updates are now turned on by default
Improved reflection analysis engine
Improved metadata removal
Improved error handling in Eazfuscator.NET Assistant
Improved string encryption – now encrypted strings are tied to the assembly strong name
Fixed installation repair bug
Fixed an issue which may occur when obfuscated projects with satellite assemblies are subsequently built with Microsoft Visual Studio in Release configuration
Fixed a bug when Eazfuscator.NET was unable to detect .NET SDK presence. It occurred when Microsoft Visual Studio 2008 was installed before or without Microsoft Visual Studio 2005