# Code Obfuscation Settings - NiceProtect Manual

> Guide to configuring code obfuscation in NiceProtect. Protect your proprietary algorithms and logic from reverse engineering.

Canonical HTML: <https://www.niceprotect.com/help/obfuscation.htm>

## Metadata Obfuscation

**DotFix NiceProtect** introduces a revolutionary approach to software security: **Metadata and RTTI Obfuscation**. Unlike standard executable packers that only compress the outer shell of your file, our engine deeply analyzes and sanitizes the internal structures of your compiled application.

#### The Problem: "Naked" Compiled Code


When you compile applications in **Delphi**, **Free Pascal (Lazarus)**, or **Visual Basic 6.0**, the compiler embeds a massive amount of metadata (RTTI - Run-Time Type Information) into the final executable. This includes:

- **Class Names:** e.g., `TMainForm`, `TLicenseChecker`.

- **Event Handlers:** e.g., `ButtonRegisterClick`, `CheckSerialOnClick`.

- **Control Names:** e.g., `EditPassword`, `btnUnlock`.

- **Public Methods:** e.g., `IsValidKey`, `DecryptData`.

**Security Risk:** A reverse engineer opening your application in a decompiler sees this map immediately. They don't need to understand Assembly language; they simply search for "Registration" or "Password" and find the exact location of your protection logic in seconds.

![Comparison: Original vs Obfuscated Code Structure](https://www.niceprotect.com/images/help/obfuscation.png)

#### The Solution: Deep Symbol Renaming

**DotFix NiceProtect** leverages 20+ years of experience in decompiler development to do the reverse: permanently erase these semantic clues.


Our obfuscation engine parses the binary structure, builds a dependency graph of all objects, and renames them to meaningless, random strings.

**Before Obfuscation:**

*`frmLicense`, `txtPassword`, `btnCheckKey`*

**After DotFix Obfuscation:**

*`XF92a`, `zQ12`, `L_0f2`*


The logic remains identical, but the context is destroyed. An attacker looking for "AuthForm" will find nothing.

#### Supported Technologies


Our unique engine supports deep obfuscation for:

- **Borland / Embarcadero Delphi:** From Delphi 3 up to the latest **Delphi 13 Florence** (including all XE versions).

- **Free Pascal:** Applications compiled with **Lazarus** IDE.

- **Visual Basic:** Native Code applications built with VB 5.0 and 6.0.

#### Why This Matters for Security


Many protectors claim to "obfuscate" code but only apply *Control Flow Flattening* (jumping around in code). While useful, it leaves the map of your application (RTTI) intact. **DotFix NiceProtect** is one solutions on the market that combines [Code Mutation](https://www.niceprotect.com/help/mutation.htm) with **Metadata Stripping**, offering a complete defense-in-depth strategy.

**Important:** Due to the aggressive nature of this renaming, certain coding patterns (like finding a form by its string name) may need adjustment. Please review the [Obfuscation Restrictions](https://www.niceprotect.com/help/obfuscation_restrictions.htm) guide before enabling this feature.
