Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Projekt-Verschlüsselungssoftware
Dolce
myCSharp.de - Member



Dabei seit:
Beiträge: 197
Herkunft: Luzern CH

Themenstarter:

Projekt-Verschlüsselungssoftware

beantworten | zitieren | melden

Hallo zusammen

Mich würde es interessieren, welche Verschlüsselungssoftware Ihre bei euren Projekten nutzt.
Damit meine Ich, ich möchte den Source-Code vor dem Rollout verschlüsseln, damit das auslesen mittels Reflection etwas erschwert wird.

Beste Grüsse
Dolce
Wer Rechtschreibfehler findet, darf sie behalten.
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Member

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1512
Herkunft: Düsseldorf

beantworten | zitieren | melden

Verschlüsseln geht nicht, wie soll der PC es sonst ausführen?
Und wenn das Programm sich selbst entschlüsselt, muss der Key irgendwo stehen und den kann man dann wieder auslesen und den Code selber entschlüsseln.
Und Reflection kannst Du auch nicht verhindern, das liest nur die Metadaten jeder .NET-Assembly und ohne diese Metadaten funktioniert .NET nicht mehr.

Reflection dürfte auch weniger das Problem sein, sondern dass jemand deine Assembly dekompilieren möchte, richtig?
Auch das kannst Du nicht verhindern, aber Du kannst es erschweren, den Code zu verstehen. Dafür gibt's Obfuscation, bzw. Tools, die das anbieten.
Empfehlen kann ich da aber nichts, ich habe damit noch keine wirklichen Erfahrungen, aber wenn Du nach "Obfuscation" suchst, findest Du garantiert einige Artikel im Internet.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16103

beantworten | zitieren | melden

Das Thema Obfuscation kommt hier im Forum alle halbe Jahr hoch und zeigt immer wieder: lohnt sich nicht. Hättest einfach ein paar Sekunden in die Suche stecken können :-)
Forumsuche nach "Obfuscator"

Mittlerweile gibt so gute Deobfuscators, dass jegliche Obfuscation mit sehr hoher Qualität aufgelöst werden kann.
Derjenige, der weiß, wie man an den ILCode kommt, der nimmt einfach nen Open Source Tool und hat in wenigen Minuten C# Code.

Die einzige wirklich sichere Variante ist ein nativer Weg, zB. mit Rust, C++ oder .NET Native (das seit .NET Core 3 (maßgeblich) über den sogenannten Ready to Run Weg funktioniert).
https://docs.microsoft.com/de-de/dotnet/core/deploying/ready-to-run
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Jompikumpi
myCSharp.de - Member



Dabei seit:
Beiträge: 29

beantworten | zitieren | melden

Zitat von Abt
Die einzige wirklich sichere Variante ist ein nativer Weg, zB. mit Rust, C++ oder .NET Native (das seit .NET Core 3 (maßgeblich) über den sogenannten Ready to Run Weg funktioniert).
https://docs.microsoft.com/de-de/dotnet/core/deploying/ready-to-run
Wie erzeugt man ausschließlich .NET Native mit ReadyToRun?

Denn ist nicht üblicherweise auch der IL Code enthalten? Wo liegt da der Vorteil bzgl. Obfuscation?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16103

beantworten | zitieren | melden

Uh, da muss ich zugeben, dass mein Begleitsatz nich sonderlich gut ist. Eigentlich wollte ich ausdrücken, dass mit .NET Core 3 und Ready To Run .NET Native maßgeblich breiter bekannt ist.

Aber um die Frage zu beantworten:
Ursprünglich kommt .NET Native aus CoreRT und hier hat der Compiler IIRC den ILCode in C++ umgewandelt und das Resultat nativ kompiliert (nicht festnageln, ob das mittlerweile immer noch so funktioniert :-) )
Der ILCode ist auch nicht Bestandteil des Endresultats.

Der Invest in .NET Native ist mittlerweile sehr hoch; Michal Strehovsky (ist im .NET Runtime Team von Microsoft) hat nen Repo (https://github.com/MichalStrehovsky/zerosharp), in dem er zeigt wie man mit C# völlig natives Zeug umsetzen kann bzw. hat er viele verschiedene Repos, in dem er die native Nutzungsmöglichkeiten zeigt.
https://github.com/MichalStrehovsky
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7559
Herkunft: Waidring

beantworten | zitieren | melden

Hallo,

native Übersetzung für .NET läuft unter "AOT" (ahead of time compilation) und wird mittels crossgen2 durchgeführt.
Weitere Infos können z.B. in Conversation about crossgen2 nachgelesen werden.

Aktuell passiert da recht viel im "runtimelab"-Repo auf GitHub, da es für einen wirklichen produktiven Einsatz mit voller Unterstützung seitens .NET doch ein paar Sonderfälle (v.a. alles reflektion-basierte) gibt die noch gelöst werden müssen.

mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers