Scratch Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 Hi, Java Apps lassen sich ja spielend leicht dekomilieren. Ist das bei C# bzw. bei den .NET Apps genauso? Bzw. was für Möglichkeiten habe ich meine C# Apps davor zu schützen? Grüße scratch Zitieren
TDM Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 Ist das bei C# bzw. bei den .NET Apps genauso? .NET Reflector Bzw. was für Möglichkeiten habe ich meine C# Apps davor zu schützen? Es gibt teure (mehr oder wenig sinnvolle) Verschlüsselungsprogramme für Quelltext, aber ob man die braucht... OT: "Java" und "(de-)kompilieren"... Da richten sich meine Nackenhaare auf. :floet: Zitieren
Gateway_man Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 (bearbeitet) Hi, Java Apps lassen sich ja spielend leicht dekomilieren. Ist das bei C# bzw. bei den .NET Apps genauso? Bzw. was für Möglichkeiten habe ich meine C# Apps davor zu schützen? Grüße scratch Ja geht bei C# genauso leicht. Visual Studio liefert in der Professional Version eine Art verscheiherungstool mit, welches du wie folgt aufrufst: Öffne Visual Studio: ==> Extras ==> Dotfusicator Community Version Damit kannst du dein Projekt bearbeiten lassen, sodass sämtlich variablen sowie funktionen umgenannt werden und auch für einen externen nicht mehr leserlich gemacht werden. Ich werde bei gelegenheit ein vorher nachher vergleich nachliefern. Lg Gateway *Änderung: Hier eine kleine Test Function vorher sowie nachher: Vorher: Public Function test(ByVal summand1 As Integer, ByVal Summand2 As Integer) As Integer Return (summand1 + Summand2) End Function Nachher: Public Shared Function a() As c If Not c.b Then Dim c As Object = c.c ObjectFlowControl.CheckForSyncLockOnValueType(c) SyncLock c If Not c.b Then AddHandler e.d.Shutdown, New ShutdownEventHandler(AddressOf c.a) c.b = True End If End SyncLock End If Return c.a End Function Ist jetzt in VB geschrieben, geht jedoch auch in C#. Bearbeitet 12. Oktober 2009 von Gateway_man Zitieren
Scratch Geschrieben 12. Oktober 2009 Autor Geschrieben 12. Oktober 2009 Danke schonmal für die schnellen Reaktionen ... @ TDM: "interpretiert" meinetwegen ... nur wie nennt man da das Gegenteil Zitieren
Guybrush Threepwood Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 Bzw. was für Möglichkeiten habe ich meine C# Apps davor zu schützen? Prinzipiell gar keine. Du kannst es höchstens schwerer/umständliocher machen. Der oben genannte Dotfuscator ist eine Möglichkeit. Allerdings macht der afaik Probleme wenn du Dlls verschleiern willst. Ansonsten gibts noch von Microsoft eine Code Protection Engine wo der Quellcode verschlüsselt wird und erst zur Laufzeit entschlüsselt wird. Zitieren
Scratch Geschrieben 12. Oktober 2009 Autor Geschrieben 12. Oktober 2009 @Guybrush Threepwood: Und das entschlüsseln ist aufwändig? Die beste Methode ist also doch noch gutes altes C/C++ ... es ist zwar auch nicht unmöglich aber aufwändig ... Zitieren
Guybrush Threepwood Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 @Guybrush Threepwood: Und das entschlüsseln ist aufwändig? Ich würde mal sagen aufwändiger. Aber eigentlich muss da auch nur einer mal ein Tool für schreiben das das selbe macht wie die Runtime zur Laufzeit. Die beste Methode ist also doch noch gutes altes C/C++ ... es ist zwar auch nicht unmöglich aber aufwändig ... Die Frage ist da doch eher was du gemacht hast was niemand sehen können soll und dann stellt sich erst die Frage nach dem Aufwand der sich lohnt da von beiden Seiten reinzustecken Zitieren
Scratch Geschrieben 12. Oktober 2009 Autor Geschrieben 12. Oktober 2009 Es geht eben um einen Client der Daten eines kommerziellens Dienstes empfängt. Ich möchte verhindern das jeder Hinz&Kunz die Übertragungsmethode sehen kann ... natürlich habe ich auf seiten des Servers schon den ein oder anderen Schutz. Zitieren
Guybrush Threepwood Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 Was meinst du mit Übertragungsmethode? Wohin Datenübertragen werden kann man auch ganz einfach sehen ohne irgendwas dekompilieren zu müssen. Was übertragen wird auch sofern die Daten nicht verschlüsselt werden. Falls du damit Sicherheit in irgendeiner Form gewährleisten willst ist das die falsche Richtung. Security through Obscurity schlägt letzten Endes immer fehl. Das heißt du musst dir Gedanken darüber machen wie du das vor jemandem absicherst der ganz genau weiß was da wie passiert. Zitieren
Scratch Geschrieben 12. Oktober 2009 Autor Geschrieben 12. Oktober 2009 Es ist derzeit so das der Server erst nach übertragen von gültigem Benutzer und Passwort die Daten preisgibt. Verschlüsselt übertragen werden Sie nicht. Hast du dazu vielleicht ein bisschen Lesematerial für mich? Zitieren
Guybrush Threepwood Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 Solche Daten soltest du auf jeden Fall immer verschlüsseln weil sonst jeder der den Netzwerkverkehr analysiert diese im Klartext lesen kann. Wie das bei dir genau funktioniert kommt auf die Technik der Übertragung an. Falls es sich um Webservices handelt solltest du HTTPS statt HTTP verwenden. Zitieren
Scratch Geschrieben 12. Oktober 2009 Autor Geschrieben 12. Oktober 2009 Genau so schauts aus ... Ein Webservice übergibt die Daten als XML,CSV und andere Formate. Die Clientanwendung soll dann noch ein bisschen aufbereiten und kann evtl. gleich bestimmte Vorgänge anstossen. Zitieren
Guybrush Threepwood Geschrieben 12. Oktober 2009 Geschrieben 12. Oktober 2009 Wenns ein WCf Service ist schau mal hier: Transport Security Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.