Starting with Eazfuscator.NET version 2021.1, the Software Development Kit (SDK) for .NET is available as a public NuGet package.
SDK provides programmatic access to some specific features of Eazfuscator.NET. The most prominent one is stack trace decoding.
Say you have an obfuscated stack trace or a log file and want to "deobfuscate" it, provided that you have the proper secret knowledge (password) at hand. All you need for that to work is to reference the official Eazfuscator.NET SDK NuGet package. Here is how it can be achieved in code:
using Gapotchenko.Eazfuscator.NET.SDK; string stackTrace = SymbolDecoder.Decode("<obfuscated stack trace>", "secret-password"); Console.WriteLine(stackTrace);
SymbolDecoder.Decode is a static function that covers the most common usage scenario. It is simple but you may need more. For example, stack trace decoding does take some time and you may prefer to use the cancellable variant:
stackTrace = SymbolDecoder.Decode("<obfuscated stack trace>", "secret-password", cancellationToken);
Or if you need to decode a multitude of stacks/files with the same password, the simplest variant of
SymbolDecoder.Decode may put you into trouble because it performs key derivation operation each and every time the function is called. And it tends to be relatively slow, as the key derivation function has to be computationally intensive to deter brute-force attacks on a password.
To overcome that inherent performance bottleneck, symbol decoder can be created beforehand and then reused multiple times with a great efficiency:
using Gapotchenko.Eazfuscator.NET.SDK; // Create symbol decoder beforehand. The creation operation is on a slower side. var decoder = SymbolDecoder.Create("secret-password"); // Reuse the decoder multiple times. Consequent decoding operations are fast. stackTrace = decoder.Decode("<obfuscated stack trace 1>"); stackTrace = decoder.Decode("<obfuscated stack trace 2>"); // ... stackTrace = decoder.Decode("<obfuscated stack trace N>"); // Once you finish with symbol decoder, it is a good practice to dispose it to clean up the remnants of cryptographic material from memory. decoder.Dispose();
Eazfuscator.NET SDK can be employed for various applications such as logging, diagnostics, data collection, automated error reporting et cetera. It is all up to your needs and imagination!
Give Eazfuscator.NET a try