Code schützen

20/04/2010 - 11:55 von Manuel Kobloch | Report spam
Hallo Community,

da hier einige Experten anwesend sind, möchte ich die Frage mal in die Runde
werfen. Ich habe hier schon nach Reactor (ist so ein Tool) und Obfusicator
gesucht, aber nichts gefunden.

Und zwar würde mich interessieren, wie ihr euren Code schützt. Schließlich
kann man den Quellcode ohne weiteres mit .net Reflector aus der Exe Datei
gewinnen. Wenn man auf eine Datenbank zugreift, z.B. Access ist es ein
immenses Sicherheitsrisiko. Ich habe zwar schon viel gegoogelt, aber noch
keine richtige allgemein anerkannte Lösung gefunden.

Man könnte z.B. Obfusicatoren verwenden, die den Code sehr unleserlich
machen. Das Hilft aber nicht weiter, wenn das PW zur Datenbank dennoch
unverschlüsselt drin zu sehen ist. Irgendwann kommt der Angreifer dann
wieder drauf.

Manche können Strings auch zusàtzlich verschlüsseln, so z.B. das oben
erwàhnte .Net Reactor. Doch in etlichen Foren heißt es, dass man sowas
leicht knacken kann (ohne aber einen Beweis zu liefern).

Man kann mit der Ngen.exe aber auch die Exe in eine Art Native Code
verwandeln. Doch geht damit die plattformübergreifende Kompatibilitàt
flöten. Man kann den Prozess zwar auch im Installer integrieren, Doch wàre
die ursprüngliche Datei einfach aus der CAP Datei zu extrahieren und dann
hàtte man das selbe Problem wieder.

Wie macht ihr das?

Grüße

Manuel
 

Lesen sie die antworten

#1 Thomas Scheidegger
20/04/2010 - 12:16 | Warnen spam
Hallo Manuel

das PW zur Datenbank ...unverschlüsselt drin



dies ist ein ganz anderes Problem als MSIL-Code zu schützen!
Sollte man konzeptionell eh ganz anders lösen.
Ein solches PW sollte entweder dem User oder Intranet-Infrastruktur
zugeordnet werden, gehört nicht in die EXE gepackt.


Quellcode ...mit .net Reflector aus der Exe Datei gewinnen. Man könnte
z.B. Obfuscator



richtig, 'einfache' Obfuscators sind die einzigen,
welche die .NET -Assemblies und -Konzepte nicht
völlig zweckentfremden!

Es gibt ein paar kommerzielle Tools von
(sehr!) kleinen Firmen, die
die Assemblies völlig umbauen
und (oft gar zusammen mit der .NET Runtime)
mit eigenem, native Code 'verpacken'.
Da bleibt sehr wenig mehr von .NET übrig,
verletzt gewisse Redistribution/Lizenz-Vorgaben von MS
und ist aus Wartungs-Gründen (.NET Hotfixes/Service Packs)
àusserst nachteilig.
Plus, jede .NET App belegt Festplatten & RAM (inkl. Runtime!)
separat nochmals, kein Code-sharing möglich!
Und man ist dem (kleinen) Hersteller absolut ausgeliefert!

Daher kann ich hier nicht ausdrücklich genug
von allen Tools abraten, die über einfaches obfuscating hinausgehen!


Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen