Dotfuscator
Encyclopedia
Dotfuscator is software used for obfuscation
of .NET
assemblies. Among its abilities are mangling of identifier names into unreadable characters, but also changing control flow into being more unreadable at the IL-level for a human and other relatively advanced changes.
Note that name mangling interferes with reflection and whenever it is an issue, identifiers that are used with e.g. Windows Forms
or WPF data binding have to be manually excluded.
Control flow
changes are designed in such a way that the JIT compiler is able to unravel them and produce identical code. They're not known to introduce performance issues.
Other possible change is watermarking each executable/DLL
to make it easy for the copyright holder to harass the copy owner through legal means in case it spreads through file sharing
.
The "free" edition available to Visual Studio owners doesn't do much else than name mangling.
Obfuscation
Obfuscation is the hiding of intended meaning in communication, making communication confusing, wilfully ambiguous, and harder to interpret.- Background :Obfuscation may be used for many purposes...
of .NET
.NET
.NET may refer to:* .NET Framework, a software framework by Microsoft* .net, a top-level domain* .net * .NET Passport, an old name for Windows Live ID* .NET Messenger Service...
assemblies. Among its abilities are mangling of identifier names into unreadable characters, but also changing control flow into being more unreadable at the IL-level for a human and other relatively advanced changes.
Note that name mangling interferes with reflection and whenever it is an issue, identifiers that are used with e.g. Windows Forms
Windows Forms
Windows Forms is the name given to the graphical application programming interface included as a part of Microsoft .NET Framework, providing access to native Microsoft Windows interface elements by wrapping the extant Windows API in managed code...
or WPF data binding have to be manually excluded.
Control flow
Control flow
In computer science, control flow refers to the order in which the individual statements, instructions, or function calls of an imperative or a declarative program are executed or evaluated....
changes are designed in such a way that the JIT compiler is able to unravel them and produce identical code. They're not known to introduce performance issues.
Other possible change is watermarking each executable/DLL
DLL
DLL may refer to:* Data link layer, a layer in the OSI network architecture model* Delay-locked loop, a device to reduce clock skew in digital circuits* Doubly linked list, a data structure in computer programming...
to make it easy for the copyright holder to harass the copy owner through legal means in case it spreads through file sharing
File sharing
File sharing is the practice of distributing or providing access to digitally stored information, such as computer programs, multimedia , documents, or electronic books. It may be implemented through a variety of ways...
.
The "free" edition available to Visual Studio owners doesn't do much else than name mangling.