Frage

Dies ist ein Problem, das wir alle an einem gewissen Punkt zu betrachten haben.

Nach vielen Jahren und viele Ansätze, die ich mit dem staterment im Allgemeinen eher zustimmen: „Für jede geschützte Software von mehr als ein paar hundert Menschen verwendet wird, können Sie eine gecrackte Version finden. Bis jetzt kann jedes Sicherungssystem manipuliert werden.“ Hat Ihr Arbeitgeber die Verwendung von Anti-Piraterie-Software durchzusetzen?

Ferner jedes Mal wenn ich über dieses Thema zu verfassen, jemand erinnert mich; „Zunächst einmal, egal welche Art von Schutz Sie beschäftigen, wird ein wirklich engagierter Cracker schließlich durch alle Schutzbarrieren bekommen.“ Was ist der beste Preis-Leistungsverhältnis c # Code-Schutz für einen einzelnen Entwickler

So nicht, diese beide im Großen und Ganzen wahr Haftungsausschluss zu widerstehen, kann darüber reden, „Schutz“!

ich, dass nach wie vor für kleinere Anwendungen fühlen, die wahrscheinlich nicht die Zeit und die Aufmerksamkeit eines erfahrenen Cracker warrent, Schutz ist eine lohnenswerte Übung.

Es scheint offensichtlich, dass, egal was Sie tun, wenn der Cracker das Ergebnis einer IF-Anweisung (JMP) durch das Patchen der Anwendung wechseln kann, dann werden alle Passwörter und Dongles in der Welt ANRE nicht helfen würde.

So Mein Ansatz war, wie Sie den Code mit Virtualisierung mit Produkten zu verschleiern: http://www.oreans.com/codevirtualizer.php Ich habe mit diesem Produkt sehr zufrieden. Mein Wissen hat es neve besiegt. Ich kann sogar die ausführbare Datei mit PECompact komprimieren Hat jemand Erfahrung damit?

Wir hatten nichts als Probleme mit EXECryptor http://www.strongbit.com/news.asp Auch ist die Website Kopfschmerzen zu verwenden. Die kompilierten Anwendungen abstürzen würde, wenn dabei jede WMI aufruft.

Dieser Ansatz ermöglicht es Ihnen, mit der Verschleierung kleinere Codeabschnitte zu umgeben und so die Sicherheit schützen Überprüfung etc.

Ich verwende den Online-Autorisierung Ansatz, da die Anwendung regelmäßig Daten vom Server benötigt, so dass es keinen Sinn für den Benutzer, es zu benutzen off für längere Zeiträume Linie macht. Per Definition ist die App an diesem Punkt wertlos, auch wenn es geknackt wird.

So ein einfacher verschlüsselter Händedruck ist viel gut. Ich überprüfe es nur gelegentlich in dem Verschleierungsschutz. Wenn der Benutzer die Anwendung auf einem anderen Computer installiert wird, wird eine neue ID hochgeladen beim Start und der Server deaktiviert die alte ID und gibt eine neue Genehmigung.

Ich benutze auch einen Hash der kompilierten App und überprüfen Sie es beim Start zu sehen, ob ein einzelnes Bit geändert hat, dann als Datei, um die App zu öffnen (mit einer Lesesperre) aus der App heraus jemand zu verhindern, ändert es einmal gestartet .

Da alle statischen Strings deutlich sichtbar in der EXE-Datei sind, versuche ich mit Fehlermeldungen usw. generisch zu sein. Sie werden nicht die Zeichenfolge finden überall „Autorisierung fehlgeschlagen“.

gegen Speicher zu schützen Dumps, verwende ich eine einfache Text-Verschleierung Technik (wie XOR jedes Zeichen) Dieses von Variablen Klartextdaten im Speicher schwieriger zu unterscheiden macht und so weiter.

Dann natürlich gibt es AES für alle Daten, die wirklich empfindlich ist. Ich mag Zählmodus für Text wie dies in keiner Wiederholungssequenzen führt zu Grunde liegenden Daten wie eine Folge von weißen Zwischenräumen offenbart.

Aber mit all diesen Techniken, wenn der Schlüssel oder Initialisierung Vektor aus dem Speicher entleert werden kann, oder die IF-Anweisung umgangen, alles verschwendet wird.

Ich neige dazu, eine switch-Anweisung zu verwenden, anstatt eine bedingte Anweisung. Dann erstelle ich eine zweite Funktion, die anstelle der Funktion im Grunde eine Sackgasse ist, die tatsächlich die gewünschte Aufgabe ausführt.

Eine weitere Idee ist es, Code pointers mit einer variablen hinzugefügt. Die Variable ist das Ergebnis der Zulassung (in der Regel Null). Dies wird unvermeidlich führen zu einem GPF an einem gewissen Punkt. Ich dies nur als letzter Ausweg nach einigen niedrigeren Niveaus Genehmigungen versagt haben sonst echte Benutzer es auftreten können. Dann wird der Ruf Ihrer Software gesenkt wird.

Welche Techniken verwenden Sie?

(dies ist nicht ein Thread diskutieren die Vorzüge etwas umzusetzen. Es ist für diejenigen, die sich entschieden haben, etwas zu tun)

War es hilfreich?

Lösung

Ich bin nicht einverstanden xsl.

Wir schützen unseren Code, nicht weil wir unsere Einnahmen schützen wollen - wir akzeptieren, dass diejenigen, die, wenn sie ohne eine Lizenz wahrscheinlich sowieso nie dafür bezahlen würde verwenden würde

.

Stattdessen machen wir es um die Investition zu schützen unsere Kunden haben in unsere Software. Wir glauben, dass der Einsatz unserer Software in ihrem Markt sie mehr competative macht und dass, wenn andere Unternehmen Zugang zu ihm haben, ohne zu zahlen haben sie einen unfairen Vorteil -. Dh sie ohne als competeintive werden den Aufwand für die Lizenzkosten mit

Wir sind sehr vorsichtig, um sicherzustellen, dass die Schutz -, die gewachsen zu Hause ist - ist so unauffällig wie möglich zu den gültigen Benutzern, und zu diesem Zweck würden wir nie eine aus dem Regal Lösung ‚in Kauf‘ berücksichtigen, die diese beeinflussen kann.

Andere Tipps

Sie haben nicht ein paar hundert Benutzer benötigen eine Software geknackt werden. Ich habe verärgert meine Shareware an, die so oft gebrochen, um ein Experiment, das ich ein Programm erstellt Magie Textbox genannt (was auf es nur ein Formular mit einem Textfeld war) und veröffentlichte es auf Shareware-Seiten (es hatte seine eigene PAD-Datei und alles ). Ein Tag später eine gebrochene Version von Magic Textbox zur Verfügung.

Diese Erfahrung hat mich ziemlich viel geben versucht, meine Software mit etwas mehr als rudimentäre Kopierschutz zu schützen.

Ich persönlich benutze die Code-Techniken hier diskutiert. Diese Tricks haben den Vorteil der Ungelegenheiten Piraten ohne das Leben zu erschweren für Ihre berechtigten Endanwendern

Aber die interessantere Frage ist nicht „was“, sondern „warum“. Bevor ein Software-Anbieter auf diese Art von Übung macht sich, es ist wirklich wichtig, ein Bedrohungsmodell zu bauen. Zum Beispiel sind die Bedrohungen für ein günstiges B2C Spiel ganz anders als die für einen hochwertigen B2B-App.

Patrick Mackenzie einen guten Aufsatz hat, wo er beschreibt einige der Bedrohungen , einschließlich einer Analyse von vier Arten von potentiellen Kunden. Ich empfehle, diese Bedrohungsanalyse für die eigene App, bevor Entscheidungen über den Schutz Ihrer Geschäftsmodell zu machen.

Ich habe implementiert Hardware (Dongles) vor mir Keying, also bin ich nicht völlig vertraut mit den Problemen. In der Tat habe ich es sehr viel nachgedacht. Ich stimme nicht mit jemand das Urheberrecht zu verletzen, wie Sie Ihre Cracker tun. Jeder, der will nicht rechtlich eine Kopie Ihrer Software erwerben tun sollte, ohne. Ich jemals nicht Software-Urheberrecht selbst verletzen. Dass gesagt wird ...

ich wirklich, mag nicht wirklich das Wort „Schutz“ verwendet hier. Das einzige, was Sie versuchen zu schützen Ihre Kontrolle . Sie sind nicht Schutz der Software. Die Software ist nur gut so oder so, wie sind Ihre Benutzer.

Der Grund, dass die Menschen aus Kopieren zu halten und teilen Sie Ihre Software ist so eine unheilige PITA ist, dass solche Aktivitäten zu verhindern unnatürlich ist. Das gesamte Konzept eines Computer dreht sich um das Kopieren von Daten, und es ist einfach die menschliche Natur zu wollen, nützliche Dinge zu teilen. Sie können diese Tatsachen kämpfen, wenn Sie wirklich darauf bestehen, aber es wird ein lebenslanger Kampf. Gott ist nicht auf den Menschen anders machen, und ich bin nicht über einen Computer zu kaufen, die Dinge nicht kopieren kann. Vielleicht wäre es besser, einen Weg zu finden, zu arbeiten mit Computer und Menschen, anstatt den Kampf gegen sie die ganze Zeit?

ich, zusammen mit der Mehrheit des professionellen Software-Entwicklers, bin Vollzeit von einem Unternehmen beschäftigt, das Software entwickelt muss, damit sie ihre Geschäfte machen, nicht so kann es ein „Software-Produkt“ mit künstlicher Knappheit haben zu „verkaufen“ für die Nutzer. Wenn ich etwas allgemein nützlich schreiben (das nicht ein „Wettbewerbsvorteil“ hier betrachtet wird), können wir es als Freie Software freigeben. Nein "Schutz" ist erforderlich.

Von einigen der Verbindungen:

Das Konzept, das ich versuchte zu erklären ist, was ich der „Crack Spread“ nennen. Es spielt keine Rolle, dass ein Riss (oder keygen, oder unerlaubt seriell, oder was auch immer) für Ihre Anwendung vorhanden ist. Entscheidend ist, wie viele Menschen Zugang zum Risse haben.

Wo / wann die Seriennummer zu überprüfen: Ich habe einmal beim Start überprüfen. Viele Leute sagen, „alle möglichen Orte Check in“, um es schwieriger für jemanden zu knacken durch das Kontroll Strippen. Wenn Sie den Cracker als besonders böse wollen, lesen Sie in allen möglichen Orten inlined Code (dh NICHT externalisieren sie alle in SerialNumberVerifier.class) und, wenn überhaupt möglich machen es multi-threaded und schwer zu erkennen, wenn es scheitert , zu. Aber das macht nur schwieriger ist es den Riss zu machen, ist nicht unmöglich, und denken Sie daran, Ihr Ziel ist in der Regel nicht die Cracker zu besiegen. hat die Cracker Besiegen Sie nicht eine beträchtliche Menge an Geld verdienen. Sie müssen nur die gelegentlichen Nutzer in den meisten Fällen besiegen, und die gelegentlichen Nutzer keinen Zugriff auf einen Debugger noch wissen, wie man verwenden.

Wenn Sie nach Hause telefonieren gehen, dann sollten Sie zu Hause mit ihren Benutzerinformationen seines Telefonieren und die Seriennummer als die Ausgabe des Servers Skript zu akzeptieren, nicht nach Hause mit der Seriennummer anrufen und eine boolean akzeptieren, etc, wie die Ausgabe. das heißt, sollten Sie Schlüssel Injektion tun, keine Schlüsselüberprüfung. Schlüsselüberprüfung muss letztlich innerhalb der Anwendung geschehen, weshalb öffentliche Schlüssel Krypto ist der beste Weg, es zu tun. Der Grund dafür ist, dass die Internet-Verbindung ist auch in den Händen des Gegners :) Sie einen Host-Datei Wechsel von einem Einbruch einmal weg sind, bruch überall ausnutzen, wenn Ihre Software ist nur ein boolean aus dem Internet zu lesen erwartet.

Sie keine „interessant“ oder „herausfordernd“ Schutz. Viele Cracker knacken für die intellektuelle Herausforderung allein. Machen Sie Ihren Schutz schwer zu knacken, aber so langweilig wie möglich.

Es gibt einige Risse, die für den Ort für Byte-Muster auf der Suche suchen zu patchen. Sie werden in der Regel nicht durch eine erneute Kompilierung besiegt, aber wenn Ihr .EXE verpackt ist (durch ASProtect, Armadillo, usw.) diese Art von Rissen müssen zuerst die .EXE entpacken .. und wenn Sie einen guten Packer wie ASProtect, Cracker in der Lage, die EXE-Datei manuell mit Hilfe eines Montage-Level-Debugger wie SoftICE, wird aber nicht in der Lage zu entpacken, ein Werkzeug zu schaffen, das automatisch die .EXE auspackt.

(das Byte-Patches danach anzuwenden)

xsl, ist, dass eine sehr enge Sicht mit vielen in assumtions gebaut.

Es scheint mir offensichtlich, dass jede Anwendung, die eine ziemlich gute Arbeit bei der Bezifferung unsere, die ein gültiges Konto zu tun hat, der Lage sein, etwas von einem Server unter Ihrer Kontrolle auf die Bereitstellung beruht sollte!

Ich bin auch der Überzeugung, dass regelmäßige Updates (eine neu kompilierte App mit dem Code in verschiedenen Orten Bedeutung) wird geknackt vesrions schnell obsolet machen. Wenn Ihre App mit einem Server in Verbindung stehen, einen sekundären Prozess startet das Hauptprogramm zu ersetzen, jede Woche ein Stück Kuchen ist.

Also ja, nichts ist uncrackable, aber mit einigem cleveren Eigen Design, wird es ein strittiger Punkt. Der einzige Faktor, der wichtig ist, wie viel Zeit die Cracker bereit dafür ausgeben und wie viel Aufwand sind Ihre potenziellen Kunden bereit, in auszuüben versuchen, das Produkt ihrer Bemühungen auf einer wöchentlichen oder sogar täglich zu finden!

Ich vermute, dass, wenn Ihre Anwendung eine nützliche wertvolle Funktion bietet, dann wird sie bereit sein, einen fairen Preis dafür zu zahlen. Wenn nicht, geben Sie Wettbewerbsfähige Produkte auf den Markt und Ihre problme selbst nur gelöst werden.

Ich habe mit guten Ergebnissen in der Vergangenheit .NET Reactor verwendet - http://www.eziriz.com/

Was ich diesen Artikel gefallen hat, ist, dass es Ihnen nicht erforderlich, den Code zu haben, um ziemlich guten Schutz zu verschleiern.

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