Zum Inhalt springen

C# dekompilieren (ähnlich Java)?


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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... :rolleyes:

OT:

"Java" und "(de-)kompilieren"... Da richten sich meine Nackenhaare auf. :floet:

Geschrieben (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 von Gateway_man
Geschrieben

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.

Geschrieben
@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

Geschrieben

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.

Geschrieben

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.

Geschrieben

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?

Geschrieben

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.

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...