Code and data always come together.
Previously Eazfuscator.NET delivered code virtualization feature. Now is the time for data virtualization.
I'm sure you often see this dilemma:
class LicenseManager
{
bool _IsLicensed; // <-- here
// ...
}
Does it look too easy for an attacker to spot and play around? Sure.
At this very moment the programmer imagines a lot of crazy schemes he could roll out to harden this part of the algorithm. A few moments later: "... nah... I need to draw the line somewhere, let it be bool".
Behold. Eazfuscator.NET can help you here. Meet data virtualization:
using System.Reflection;
class LicenseManager
{
[Obfuscation(Feature = "virtualization", Exclude = false)]
bool _IsLicensed;
// ...
}
Not only the code, but data can be virtualized too. The obfuscation directive applied to the field above instructs Eazfuscator.NET to virtualize the field during obfuscation.
Virtualization changes the way the data are represented in memory and on disk. The resulting data representation is something completely different and unknown to an external observer, but functionally equivalent to the original algorithm during runtime.
So, basically it means that your bool field is gone. It gets replaced with a specialized data container that stores the data in virtualized form.
Data virtualization is available since Eazfuscator.NET 5.1.
P.S. If you have a project that was previously obfuscated by an earlier version of Eazfuscator.NET and want to take the benefits of data virtualization then you may need to upgrade the compatibility version as shown here (otherwise Eazfuscator.NET will complain with a warning whenever you try to virtualize a field)