Frage

Ich bin wirklich traurig, weil wir vor ein paar Tagen unsere Software in .NET 4.0 (Desktop-Anwendung) gestartet haben. Nach 3 Tagen war der Riss im Internet verfügbar. Wir haben versucht, die Software davon zu schützen, aber irgendwie kamen die Leute davon auf, es zu knacken.

Hier ist das Szenario: Wenn die Anwendung beim ersten Start der ersten Kommunikation mit dem Webserver startet und die vom Benutzer übergebenen Anmeldeinformationen überprüft. Wenn die Anmeldeinformationen korrekt sind, speichert die Software die Werte in der Registrierung, sendet das MUMPORID zurück an den Server und speichert sie in der Datenbank.

Nun hat der Hacker die Serverkommunikation mit einem "Return True" ersetzt. Anweisung (Ich habe das mit Telrik JustDecompile geprüft). Und er hat die rissige Software im Internet hochgeladen.

Nun folgen meine Fragen:
1- So stellen Sie sicher, dass die .NET-Anwendung nicht gebrochen wird? Kummer 2- Der Hacker kennt jetzt meinen Code, seit er die Änderung getan hat. Welche Schritte sollte ich nehmen?
3- Ich habe im Internet über - OBFUCATORATs gelesen. Aber der Hacker kennt meinen Code, was soll ich tun? 4- Alle anderen Pro-Tipps, mit denen ich vermeiden kann, dass die Software geknackt wird?
5- Ich bin nicht sicher, obwohl diese Reflektor-Softwares auch die App.Config mit sensiblen Daten dekompilieren?

War es hilfreich?

Lösung

1- So stellen Sie sicher, dass die .NET-Anwendung nicht geknackt wird?

Wenn ein Computer Ihren Code ausführen kann, kann der Hacker seinen eigenen Code auf einem höheren Privileg-Niveau führen als Sie, es gibt nichts, was 100% darauf hinweist, dass Ihre App nicht geknackt wird. Selbst wenn sie nur Zugriff auf die ausführbare Zeit, aber nicht die Zielplattform haben, können sie immer noch durchschreiten und nachahmen, was die Zielplattform leisten würde, und herauszufinden, wie der Schutz durchgeführt wird.

2- Der Hacker kennt jetzt meinen Code, seit er die Änderung getan hat. Welche Schritte sollte ich nehmen?

Schreiben Sie den Authentifizierungsabschnitt vollständig um, sodass sie von Grund auf beginnen müssen, aber sie werden es wieder bekommen, es ist nur eine Frage, wie lange es ist.

3- Ich habe im Internet über - OBFUCATORATs gelesen. Aber der Hacker kennt meinen Code, was soll ich tun?

Der Jinni ist jetzt aus der Flasche, da sie den nicht verbundenen Code enthalten. Es gibt nicht viel, wenn Sie nicht tun können, es sei denn, Sie schreiben die Software drastisch, damit sie von Grund auf beginnen müssen. Ein OBFUSCATEOR wird nicht einen bestimmten Angreifer verhindern, sondern nur, was es verhindern kann, dass es das Binärer aus ihren Händen hält.

4- Alle anderen Pro-Tipps, mit denen ich vermeiden kann, dass die Software geknackt wird?

Der einzige Kopierschutz, den ich für einen bestimmten Zeitraum aus der Ferne gesehen habe, ist, was Ubisoft mit Assassin's Creed tat: Brüderlichkeit. Sie verschlüssten den Niveau mit der Spieldiskette und es musste den Entschlüsselungsschlüssel aus dem Internet herunterladen, da er benötigt wurde (dies ist das Binärer, das den Binärnern aus der Hand an den Händen hält). Das hat aber nicht für immer funktioniert, schließlich haben die Hacker diese Level entschlüsselt und es war vollständig gebrochen. Dieser Ansatz ist genau das, was ich sah, dass es die längste Zeit dauert, ohne rechtliche Beteiligung herumzukommen (siehe Punkt 2 unten)

5- Ich bin nicht sicher, obwohl diese Reflektor-Softwares auch die app.config mit sensiblen Daten dekompilieren?

Die gesamte Reflektorsoftware muss dabei werden, suchen Sie nach dem Abschnitt, der App.Config lädt und lesen, was die Standardeinstellungen sind. Es gibt no sicherer Ort, um Informationen auf einem Computer zu speichern, den Sie nicht vollständige Kontrolle haben. Wenn es sich auf dem Computer befindet, kann es gelesen werden. Wenn es gelesen werden kann, kann es umgekehrt sein.


Die einzige echte Lösung, die ich sehen kann, um zu verhindern, dass Piraterie eine von zwei Optionen ist.

    .
  1. Die Person erhält nie Ihre App, es wird von einem Server unter Ihrer Kontrolle gestreamt und erfahren Sie nie, um das Binärdatei zu sehen. Das einzige, was Sie ihnen senden, ist die Informationen, die sie benötigen, um die Benutzeroberfläche zu fahren. Dies ist der Ansatz, an dem alle MMOs arbeiten. Die Menschen können den Ingenieur umkehren, was Sie an die Benutzeroberfläche senden und die Logik nachahmen, die auf Ihren Servern vorgehen, aber sie werden niemals in der Lage sein, zu sehen, was es tut, und wenn Ihre Software komplex genug ist, ist es möglicherweise nicht für den Angreifer gehalten um den Server-Neben-Code neu zu erstellen. Der Nachteil dieses Ansatzes ist, dass Sie Server für Ihre Anwender anlegen müssen, mit denen Sie eine Verbindung herstellen können. Dies ist ein wiederkehrender Kosten, in dem Sie einen Weg benötigen, um den RE-Putsch zu erhalten. Häufig wird diese Methode als "Rich Client" oder "Thin Client" bezeichnet, je nachdem, wie viel Verarbeitung Client-Seite erfolgt und wie viel Verarbeitung Serverseite erfolgt. Siehe Kapitel 22 von " Microsoft Application Architecture Guide, 2nd Edition ". Insbesondere beschreibe ich, was in Abbildung 4 und 5

  2. Die SECCOND-Option ist derjenige, den Sie Ihre Software verkaufen, haben sie einen Rechtsvertrag unterzeichnen, der die Software nicht verteilen kann (kein EULA, ein tatsächlicher Vertrag, der physisch vom Kunden unterzeichnet werden muss). In diesem Vertrag werden große Geldbußen an die Person angewendet, die die Software austritt, dann Ihr Programm mit Fingerabdrücken rätseln, die für die Person einzigartig sind, die der Person, die die Software kauft, so dass, wenn das Programm durchgesickert ist. (Dies ist die Methode, die die Anbieter-Hex-Strahlen für ihren Disassembler verwenden ida . Eine schnelle Google-Suche konnte keine rissigen Versionen neuer als 6.1 auftauchen, sie sind auf 6.3 ). Diese Methode stoppt nicht die Piraterie, sondern kann die Kopie davon entmutigen, an erster Stelle durchgesickert zu werden. Dadurch können Sie auch einige verlorene Kosten wiederherstellen, die mit dem Programm verbunden sind, der an erster Stelle durchgesickert wird. Ein Thema ist, dass Sie viele Fingerabdrücke stellen müssen, und sie müssen subtil sein, wenn ein Angreifer zwei Kopien des Programms erhalten und die Dateien vergleichen können

Äenne die beiden, die er erkennen kann, was die identifizierenden Informationen ist, und legen Sie einfach, was sie wollen, damit sie nicht sagen können, wem sie es bekommen haben. Der einzige Weg, dies zu tun, ist viele Rotheringe, die nicht nur ausgeröst oder randomisiert werden können, auch den identifizierenden Code, der nicht kritisch ist, um die Software auszuführen, wenn sie nicht arbeiten müssen, um es zu knacken Sie verlassen es eher in.


update : Nachdem ich diese Antwort erneut auf den Link auf eine andere Frage erhalten habe, dachte ich an eine einfache Möglichkeit, die # 2-Lösung umzusetzen.

Alles, was Sie tun müssen, ist Ihr Code über einen OBFUSCATEOR auszuführen und lassen Sie Ihre Klassen für jede Person umbenennen, für die Sie Ihre Software verkaufen (Ich würde sie immer noch eine Lizenzvereinbarung unterschreiben lassen, klicken Sie nicht nur auf einen EUUA Nächster Teil). Sie erstellen dann eine Datenbank mit der Ordnungszuordnung, wenn Sie eine durchgesiegelte Kopie im Internet sehen, müssen Sie nur eine Klasse überall im Projekt finden, und schauen Sie es in Ihrer Datenbank hoch, und Sie wissen, wer es durchgesickert hat und wissen, wer Sie benötigen nach rechtlichen Schäden gehen.

Andere Tipps

1: Sie können nicht.Sie können verschleiern, aber der einzige Weg von verhindern, dies ist: Geben Sie niemanden den EXE.Schauen Sie, wie viele Games-Unternehmen dazu verbringen;Sie haben es auch nicht gelöst.

2: Vernobungspartnation würde helfen, ein bisschen , obwohl es ein Waffenrennen zwischen Orduscatoren und De-Obkuscatoren ist

3: Zu spät, um zurückzukehren und das rückgängig zu machen, aber die Verschleierung wird sie in Zukunft ein bisschen langsamer verlangsamen

5: app.config ist normalerweise sehr lesbar;Sie können hier nicht viel tun;Die Verschlüsselung verlangsamt sie nur ein bisschen, wenn sich die Tasten in Ihrer App befinden und daher erhältlich sind

Wie andere gesagt haben, gibt es wirklich nichts, was Sie nicht gegen einen bestimmten Cracker tun können, wenn sie Zugriff auf Ihren Code haben.Verschleierung wird etwas Schutz vor einem faulen Cracker bieten. dotfuscator ist in vs eingebaut, in den Sie es versuchen können.Denken Sie daran, dass es echte Kosten für die Verschleierung gibt.Es wird es sehr schwierig machen, Probleme von Stapelspuren zu debuggen, von denen Ihre (zahlenden) Kunden Ihnen schicken.

Die beste Antwort ist eine, die Sie akzeptieren müssen.Du kannst nicht.Fokussieren Sie sich einfach darauf, Ihren Benutzern eine großartige Benutzererfahrung zu geben, und lizenzieren Sie die Lizenzierung sehr einfach.Die Möglichkeit, dass Ihre Anwendung geknackt werden kann, bedeutet nicht, dass die Wahl für den Bau einer Desktop-Anwendung eine schlechte Idee war.Piraten werden Piraten sein und ehrliche Kunden werden ehrliche Kunden sein.

Anscheinend gibt es genügend kommerzielle oder intellektuelle Werte, die Ihre App knacken, dass jemand mit vernünftigen Fähigkeiten es fast sofort ausprobiert hat.

Die nur wege Sie gewinnen, dass der Krieg kommerzielle Softwareschutzpakete verwenden soll.

Wenn Sie versuchen, den Kopierschutz selbst umzusetzen, werden Sie ein einfaches Ziel, wieder zu hacken.

Wenn Sie eine Business-Anwendung schreiben, schreiben Sie nicht auch die Datenbank-Engine, die die Daten speichert.Sie sollten den Crack-Präventionscode auch nicht für Ihre Anwendung schreiben.Das löst nicht das Problem Ihres Kunden, und es dauert ein enormes Können, um es richtig zu machen.

was Sie tun können, zusätzlich zum Code-Vernobungspflichten ist das Hinzufügen eines Mechanismus der Code-Entschlüsselung basierend auf der Basis von Hardwarid das folgende Szenario, das Senden ihres HWID an Ihren Server, Sie identifizieren die Kopie / Eigentümer- / Installationsnummer/ etc mit diesem HWID, und Sie antworten mit einem Beschreibungschlüssel, der in diesem HWID für diese spezifische Binäre (mit den vorher genannten Fingerabdrücken basieren), so dass das Hacking schwieriger wäre, da sie für vollständige Funktionalität einen gültigen Zugriff auf Ihren Server benötigen, andernfallskann die Software nicht verwenden.

jubeln,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top