Laden...

WinFrm vor Decompiling schützen

Letzter Beitrag vor 9 Jahren 5 Posts 1.471 Views
WinFrm vor Decompiling schützen

Hallo!

Hat jemand eine Idee wie man den Quellcode einer Windows-Forms Anwendung vor .NET Decompiling Anwendungen (z.b. ILSpy oder dotPeek) schützen kann?

Beispiel:
Es geht um eine Anwendung in der man z.b. Verbindungsinformationen zu anderen Datenbanken hinterlegen bzw. verwalten kann.
Natürlich kann man jetzt eine Funktion erstellen mit der die Verbindungsinformationen verschlüsselt und erst dann in eine Datenbank ablegt. Aber die Funktion zum entschlüssel kann mittels Decompiling einfach ausgelesen bzw. dann nachgebaut werden.

Hat hier jemand eine Idee?
Lg myGil

Schon gefühlte 1000 mal im Forum besprochen
[FAQ] NET Assembly vor Disassembling schützen (Obfuscator)

Um hier einfach nochmal einzuhaken:

So eine Verwaltung wie sie vom TE angesprochen wird, macht natürlich nur Sinn, wenn man die Daten wieder entschlüsseln kann. Es muss also der Schlüssel gespeichert werden.

Wie ist hier das sicherste Vorgehen? Tatsächlich in den Code schreiben und "obfuscaten"?

Wenn man etwas verschlüsselt und man dessen Inhalt wieder bekommen will, dann braucht man natürlich den entsprechenden Schlüssel.
.NET hat für gewisse Dinge bereits entsprechende Container, wie zB. die ProtectedData-Class. Man muss sich nur für den jeweiligen Anwendungsfall den besten Weg suchen.

Der wohl mit sicherste Platz fürs Keys ist nun mal auf Window der Machine Keystore.
Deswegen heisst er so 😉

Obfuscation ist jedenfalls KEIN Weg für Code-Sicherheit.
Selbst C++ kann dekompiliert werden! Und es gibt sogar Tools, die Assembler-Infos teilweise wieder lesbar machen.

Das muss nun mal jedem Entwickler bewusst sein: wenn man etwas im Rohzustand braucht, wie ein Klar-Passwort für eine externe Verbindung, wird man IMMER, absolut ohne Ausnahme, spätestens durch RAM-Spy an das Ding kommen - egal wie viel Aufwand man in die persistente Speicherung rein steckt.
Und Forscher haben es sogar geschafft diese Information für mehrere Stunden im Speicher zu halten, indem dieser massiv gekühlt wurde.
Alles nur eine Frage des Aufwands.

Hallo!

Vielen Dank für eure Antworten!
Die halfen schon mal sehr bzw. werde mich hier noch deutlich schlauer machen!

lg myGil