Trinity Obfuscator
  • Welcome to Trinity Info Desk
  • FAQ
    • File won't work after obfuscation
    • File detected as virus
    • My personal data
    • My file didn't come through
  • Protections
    • Code Protection
      • Control Flow
        • Dynamic Control Flow
        • Duplicate Control Flow
      • Constants
        • Mutate Constants
        • Constants Melt
        • Expression Constants
        • Math Protection
      • Junk Dump
      • Invalid Metadata
      • Module Flood
    • Name Protections
      • Name Protection
      • Reference Proxy
      • Locals to Fields
      • Decompiler Crash
      • Type Scrambler
    • Code Convertion
      • Virtualization
      • Call to Calli Conversion
    • Anti Protections
      • Force Elevation
      • Anti VM
      • Anti DnSpy
      • Anti Debug
      • Anti Dump
      • Anti Tamper
      • Anti De4dot
      • Process Monitor
      • Integrity Check
    • Free Protections
      • Executable Packer
      • String Encryptor
Powered by GitBook
On this page

Was this helpful?

  1. Protections
  2. Code Protection
  3. Control Flow

Duplicate Control Flow

This protection mangles code in the method so that it is harder for a reverse engineer to understand it.

Before Obfuscation
protected override void Dispose(bool disposing)
		{
			bool flag = disposing && this.components != null;
			if (flag)
			{
				this.components.Dispose();
			}
			base.Dispose(disposing);
		}
After Obfuscation
protected override void Dispose(bool disposing)
		{
			bool flag = disposing && this.components != null;
			for (;;)
			{
				IL_11:
				int linkHoverColor = -1235685033;
				for (;;)
				{
					switch (<Module>.set_LinkHoverColor(linkHoverColor))
					{
					case 0:
						this.components.Dispose();
						linkHoverColor = -1235685031;
						continue;
					case 1:
						linkHoverColor = -1235685034;
						continue;
					case 2:
						base.Dispose(disposing);
						linkHoverColor = -1235685029;
						continue;
					case 3:
						linkHoverColor = -1235685030;
						continue;
					case 4:
						goto IL_11;
					case 5:
						linkHoverColor = (flag ? -1235685028 : -1235685030);
						continue;
					}
					return;
				}
			}
		}
PreviousDynamic Control FlowNextConstants

Last updated 6 years ago

Was this helpful?