Question:
I'm trying to obfuscate an .exe file obtained after compiling my .NET 8 project with the "produce a single file" option, the problem is that no obfuscator works on it, I wanted to know if anyone knows why?
Answer:
Skater Obfuscator protects .NET 8 assemblies. It supports .NET 8 projects where the publish output is a DLL file (Framework-dependent deployment). When the publish output is an EXE file that calls .NET 8.0 DLL (Self-contained deployment) the final DLL has to be obfuscated as well. There are two types of .NET 8.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 8 on the target system. Because .NET 8 is already present, your app is also portable between installations of .NET 8. Your app contains only its own code and any third-party dependencies that are outside of the .NET 8.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 8 libraries and the .NET 8 runtime, are included with the application and are isolated from other .NET 8 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 8 app development is following the Self-Contained Deployment (SCD) concept. Let’s take a look at what the final binaries were compiled in the output folder of the WindowsFormsApp project.
You can see two main assemblies presented inside the output folder: WindowsFormsApp.exe WindowsFormsApp.dll This pair of files represents the .NET 8 Self-Contained Deployment (SCD) concept. The final output for that Windows Forms app includes the WindowsFormsApp.exe executable, which is a renamed version of the platform-specific .NET 8 host, and the WindowsFormsApp.dll library file, which is the actual application. So, the WindowsFormsApp.exe executable is the app’s starter with necessary predefined .NET 8 utilities compiled inside the exe. Ideally the exe file is cross-platform executable. The executable is binary file compiled in machine codes. This file is cannot be decompiled and do not need to be obfuscated.
Finally, you have to concentrate on WindowsFormsApp.dll assembly protection. Read instructions how Skater secures .NET 8 source codes
Top comments (0)