Constant Disintegration


This protection disintegrates the integers of your application in several arithmetic, logical and conditional operations dynamically so that the original value cannot be obtained.


This protection is available in the editions:

Community Professional Enterprise

Parameters

  • Intensity: Determine the amount of operations that will be generated to disintegrate the values.
  • Type of operations: It allows to select what type of operations will be used to disintegrate the values.

    • Arithmetic
    • Mathematics Professional
    • Conditionals
    • Logic
    • External
    • Conversion
    • Disintegration
    • Native Enterprise
  • Strings: Determines if the strings and texts of the application should be disintegrated.

Modes

  • Normal: Disintegrates integer constants based on dynamic operations.

Code example

  • Before
Program.n += 3 * args.Length;
Console.WriteLine($"Hello World ! Current processes {n}");
Console.ReadKey();
  • After
int[] array = new int[] {
    4,
    1,
    296526,
    767790,
    -517058,
    517058,
    38748320
};
checked {
    object[] array4 = new object[array3[num4 - num5]];
    array4[string.Empty.Length] = ( < Module >.VARFLAG_FREPLACEABLE[4] | 1189635 % 475854) - <
    Module >.VARFLAG_FREPLACEABLE[(94010 < 500724) ? 0 : 537936];
    array4[array[ " ͕ ".Length] * ( - 160764 + 829328 > > Convert.ToInt32( " 13 ", 16))] = " ෣ ᦐ ";
    array4[(Convert.ToInt32( " 1000011100000110110 ", 2) | 250883 * 2) ^ Marshal.SizeOf(typeof(MoveBufferArea))] = unchecked(Marshal.SizeOf(typeof(__9__2_0)) - ((64135 ^ 842523) + checked(438545 - 732342)));
    int num6;
    if (((18665 % 7466 > Convert.ToInt32( " fffd0bb9 ", 16)) ? 1 : 0) == 0 / 2133) {
        num6 = -767297 - -110690;
    }
    else {
        num6 = ~ - 133694;
    }
    switch (unchecked(checked(unchecked(570830 - -870451) + ConcurrentDictionary__2.TargetedPatchingOptOutAttribute) + ~ (~ - 988634))) {
    case 0:
        num33 = (71311664 | -1900016382 | ((51665 == 51665) ? -206181069 : 495292));
        break;
    case 1:
        {
            int num35;
            switch (( - 79617 - -79617) % < Module >.SafeLocalAllocHandle[1]) {
            case 0:
                {
                    int num34;
                    if ( - 58016 > 876632) {
                        num34 = 602830;
                    }
                    else {
                        num34 = 2;
                    }
                    num35 = num34;
                    break;
                }
            case 1:
                num35 = (790119523 | -656071033);
                break;
            }
            num33 = num35;
            break;
        }
    }
    array7[num33] = (int) array2[((62301 < 630141) ? -255426 : -270726) + (83010 | 172416)]; <
    Module >.get_InheritanceFlags(ref str3, array7);
}
Console.WriteLine(str + str2 + str3 + (ConcurrentDictionary__2.add_ReflectionOnlyNamespaceResolve * checked((array[6] > >
(6 | 4)) - unchecked(833425 + -830673) * Convert.ToInt32( " 334 ", 8))).ToString());
Console.ReadKey();

Exclusions

  • Exclude with attribute

    Include this attribute in your source code:

[Obfuscation(Exclude = true, Feature = "ConstantsMutation")]
  • 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.