DEV Community

Cover image for Skater .NET Obfuscator secures your .NET 6 apps

Posted on


Skater .NET Obfuscator secures your .NET 6 apps

To test how Skater obfuscator helps to protect .NET 6 Windows Forms application, first we need to create new .NET 6 Windows Forms desktop project in Visual Studio.
To test how Skater Obfuscator protects WinForms .NET 6 assemblies open Visual Studio 2022 (or later) and create new Windows Forms .NET project. To run and create such projects your Visual Studio must be version 17.0.1 or later.
Image description
Just to remind you: the main .NET 6.0 idea is to compile a Windows Forms app and then run it under any system. Not Windows only.
The .NET 6 actual application is a dll library. Its .NET source code as any other .NET framework code is compiled into CIL/MSIL. .NET 6 dll assembly contains code which the Common Language Runtime (CLR) executes. It can be disassembled (read ‘hacked’:) by anybody else. We still need to protect that kind of .NET assemblies by obfuscating them.
Skater supports .NET 6 projects where the publish output is a DLL file (Framework-dependent deployment). When the publish output is an EXE file that calls .NET 6.0 DLL (Self-contained deployment) the final DLL has to be obfuscated as well. There are two types of .NET 6.0 apps can be built:
Framework-dependent deployment. As the name implies, framework-dependent deployment (FDD) relies on the presence of a shared system-wide version of .NET 6 on the target system. Because .NET 6 is already present, your app is also portable between installations of .NET 6. Your app contains only its own code and any third-party dependencies that are outside of the .NET 6.0 libraries. FDDs contain .dll files that can be launched by using the dotnet utility from the command line. For example, dotnet app.dll runs an application named app.
Self-contained deployment. Unlike FDD, a self-contained deployment (SCD) doesn't rely on the presence of shared components on the target system. All components, including both the .NET 6 libraries and the .NET 6 runtime, are included with the application and are isolated from other .NET 6 applications. SCDs include an executable (such as app.exe on Windows platforms for an application named app), which is a renamed version of the platform-specific .NET 6 host, and a .dll file (such as app.dll), which is the actual application.
The .NET 6 WinForms app development is following the Self-Contained Deployment (SCD) concept.
Please read more

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git