Ein Referenzergebnis aufzeichnen
Kompiliere den folgenden C#-Code in einem Release-Konsolenprojekt. Die Ausgabe muss proof=42 lauten. Kopiere das gesamte Ausgabeverzeichnis vor dem Austausch. Dieses kleine Beispiel ist ein reproduzierbarer Einstieg und kein Nachweis für alle Pfade einer Produktionsanwendung.
Original und Ergebnis vergleichen
Lade die verwaltete DLL hoch und lege das Ergebnis unter dem ursprünglichen Namen in den kopierten Ordner. Starte es mit dotnet: Die Ausgabe soll weiterhin proof=42 sein. Vergleiche mit ILSpy die internen Namen Proof und Compute. Bibliotheken behalten öffentliche API-Verträge; lesbare öffentliche Namen bedeuten allein keinen Fehler. Ein anderer Hash beweist lediglich andere Bytes.
Jede aktive Schutzschicht prüfen
Bei aktivierter Zeichenfolgenverschlüsselung repräsentative Strings untersuchen und ausführen. Konstanten und Metadaten sind nicht dasselbe wie ausführbare String-Ladebefehle. Bei Kontrollflussverschleierung alle relevanten Zweige testen. Optionen, Hashes und Ergebnisse aufbewahren. Danach Fehlerpfade, asynchrone Methoden und Abhängigkeiten der echten Anwendung prüfen. Kein solcher Test macht Reverse Engineering unmöglich.
internal static class Proof
{
internal static int Compute(int x) => x * 6;
}
public static class Program
{
public static void Main() => System.Console.WriteLine($"proof={Proof.Compute(7)}");
}dotnet new console -n ProtectionProof -f net8.0 → dotnet build ProtectionProof -c Release → dotnet ProtectionProof/bin/Release/net8.0/ProtectionProof.dll
proof=42 → proof=42
2026-11-06 · FreeObfuscator · .NET 8
Quellcode und aufgezeichnete Testergebnisse herunterladen