Control Flow


This protection modifies the flow of methods so that it cannot be interpreted.


This protection is available in the editions:

Professional Enterprise Admits © Smart Native Protection System


The methods will perform the functions and interpret the instructions exactly as they are in the original code, this protection divides the method into blocks so that the order of execution of each of the instructions cannot be deduced, in short it converts the code as if it were 'spaghetti'.

Parameters

  • Intensity: This parameter is an integer value of 0 to 100, indicates the size of each block of code divided.

  • Depth: This parameter defines the depth of the generated expression if the selected mode is expression or advanced.

  • Invalid code: This parameter is a Boolean value that indicates whether invalid code will be inserted.

  • Type of operations: This parameter indicates which operations must be generated to control the flow of the code.

    • Advanced: Generates advanced operations that directly affect the flow of code.
    • © Smart native protection system: It generates advanced operations with native methods that directly affect the flow of code. Enterprise

      With this parameter the difficulty to solve the original flow increases considerably.

Modes

  • Normal: Use a simple variable to perform the operations.

  • Expression: Encode the variable using dynamically generated expressions.

  • Advanced: Encode the variable using dynamically generated native x86 expressions and hiding native calls with dynamic operations to avoid decoding.

    This mode is the most advanced available for flow control protection, for that reason we recommend its use.

Exclusions

  • Exclude with attribute

    Include this attribute in your source code:

[Obfuscation(Exclude = true, Feature = "ctrlflow")]
  • Exclude from the interface

    You can exclude this protection from the methods or classes you want.

Compatibility

Platform Compatibility
.NET Framework Full compatibility, compatible versions: 4.8, 4.7.2, 4.7.1, 4.7, 4.6.2, 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5, 4.0, 3.5, 3.0, 2.0.
ASP .NET Full compatibility, compatible versions: 4.8, 4.7.2, 4.7.1, 4.7, 4.6.2, 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5, 4.0, 3.5, 3.0, 2.0.
Windows Phone Compatibility subject to the version of the framework, compatible in general aspects.
WPF Full compatibility, available in all versions.
SQL CLR Applications Compatibility subject to the version of the framework, compatible in general aspects.
Silverlight Compatibility subject to the version of the framework, compatible in general aspects.
Xamarin.iOS Partial compatibility, compatible versions: 10.8. Xamarin is not fully adapted in dotnetsafer
Xamarin.Mac This version is under development, availability has not been checked.
Xamarin.Andoid This version is under development, availability has not been checked.
.NET Core Full compatibility, compatible versions: 3.1, 3.0, 2.2, 2.1, 2.0.
.NET Standard Library Full compatibility, compatible versions: 2.1, 2.0.
Unity Compatibility subject to the version of the framework, compatible in general aspects.
UWP Compatibility subject to the version of the framework, compatible in general aspects.
Satellite Assembly Suppor Compatibility subject to the version of the framework, compatible in general aspects.
WinRT Compatibility subject to the version of the framework, compatible in general aspects.
Integrated ClickOnce Compatibility subject to the version of the framework, compatible in general aspects.
Managed C++ (Mixed Mode) Assembly Support Compatibility subject to the version of the framework, compatible in general aspects.