Managing Stack Trace Passwords

Since its inception, Eazfuscator.NET has offered the ability to encrypt the names of types, members, and other assembly symbols with a secret password. Once encryption is applied, the assembly remains obfuscated but the original symbol names can be retrieved back whenever such neccessity arises. The most common usage scenario is…

Read more »

Clearing the Fog: Obfuscators vs Protectors

Eazfuscator.NET is an obfuscator for .NET platform designed to protect .NET software from reverse-engineering and intellectual property theft. It belongs to the category of obfuscators.

There is another tool category that claims to be as useful as obfuscation: protectors.

While both obfuscators and protectors promise the same benefits, they are very different in instrumental parts of the implementation.

Read more »

Homomorphic Encryption of Code

Previously we announced that we discovered a novel way of cryptographically secure obfuscation of software. This article gives a brief illustrated overview of discovery. It also provides some practical examples based on existing implementation of technology in Eazfuscator.NET obfuscator for .NET platform. Introduction Obfuscation is relatively new field of cryptography…

Read more »

Improved NuGet Integration

NuGet became an essential part of the development for .NET platform over the recent years, as it provided the convenience of creating and consuming the packages.

The packages are easy to discover and use with the help of Package Manager UI in Visual Studio. In reality, adding a package reference to a project often comes down to a single line:

    <!-- The line below adds Contoso.HelpfulLibrary NuGet package to the project -->
    <PackageReference Include="Contoso.HelpfulLibrary" Version="1.3.0" />

Once the package reference is in place, Contoso.HelpfulLibrary can be used by the code.

NuGet does all the heavy lifting. It automatically downloads the package (if it is not downloaded yet), adds an assembly reference to the project, copies required package files at the build time and so on.

Development tends to be much easier with NuGet. And even more so since it also allows to consume tools.

Read more »

Automatic Handling of Windows Forms Data Binding

Many users of Eazfuscator.NET use Windows Forms technology to build application UI. Windows Forms provides a set of controls that allows to display data and interact with a user. Sometimes, the displayed data is not set to UI controls directly. A common practice is to use a data binding mechanism that allows to tie the object properties by name. To get property values by name, data binding uses Reflection API.

Consider a simple code that creates a list of products:

class Product  
   public int ID { get; set; }
   public string Title { get; set; }
   public string Description { get; set; }

// …

var products = new List<Product>  
   new Product { ID = 1, Title = "Juice", Description = "Juice description" },
   new Product { ID = 2, Title = "Tea", Description = "Tea description" },
   new Product { ID = 3, Title = "Coffee", Description = "Coffee description" }

Read more »

Elements of Homomorphic Code Encryption

I have great news to share. We were able to identify and leverage some useful properties of a partially homomorphic cryptosystem to achieve a considerably better obfuscation results. How much better? Up to the point where parts of a program remain totally unobservable unless they hit the actual execution path.…

Read more »