Babel Obfuscator Changelog

What's new in Babel Obfuscator 10.6.0.0

Mar 27, 2024
  • Enhancements:
  • Babel UI: UI components updated to latest DX technology.
  • Bug Fixes:
  • Cross Assembly Renaming: Fixed OB0003 warning in certain scenario where explicit interface implementation is involved.
  • Anti Debugging Protection: Fixed heavy CPU load of obfuscated application where Anti Debugging protection is enabled.
  • Code Encryption: Fixed when code encryption is enabled, PDB line numbers are removed from debug stack trace.
  • Control Flow Obfuscation: Fixed Control Flow Obfuscation could create invalid portable PDB files.
  • String Encryption: Babel could crash during obfuscation when String Encryption is enabled.

New in Babel Obfuscator 10.5.0.0 (Jan 23, 2024)

  • Enhancements:
  • .NET 8.0 Enhancements: Improvied support and compatibility with .NET 8.0 framework.
  • MAUI XAML Renaming: Improved obfuscation of XAML code for MAUI applications.
  • Babel Obfuscator NuGet: Introduced a new MSBuild variables to provide more control over the obfuscation process.
  • Bug Fixes:
  • Cross Assembly Renaming: Fixed cross assembly renaming of structure fields.
  • Stack Trace Deobfuscation: Fixed an issue with reconstructing stack trace for generic methods.
  • Babel UI: Fixed some toolbar icons are not showing correctly on Windows 11.

New in Babel Obfuscator 10.4.0.0 (Nov 22, 2023)

  • Enhancements:
  • .NET 8.0 Support: Embrace the future with added support for .NET 8.0 and .NET 8.0 SDK, aligning your obfuscation needs with the latest .NET advancements.
  • Enhanced MAUI Support: With improved support for MAUI applications, experience smoother integration and heightened protection for your multi-platform apps.
  • Changes:
  • Streamlined Tools: In our pursuit of optimization, we’ve removed babel build tools for .netcoreapp3.1, focusing our resources on the most current and efficient technologies.
  • Bug Fixes:
  • Reliability Improvements: We’ve addressed a critical issue where Babel could crash with ArgumentNullException during control flow obfuscation, particularly when the values algorithm is enabled. This fix enhances the stability and reliability of our obfuscation process.

New in Babel Obfuscator 10.3.0.0 (Oct 17, 2023)

  • Enhancements:
  • Enhanced support for MAUI applications.
  • Babel UI has been updated with an input grid that includes Assembly, AssemblyVersion, and FileVersion columns.
  • New feature to embed mixed code assemblies.
  • Changes:
  • Babel will maintain the assembly name unchanged if the target file is different from the input file.
  • Bug Fixes:
  • Fix – Babel UI: In the license template edit, the product is not updated when changing the license template.
  • Fix – Babel UI: License site count is not stored inside the license file.
  • Fix – Babel UI: The license date edit now uses local time.

New in Babel Obfuscator 10.2.1.0 (Jul 22, 2023)

  • Bug Fixes:
  • Fix: babel.exe could crash with object reference not set exception on cross assembly renaming.
  • Fix: babel.exe could consume a large amount of memory leaks processing XML map files.

New in Babel Obfuscator 10.2.0.0 (Jul 19, 2023)

  • Enhancements:
  • Added support to the obfuscation of .NET 8.0 assemblies.
  • Bug Fixes:
  • Fix: Babel UI project defaults enabled processing of JSON manifest.
  • Fix: Babel UI fields in the statistics view do not show the correct results.

New in Babel Obfuscator 10.0.0.0 (Jun 5, 2023)

  • We encourage all Babel Licensing users to upgrade to version 10.0.0 to take advantage of the new features and improvementsThe Babel Licensing Services provide a powerful licensing infrastructure, enabling you to effectively monetize your software while ensuring license compliance.
  • Babel Licensing Services:
  • The introduction of Babel Licensing Services revolutionizes the licensing infrastructure by providing a dedicated server-based solution.
  • Babel Licensing Services offers a centralized platform for managing licenses, enabling easy license generation, activation, and validation.
  • The services provide enhanced security and scalability, ensuring a robust and reliable licensing system for your applications.
  • Improved License Management:
  • Babel Licensing 10.0.0 introduces enhanced license management capabilities, empowering developers with more control over their licensing workflows.
  • The new version includes features such as license deactivation, license revocation, and more flexible license expiration options.
  • License administrators can now efficiently manage and monitor licenses, making enforcing license compliance and protecting intellectual property easier.
  • Flexible License Models:
  • Babel Licensing 10.0.0 expands the range of supported license models, offering more flexibility to meet diverse licensing requirements.
  • Floating Licenses: Floating license support allows concurrent usage of licensed software across multiple instances or users.
  • Activation Licenses: Activation-based licensing enables offline activation and validation of licenses on end-user machines.
  • File Licenses: File-based licensing provides a convenient way to distribute and manage licenses using license files.
  • Enhanced Security:
  • Security has always been a top priority for Babel Licensing, and version 10.0.0 further strengthens the protection of your licenses.
  • The use of RSA-based signature algorithms ensures robust license verification and prevents tampering or unauthorized use.
  • Babel Licensing Services implements stringent security measures, including encryption, secure communication protocols, and access controls.
  • Improved Developer Experience:
  • Babel Licensing 10.0.0 aims to enhance the overall developer experience and ease the integration of licensing functionality into applications.
  • The new version provides updated documentation, comprehensive examples, and code snippets to facilitate a smooth integration process.
  • The software development kits (SDKs) have been improved to offer streamlined APIs and intuitive workflows.

New in Babel Obfuscator 9.9.5.0 (Dec 20, 2022)

  • Enhancements:
  • Improved support for .NET 7 assemblies.
  • Fixes:
  • Fix: Processing of satellite assembly resources.

New in Babel Obfuscator 9.9.4.0 (Nov 27, 2022)

  • Enhancements:
  • Performance improvements that could affect the following features:
  • assembly merge
  • renaming
  • dead code removal
  • Improved support for MAUI applications.
  • Module initializer calls can be ordered using XML rules or the Obfuscation attribute.
  • Fixes:
  • Fix: Babel could crash with stack overflow exception when XAML renaming is enabled.
  • Fix: C# 9.0 language features could break cross-assembly renaming.
  • Fix: XAML namespace references in the property indexer are not appropriately renamed.
  • Babel Licensing 9.9.4.0:
  • Fixes:
  • Fix: String licenses do not support expiration time.
  • Fix: Lic cannot parse and modify existing license files.

New in Babel Obfuscator 9.9.3.0 (Oct 22, 2022)

  • Fix: Merge of exported types.
  • Fix: In some scenarios, XAML namespaces references in XAML code could be removed.
  • Fix: Babel could crash with the error ArgumentException Key already exists when obfuscating CLR/C++ application with update PDB option enabled.
  • Fix: Stack trace deobfuscator for deeply nested types.
  • Fix: Managed resources might not be adequately renamed when the assembly name is changed.

New in Babel Obfuscator 9.9.2.0 (Sep 11, 2022)

  • Enhancements:
  • Improved obfuscation agent to discover more reflection API.
  • XAML obfuscation can resolve more binding expressions.
  • Fixes:
  • Fix: Some internal enum fields consumed by reflection API could be obfuscated.
  • Fix: If the target assembly has a strong name, merge could make the assembly raise the Unhandled Exception: System.BadImageFormatException: Could not load file or assembly or one of its dependencies. The module was expected to contain an assembly manifest.
  • Fix: NET 6 applications could crash with InvalidOperationExeption when string encryption is enabled.
  • Fix: An application protected with code encryption could crash with InvalidCastException.

New in Babel Obfuscator 9.9.1.0 (Aug 1, 2022)

  • Fixes:
  • Fix: Obfuscated WPF applications could raise System.Windows.Markup.XamlParseException:
  • The method or operation is not implemented.
  • Fix: Obfuscated assemblies can lead to Xamarin linker Error Mono.Linker.MarkException: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
  • Fix: When code encryption is enabled, babel can raise the warning [MG0007]: The type ‘System.Math’ defined in ‘Babel.Stub.Deflate…’ was not found in merged scope ‘Babel.Stub.Deflate’
  • Fix: Obfuscation warning OB0005 is raised for external assembly that does not provide an XML mapping file.
  • Fix: Stack trace deobfuscator for generic method parameters.
  • Fix: Obfuscated .NET application could raise the exception: Could not load file or assembly ‘System.Security.Cryptography.Primitives, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’.

New in Babel Obfuscator 9.9.0.0 (May 17, 2022)

  • Enhancements:
  • New: Added support .NET 7.0 (preview)
  • New: Added obfuscation support for MAUI (preview)
  • Fixes:
  • Fix: Babel could crash with error: An error occurred during phase ‘Memory Writer’: Specified method is not supported.
  • Fix: Obfuscated WPF applications could crash with invalid BAML resources.
  • Fix: Merge of WPF assemblies which could crash with error:
  • System.NotImplementedException: The method or operation is not implemented
  • Fix: Cross assembly obfuscation when rules are set to prevent renaming of an external interface implementation already obfuscated.
  • Fix: Babel crash during merge phase with error: Malformed name.
  • Fix: The targetAssembly attribute is applied to rules for merged assemblies.
  • Fix: Stack trace deobfuscation can backtrace for method search.
  • Fix: Merged assemblies could raise a MethodNotFound exception.

New in Babel Obfuscator 9.7.8.0 (Dec 8, 2021)

  • Enhancements:
  • New: Added babel obfuscator tools for .NET 6.0
  • New: Added obfuscation support for Razor and Blazor Web applications
  • Enh: Improved XML rules with new locked attribute and Namespace element.
  • Enh: Added new command-line option –assembly-name
  • Enh: Improved merge and obfuscation of WPF applications
  • Enh: Various performance improvements
  • Enh: Merge RetargetTo supports regular expression to retarget multiple types based on search-replace expressions
  • Fixes:
  • Fix: If string encryption is enabled on Xamarin iOS assemblies Visual Studio raise the error:
  • MT2101: Can’t resolve the reference System.IO.BinaryReader.
  • Fix: Custom attributes with properties referencing external types are not renamed in public obfuscation.
  • Fix: Dynamic proxy protection for multi-dimensional arrays.
  • Fix: If XAML renaming is disabled resource keys are obfuscated.
  • Fix: Obfuscated .NET Core application can raise System.BadImageFormatException when string encryption is enabled.
  • Fix: Fixed MissingMethodException for public obfuscation of extension methods with generic parameters.
  • Fix: Babel could crash with null reference exception when embedding assemblies if an XML rule file is defined.
  • Fix: NET Core applications obfuscated with array value encryption could crash with InvalidOperationException.
  • Fix: XML rules, the Implements filter does not scan base types.
  • Babel Licensing 9.8.0.0:
  • Enhancements:
  • New: Added babel licensing tools for .NET 6.0
  • Enh: The lic.exe application can now load external assemblies to register new restrictions and signature providers
  • Enh: Added hardware restrictions for .NET 6.0 on Linux and macOS

New in Babel Obfuscator 9.7.6.0 (Sep 6, 2021)

  • Enhancements:
  • Added FamilyAndAssembly, FamilyORAssembly access to XML rules.
  • Improved string encryption HASH algorithm.
  • Babel can run on Windows OS with FIPS compatibility enabled.
  • Added MergeAction and RedirectTo properties to merge rules.
  • Improved support for C# 9 language features.
  • Improved XAML obfuscation.
  • Added new code analysis agent task.
  • Fixes:
  • Fix: Deobfuscate stack trace for methods with modreq and modopt parameters.
  • Fix: Crash during obfuscation of assemblies targeting multiple frameworks.
  • Fix: Method with FamilyAndAssembly access is not renamed.
  • Fix: The Obfuscation attributes are stripped if merge is enabled.
  • Fix: AntiDebuggin for .NET Framework 2.0.
  • Fix: Inline expansion could crash the obfuscated assembly with InvalidProgramException.
  • Fix: Obfuscation rules could not be applied to methods and properties parameters.
  • Fix: Some logging messages are present at verbosity level 0.
  • Fix: XML doc files are not merged when using relative paths
  • Fix: XAML renaming in scenarios involving generic parameters.
  • Fix: XAML renaming of dependency properties.
  • Fix: Error writing XML MAP file and log file if the destination folder does not exist.
  • Fix: babel.exe might crash with a null reference exception when dead code removal is enabled.
  • Fix: Fixed crash of obfuscated application in certain scenarios with dynamic proxy protection enabled.
  • Fix UI: Fixed Access and Target selection in the rule editor.

New in Babel Obfuscator 9.7.5.0 (Jun 7, 2021)

  • Enhancements:
  • Added support for .NET 6 (preview).
  • The ObfuscationAttribute can now catch compiler-generated types (please refer to the user’s guide).
  • Improved XAML obfuscation.
  • Improved anti-debugging feature.
  • Fixes:
  • Fix: Cross assembly obfuscation of generic parameters.
  • Fix: Renaming of WCF data operation parameters.
  • Fix: Rules with targetAssembly specified could be applied to members of other assemblies.
  • Fix: Dead code removal could crash when applied on already obfuscated assemblies.
  • Fix: Warning OB0004 should be raised only when XAML renaming is enabled.
  • Babel Licensing 9.7.5.0:
  • Fixes:
  • Fix: The trial time is not reset when license id is changed

New in Babel Obfuscator 9.7.4.0 (Apr 12, 2021)

  • Enhancements:
  • Added support for PDB debug files including Sourcelink information.
  • Improved obfuscation reliability of assemblies written using the Visual Basic language.
  • Improved anti-debugging feature for .NET Core and .NET 5 assemblies.
  • Fixes:
  • Fix: lic.exe does not change the license format when –format option is specified at the command line.
  • Fix: Stack trace de-obfuscation when type namespace information is missing.
  • Fix: The configured PDB password is not used at the command line when using the Babel Obfuscator NuGet package.
  • Fix: Stack trace de-obfuscation added support for type generic parameters, and stack frame without namespace information.
  • Fix: PDB source file information is not encrypted for .NET Core assemblies.
  • Fix: Fixed crash of obfuscated application in a certain scenario when enum type removal is enabled
  • Fix: Assemblies could be identified as already obfuscated if types are found in the global namespace
  • Fix: Fixed warning [W00002] cannot parse BAML resource stream ‘…baml’: Unable to read beyond the end of the stream, occurring in a certain scenario when merging assemblies with XAML resources.

New in Babel Obfuscator 9.7.0.0 (Dec 8, 2020)

  • Enhancements:
  • New: Added support for .NET 5.0 assemblies.
  • New: NuGet package tools can now run on .NET 5.0 SDK.
  • New: More UI theme customizations.
  • The Obfuscation attribute now supports ‘include methods’ and ‘exclude methods’ selectors and case insensitive name properties
  • Space flattening functionality can now be applied to a defined set of namespaces.
  • More control over renaming parameters using XML obfuscation rules
  • Changes:
  • The Babel.Build.xsd definition has been updated to describe Babel MSBuild properties.
  • The XAML Symbols agent task has been removed.
  • Bug Fixes:
  • Fix: When control flow obfuscation is enabled, the method debug information in the PDB file is stripped.
  • Fix: Code encryption and string encryption could crash .NET Core obfuscated application with the error object reference not set.
  • Fix: Compatibility issue for obfuscated .NET 2,0 assemblies
  • Fix: XML Rules HasBase does not work for generic types.
  • Fix: Reference libraries are not correctly updated when on JSON dependency files when merging assemblies.
  • Fix: XAML obfuscation issue with the binding of enumerator fields.
  • Fix Command-line names resolution of options containing the hyphen character.
  • Fix UI: OutputFile should not propagate changes to other projects.
  • Fix UI: Propagate changes for virtual obfuscation externals.
  • Fix UI: If the option propagates changes is enabled, Optimizations Attributes and Entry Points lists are not updated.
  • Fix UI: Fixed various message typos.

New in Babel Obfuscator 9.6.0.0 (Oct 11, 2020)

  • Enhancements:
  • The addreference option can now accept fully qualified assembly names.
  • MSIL encryption supports generic types and methods with ref and out parameters.
  • MSIL encryption now supports the password to protect encrypted method data.
  • It is possible to specify which encryption algorithm Babel will use to encrypt data (–use encryptio=).
  • Bug Fixes:
  • Fixed symbols statistics.
  • Unicode character names customization could lead to a crash of the obfuscated application
  • with error: Duplicate type with name ‘xy’ in assembly …
  • Merge of custom attribute when enum types are passed to attribute constructor.
  • Array encryption could crash obfuscated assembly with error: System.Runtime.InteropServices.COMException: Signature has bad token.
  • Babel could stop with error: An error occurred during phase ‘Generate Xml Map’: This is an unclosed string.
  • MSIL encrypted methods can give peverify IL error: Stack underflow.
  • ObfuscationAttribute should not be applied to method return values
  • UI: WarningAsErrors is lost on project reload

New in Babel Obfuscator 9.5.0.0 (Jul 22, 2020)

  • Enhancements:
  • New: Added renaming of external virtual methods (see –virtual external=on)
  • Improved memory consumption and obfuscation speed
  • Changes:
  • Babel.Obfuscator NuGet package: the XmlDocumentationFile configuration has changed from property to item group.
  • Bug Fixes:
  • Fix: Code encryption compatibility issue on .NET Framework 3.5 and early versions. Application crash with exception System.MissingMethodException.
  • Fix: Cross assembly renaming applications could crash at runtime with System.MissingMethodException.
  • Fix: Obfuscation could take considerable time and memory if dynamic proxy generates more than 10K types.
  • Fix: Virtual function obfuscation in some scenarios.
  • Fix: Warning Could not read rule MSIL encryption properties when the Source property is an empty string.
  • Fix: Stack trace method of nested type is not Deobfuscated.
  • Fix: Babel could hang in scenarios when using PDB encryption.

New in Babel Obfuscator 9.4.0.0 (Jun 2, 2020)

  • Enhancements:
  • Added Babel Encrypt plugin to Babel.Obfuscator NuGet package.
  • The Babel.Obfuscator NuGet now is compatible with AppCentral.
  • Improved Babel Obfuscator plugin interface.
  • The mapin and rules options now support globbing expressions.
  • Changes:
  • Changed the Babel.Obfuscator NuGet package to better handle latest Visual Studio 2019 build environment.
  • Bug Fixes:
  • Fix: Obfuscated Xamarin assemblies can make the Xamarin Linker raise the following error during the build of the project: error XALNK7000: Mono.Linker.MarkException: Error processing method: … in assembly: … System.ArgumentNullException: Value cannot be null.
  • Fix: BabelEncrypt fix method not found exception when obfuscating .NET 2.0 assemblies.
  • Fix: Code encryption Error: Attempt by method ‘DynamicClass.?(…)’ to access field ‘Type`1.value’ failed.
  • Fix: Babel generates wrong PDB portable metadata information.
  • Fix: Xamaring Linker generates warning reading obfuscated PDB assemblies due to the exception:
  • System.IndexOutOfRangeException: Index was outside the bounds of the array.
  • When reading custom debug information
  • Fix: UWP obfuscated libraries can crash the compiler with internal compiler error: Object reference not set to an instance of an object.
  • Fix: UWP obfuscated applications can crash at startup with TypeInitializationException.
  • Fix: Stack decoder could not decode all frames when multiple mapping files are used to decode the obfuscated stack.
  • Fix: Control flow obfuscation algorithm can break the obfuscated application with exception InvalidProgramException.
  • Fix GUI: Fixed invalid operation exception: ‘Duplicate attribute.’ in certain circumstances when saving project files.
  • Fix GUI: Show level bars and advanced settings are not effective for themes.
  • Fix GUI: Fixed help menu links to the website.

New in Babel Obfuscator 9.3.3.1 (Feb 12, 2020)

  • Bug Fixes:
  • The JSON dependency manifest is not updated when embedding .NET Core assemblies.
  • XML license validation could raise the error: XML document not loaded.
  • Fix: PInvoke adds .dll extension to non windows library imports
  • Stability issue that will make obfuscated assemblies to crash with error:
  • System.TypeInitializationException: The type initializer for '?' threw an exception.
  • This fix affects the following encryption features:
  • Code Encryption
  • String Encryption HASH, XOR
  • Value Encryption
  • Resource Encryption:
  • A XAML parsing issue that in some occasions could raise the warning
  • W00002: Cannot parse BAML resource stream
  • Dynamic Proxy Call could generate the following error:
  • System.TypeInitializationException: The type initializer for 'xyz' threw an exception.
  • System.NotSupportedException: The return Type contains some invalid type
  • XML rules targeting methods, fields, properties or events do not match if any
  • HasAttribute has been defined
  • Obfuscated Xamarin assemblies can make the Xamarin Linker raise the following error during the build of the project:
  • Error XALNK7000: Mono.Linker.MarkException: Error processing method: ...
  • In assembly: ... ---> System.ArgumentNullException: Value cannot be null.

New in Babel Obfuscator 9.3.3.0 (Jan 16, 2020)

  • BUG FIXES:
  • Fix: The JSON dependency manifest is not updated when embedding .NET Core assemblies.
  • Fix: XML license validation colud raise the error: XML document not loaded.
  • Fix: PInvoke adds .dll extension to non windows library imports
  • Fix: Stability issue that will makje obfuscated assemblies to crash with error:
  • System.TypeInitializationException: The type initializer for '?' threw an exception.
  • This fix affects the following encryption features:
  • Code Encryption
  • String Encryption HASH, XOR
  • Value Encryption
  • Resource Encryption
  • Fix: A XAML parsing issue that in some occasions could raise the warning
  • W00002: Cannot parse BAML resource stream
  • Fix: Dynamic Proxy Call could generate the following error:
  • System.TypeInitializationException: The type initializer for 'xyz' threw an exception.
  • System.NotSupportedException: The return Type contains some invalid type
  • Fix: XML rules targeting methods, fields, properties or events do not match if any
  • HasAttribute has been defined

New in Babel Obfuscator 9.3.2.0 (Nov 26, 2019)

  • New:
  • New: Babel GUI Frost White theme.
  • Enhancements:
  • Command line now supports more readable options aliases (ex: --control-flow)
  • The BabelObfuscator attribute can be added to obfuscated assemblies (see: --use option)
  • Added ability to skip already obfuscated assemblies (see: --detect-if-obfuscated option)
  • Bug Fixes:
  • Fix: Code encryption for .NET Core 3.0
  • Fix: Anti-debugging protection could generate memory leaks
  • Fix: Merge constructor arguments arrays are not updated correctly
  • Fix: Dead code removal could remove type constructors consumed by reflection

New in Babel Obfuscator 9.3.1.0 (Nov 11, 2019)

  • New:
  • New: Babel UI map control for database scripting.
  • New: Added anti-tampering and anti-debugging protections for .NET Core 3.0
  • Enhancements
  • Babel GUI: Added scripting functions to group fields in grids and pivot grids.
  • Babel GUI: Added Copy/Paste obfuscation settings in the input grid.
  • Changes:
  • Chg: Babel.Obfuscator NuGet packages 9.3.x versions, are no more compatible with .NET Core 2.1.
  • Please refers to the Babel Obfuscator user’s guide to know how to update DevOps builds to run dotnet.exe CLI 3.x tools.
  • Bug Fixes:
  • Fix: Babel could crash with error: Agent task 'Reflected enums' Specified cast is not valid.
  • Fix: Stack trace deobfuscation for methods with ref parameters.
  • Fix: Babel GUI: Argument out of range exception when setting code encryption filters.
  • Fix: Babel GUI: Minor fixes targeting usability.
  • Fix: The NuGet warning NU1701 is notified when adding the Bebel.Obfuscator NuGet package to a .NET Standard library project.

New in Babel Obfuscator 9.1.1.0 (Jan 29, 2019)

  • New:
  • New: Added support for .NET Core 3 preview and Visual Studio 2019 preview
  • New: Added support for portable PDB
  • New: Added loadtomemory command line switch for --use option
  • Enhancements:
  • Enh: Performance improvements
  • Bug Fixes:
  • Fix: Fix OB0007 is shown when methods with same name are present in a type and its nested classes
  • Fix: Merged nested types doesn't match rules when targetAssembly is set
  • Fix: Fix stack decoder deobfuscation for nested types

New in Babel Obfuscator 9.1.0.0 (Dec 6, 2018)

  • New (Company License):
  • New: Babel Obfuscator and Licensing tools can now run on .NET Core 2.1
  • New: Babel Obfuscator NugGet package for installing obfuscation and licensing tools
  • New: Added support for Visual Studio DevOps
  • Enhancements:
  • Enh: Added stack trace deobfuscation option --stacktrace
  • Enh: Renaming performs better performance in some scenarios involving analysis of virtual function inheritance
  • Changes:
  • Chg: The StackTraceDeobfuscator interface has been changed
  • Bug Fixes:
  • Fix: Fixed various PEverify IL errors.
  • Fix: Array encryption that could crash the obfuscated application.
  • Fix: Const field removal could remove fields that are assigned multiple time in cctor.
  • Fix: Stack trace deobfuscation could not decode the types of method arguments.
  • Fix: Stack trace could not decode nested types when the type name is qualified by '+' character.
  • Fix: Merge could not properly handle overloaded methods that have a multidimensional array in the parameter list.
  • Fix: Mapping file could report wrong obfuscated names for nested types
  • Fix: ObfuscatinAttribute is not applied at assembly level
  • Fix: Warning OB0006 miss showing rule information
  • Fix: PEverify error [MD]: Error: Method has a duplicate
  • when cross assembly renaming is enabled (public interface obfuscation)
  • Fix: GUI: Error on saving a project that contains multiple target with the same file name:
  • An item with the same key has already been added.
  • Fix: Obfuscated assemblies referencing retargetable assemblies could crash with following error:
  • Could not load file or assembly 'System, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac' or one of its dependencies.
  • The system cannot find the file specified.
  • Fix UI: Sort dependencies could generate a wrong ordered set, when the referenced assembly version differs from actual assembly version.
  • Fix: When random seed is set generated names are not the same across two obfuscations
  • Fix: babel.exe could crash with message
  • Error: An error occurred during phase 'Emit': Member 'System.Void ?()' declared in another module.
  • when anti debugging and control flow are enabled.
  • Fix: Stack trace deobfuscation could not decode properly some method parameters.
  • Fix: Dead code removal could give error during emit phase: Member 'name' declared in another module.
  • Fix: babel.exe crash with error: An error occurred during phase 'Memory Writer': Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
  • Fix GUI: Fill license command show password box when assembly is signed with PFX file

New in Babel Obfuscator 9.0.0.0 (Sep 24, 2018)

  • Enhancements:
  • Can enable/disable multithreading obfuscation
  • Added automatic merge of localized resources
  • Added support for .NET Nano Framework
  • Can define seed to control obfuscation
  • A log timestamp can be enable from settings
  • GUI: Customizable themes and icons
  • GUI: Project files can be opened by drag & drop from Explorer
  • GUI: Added more obfuscation settings
  • GUI: Can export rules to XML file from rules editor
  • GUI: Improved password box
  • GUI: Obfuscation level is deduced from obfuscation settings
  • Bug Fixes:
  • Fix: When random seed is set generated names are not the same across two obfuscations
  • Fix: babel.exe could crash with message
  • Error: An error occurred during phase 'Emit': Member 'System.Void ?()' declared in another module.
  • when anti debugging and control flow are enabled.
  • Fix: Stack trace deobfuscation could not decode properly some method parameters.
  • Fix: Dead code removal could give error during emit phase: Member 'name' declared in another module.
  • Fix: babel.exe crash with error: An error occurred during phase 'Memory Writer': Offset and length were out of bounds for the array or count is greater
  • than the number of elements from index to the end of the source collection.
  • Fix GUI: Fill license command show password box when assembly is signed with PFX file

New in Babel Obfuscator 8.16.0.0 (Jun 14, 2018)

  • Enhancements:
  • Added support for .NET Standard 2.0
  • Bug Fixes:
  • Fix: babel.exe crash with error: Object reference not set to an instance of an object
  • when parsing XML rules having properties not common to all features specified.
  • Fix: Cross assembly obfuscation of explicitly implemented interfaces
  • Fix: A babel.exe crash during merge of methods using __makeref operator
  • Fix: A babel.exe crash for stack overflow exception in some circumstances on unresolved external types
  • Fix: Control flow call algorithm can generate error:
  • System.MethodAccessException: Attempt by security transparent method ... to access security critical method ... failed.
  • Fix: Babel plugin IBabelRenamingListener::OnSymbolRenaming, NewName is not assigned to symbol name.
  • Fix: The encryption of array could be lead to wrong array in some scenario.
  • Fix: The main module name is not updated if an assembly is merged to the main module.
  • Fix: Cross renaming of overridden framework members now notify the OB0003 warning
  • Fix: Babel doesn't process satellite assemblies of merged assemblies.
  • Fix: Renaming of delegate parameters
  • Fix GUI: The selection of an action (Merge/Embed) from the input grid, is not effective until the control loses the focus.
  • Fix GUI: Toolbar layout is not persisted on application settings.

New in Babel Obfuscator 7.0.0.0 (Feb 14, 2014)

  • Enhancements:
  • New Babel Licensing, which allows to generate XML feature based licenses
  • New Obfuscation Rule Editor
  • New NAnt build task
  • Added new agent task to support DLR
  • Added Sort Dependencies user interface command to automatically detect the correct order in which to process the various assemblies in a project
  • Changes:
  • Rules Schema: It is no longer required to specify the version attribute in the Rules element
  • Improved dead code removal for fields that are not used
  • Improved merge algorithm
  • Added log when applying ObfuscationAttribute to a symbol
  • Fixed: When setting name length the renamed symbol names are not properly randomized
  • Fixed: Stack trace deobuscator does not properly handle methods with generic parameters.
  • Fixed: Babel GUI obfuscation error when using dead code removal entry points: An error occurred during phase 'Dead Code Removal': The given key was not present in the directory.
  • Fixed: babel.exe exit with error: The path is not of a legal form, when --out option not specify a destination folder.
  • Fixed: ESET reveals malware in obfuscated assemblies when using embed or resource encryption features.
  • Fixed: babel.exe crash: An error occurred during phase 'Renaming': Value cannot be null. Parameter name: oldValue

New in Babel Obfuscator 6.5.0.3 (Feb 14, 2014)

  • Enhancements:
  • Supports .NET Framework 4.5.1
  • Added support for Visual Studio 2013 Preview.
  • Added warning for unresolved assembly version: Could not resolve assembly name 'XY Version 1'. The assembly was resolved to 'XY Version 2'.
  • Fixed: Stack decoder cannot resolve obfuscated methods names when one of the method parameter is a structure.
  • Fixed: babel.exe Error: An error occurred during phase 'Dead Code Removal': The given key was not present in the dictionary.

New in Babel Obfuscator 6.5.0.1 (Feb 14, 2014)

  • Enhancements:
  • Added WinRT agent task to prevents renaming of types.
  • Improved support for BAML files.
  • Fixed: Warning [W00002]: Cannot parse BAML resource stream '...baml': BAML record not supported.
  • Fixed: babel.exe Error: An error occurred during phase 'Dead Code Removal': The given key was not present in the dictionary.

New in Babel Obfuscator 6.5.0.0 (Feb 14, 2014)

  • Enhancements:
  • Added obfuscation of XAML files in appx packages.
  • Improved support for WinMD metadata format.
  • Fixed: Obfuscated application crash at startup when using Resource Encryption
  • Fixed: Variuos XML rules issues.
  • Fixed: Renaming of localized resources in Winform applications.
  • Fixed: Babel crash on control flow obfuscation with the following exception: Error generating the flow graph for method:... Inner exception: Stack empty.
  • Fixed: Babel raise the warning [W00002]: Cannot parse XAML resource stream '....xaml': Root element is missing... for well formated XAML documents.
  • Fixed: Duplicated embedded resources are not handled in the merge process
  • Fixed: Serializable types are internalized during merge
  • Fixed: Enum type removal should not remove serializable enum types
  • Fixed: Crash of obfuscated .winmd components when using control flow obfuscation calls.

New in Babel Obfuscator 6.4.0.0 (Feb 14, 2014)

  • Enhancements:
  • New! Dead dead code removal can now remove unused types and fields.
  • Fixed: babel.exe terminates with the follwoing error:
  • Could not resolve assembly: 'Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null'
  • Fixed: Obfuscated applications using embed feature randomly crashes
  • Fixed: MRU list deleted after installing a new version
  • Fixed: babel crash: An error occurred during phase 'Control Flow Obfuscation': One or more errors occurred.
  • Fixed: babel crash: An error occurred during phase 'Merge Msil': One or more errors occurred.
  • Fixed: Incorrect regex definition of attributes defined in Cleanup Attributes grid
  • Fixed: Improved BAML renaming (can resolve more complex properties)
  • Fixed: babel.exe crash: An error occurred during phase 'Emit' when using cleanup attributes to remove
  • System.Runtime.CompilerServices.CompilerGeneratedAttribute attribute
  • Fixed: Merged application can crash with System.TypeLoadException: ...cannot reduce access.

New in Babel Obfuscator 6.3.0.0 (Feb 14, 2014)

  • Enhancements:
  • Stack decoder now shows all possible alternatives to a decoded method name if overloaded renaming was used.
  • Changes:
  • Setup detects .NET Framework 4.0 Full as prerequisite.
  • Fixed: do not rename public .ctor., .cctor parameters.
  • Fixed: protected internal methods are not renamed.
  • Fixed: babel.exe crash during Emit phase when control flow token generation is enabled
  • Fixed: When obfuscating Compact Framework assemblies babel.exe terminates with error: String encryption algorithm not available.
  • Fixed: Array encryption for Compact Framework assemblies.
  • Fixed: When encrypting array values in Silverlight assemblies babel.exe terminates with error: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.

New in Babel Obfuscator 6.2.0.0 (Feb 14, 2014)

  • Enhancements:
  • Added rename of XAML resources
  • Changes:
  • Improved control flow obfuscation
  • Fixed: babel.exe crash in 'Control Flow Obfuscation' Object reference not set to an instance of an object.
  • Fixed: .ctor., .cctor parameters are renamed when they are excluded by XML rules.
  • Fixed: Merged WPF application using merge dictionaries may not load after obfuscation.
  • Fixed: Unexpected babel.exe crash during renaming (Object reference not set to an instance of an object.)
  • Fixed: The generated .appx package is not valid for signing (SignTool.exe error)
  • Fixed: User cannot set methods, properties, fields and events namelength from the command line.
  • Fixed: Various BAML generation issues.

New in Babel Obfuscator 6.1.0.0 (Feb 14, 2014)

  • Enhancements:
  • Added support for .appx packages
  • Added support for .winmd assemblies
  • Changes:
  • Added END User License Agreement to setup files
  • NGen will be launched at the end of the setup process for all the installed assemblies
  • Fixed: Error 'Cannot resolve type: System.DateTime' when using trial licenses
  • Fixed: Error 'Could not find file:...' when obfuscating Silverlight XAP packages and MAP files generation is enabled
  • Fixed: Stack decoder Error: The value of the 'version' attribute does not equal its fixed value. at (7,11)
  • Fixed: peverify.exe [MD]: Error: Method marked Abstract, Runtime, InternalCall or Imported must have zero RVA, and vice versa.
  • Fixed: MSIL Encryption adds a reference to mscolrib 2.0 in some cases
  • Fixed: Error babel.exe may throw StackOverflowException when creating dynamic proxy calls
  • Fixed: (User Interface) Control Flow Iteration is not updated in all projects when Propagate Changes is enabled

New in Babel Obfuscator 6.0.0.0 (Feb 14, 2014)

  • Enhancements:
  • Added Support for Windows Runtime and Windows Store applications
  • Added Support for .NET Framework 4.5, Visual Studio 2012, Windows 2012 Server, Windows 8
  • Added Babel.Build.v3.5 assembly to support Visual Studio 2008 and MSBuild v3.5
  • Overall improvement of the obfuscation speed and memory consumption: obfuscation runs three times faster than 5.6 version
  • Improved User interface usability
  • Changes:
  • Added new warning message for System.Enum type removal when a method has duplicates.
  • Added optional regular expression parameter to [no]copyattr command line switch
  • Changed XML map file schema version to 2.5 (it only contains rename mapping information)
  • Fixed: System.Enum removal peverify [MD] Error: Method has a duplicate, token=0x0600211d. [token:0x0600211C]
  • Fixed: Msil encrypted applications raise System.InvalidOperationException when using external method source.
  • Fixed: Custom Unicode normalization uses a large amount of memory when enabled
  • Fixed: Out of memory exception when obfuscating assemblies with large embedded resources
  • Fixed: Greatly reduced memory usage during obfuscation
  • Fixed: GUI crash with System.ArgumentNullException: Value cannot be null. Parameter name: path1
  • Fixed: Control flow obfuscation takes much time to obfuscate methods with many (> 10000) instructions
  • Fixed: Missing Babel task attributes in Babel.Build.xsd schema
  • Fixed: (Demo only) removed expiration date check from interfaces
  • Fixed: Sign error when PFX certificate password is not set

New in Babel Obfuscator 5.6.0.0 (Feb 14, 2014)

  • Enhancements:
  • Added Support for .NET Framework 4.5RC, Windows 2012 Server RC, Windows 8 RC
  • Added the capability to turn on/off compression and encryption for embedded assemblies
  • Graphic user interface improvements
  • Changes:
  • Improved speed of Merge algorithm
  • Improved speed of Dead Code Removal
  • Improved speed of generation for call graph
  • Bug Fixes:
  • PFX certificate password cannot be entered during obfuscation
  • Dead Code Removal exception: Index and count must refer to a location within the string
  • Graphic user interface fixes

New in Babel Obfuscator 4.0.0.0 (Apr 26, 2011)

  • Support XAML/BAML
  • Code Instrumentation
  • Dynamic Proxy Calls
  • Handle PDB Debug Symbole
  • Code Optimizations

New in Babel Obfuscator 3.5.0.0 (Apr 24, 2010)

  • Support .NET Framework 4.0 and Visual Studio 2010