Torrents: Kann ich meine Software durch Senden falscher Bytes schützen?

1092
Martijn Courteaux

Es ist ein Thema, das alle interessiert. Wie kann ich meine Software vor Diebstahl, Hacking und Reverse Engineering schützen?

Ich habe mir gedacht: Tun Sie mein Bestes, um das Programm für das Reverse Engineering zu schützen. Dann werden die Leute es knacken und mit Strömen säen . Dann lade ich meine eigene gecrackte Software mit einem Torrent mit meiner eigenen Torrent-Software herunter . Meine eigene Torrent-Software muss dann falsche Daten (Bytes) säen. Natürlich muss es kritische Bytes geben.

Leute, die meine Software stehlen wollen, laden also meine falschen Bytes herunter. Nur die Bytes, die für das Starten, Speichern und Laden von Daten usw. wichtig sind. Wenn der Stealer von mir herunterlädt (und später sät), kann der Stealer nichts damit anfangen, weil er defekt ist.

Ist diese Idee relevant? Vielleicht überprüfen gute Torrent-Clients Hashes von anderen Peers, um zu prüfen, ob die Pakete (die meine defekten Bytes enthalten), die ich samen möchte, korrekt sind oder nicht.

15
Ich habe gelesen, dass RIAA dies bereits für Musikdateien gemacht hat. vor 13 Jahren 3
Sie verschwenden Ihre Zeit, Sie verlieren kein Geld von Dieben, per Definition würden sie Ihre Software niemals von Anfang an kaufen. Jarrod Roberson vor 13 Jahren 26
Es würde aus dem Grund scheitern, den ich unten erkläre. Ich glaube, dass der RIAA (oder besser gesagt MediaSentry) zufällige Daten mit dem Dateinamen populärer Musik (Madonna?) Ausgesät hat - und das Signal im Rauschen versteckt. graham.reeds vor 13 Jahren 0
Ich würde die Tatsache, dass es aufgrund von CRC-Prüfungen usw. nicht funktioniert, außer Acht lassen. Ich würde vorschlagen, dass dies aus einem anderen Grund eine schlechte Idee sein könnte. Die Leute, die die Software stehlen, werden wahrscheinlich sowieso nicht dafür zahlen, aber wenn sie nicht funktioniert, können sie ihren Freunden oder Chefs sagen, dass Ihre Software von schlechter Qualität ist, sodass sie sie auch nicht kaufen. ho1 vor 13 Jahren 27
@fuzzy: Auch wenn es nicht so eindeutig ist, wie Sie es scheinen lassen, ist es wahr, dass solche Leute die Software wahrscheinlich gar nicht erst kaufen würden. vor 13 Jahren 0
In den meisten Fällen ist eine Raubkopie kein verlorener Verkauf. vor 13 Jahren 9
Was auch immer Sie tun, stellen Sie sicher, dass Sie zahlenden Kunden die Verwendung Ihrer Software nicht schwer machen user6863 vor 13 Jahren 13
Ich würde vorschlagen, die Zeit einzustellen, um sicherzustellen, dass die Software beim Kopieren nicht einfach funktioniert. Paul Nathan vor 13 Jahren 0
Die Chancen stehen gut, dass Sie alles falsch machen. Erstens ist Ihre Software wirklich eine Piraterie wert? Wenn nicht, warum machst du dir dann Sorgen? Wenn es nicht bereits auf Bit-Torrent ist, lohnt es sich wahrscheinlich nicht, es zu rauben. Wenn ja, bist du zu spät. Warren P vor 13 Jahren 2
Siehe den Streisand-Effekt (http://en.wikipedia.org/wiki/Streisand_effect). Ein Schwachkopf in Bezug auf Ihre Software wird zu mehr Missgunst und schlechter Werbung führen, als Ihre verlorenen Umsätze jemals wert sein werden. Fake Name vor 13 Jahren 2

6 Antworten auf die Frage

42
graham.reeds

Their torrent app (the pirates) will simply discard the bytes you are seeding as bad due to CRC checks. Then you will get banned by that IP for being a repeat offender.

Welches CRC verwendet bit torrent? Könnte ein Müllpaket generiert werden, das den korrekten CRC hatte? Es gibt Apps, die dies für MD5 tun, und ich bin sicher, ein echter CRC wäre genauso einfach. deft_code vor 13 Jahren 0
Es könnte erzeugt werden * in der Theorie *; Das BitTorrent-Protokoll verwendet jedoch SHA-1-Hashing. Es ist schwieriger, in SHA-1 Hash-Kollisionen zu finden (was wir hier suchen) als in MD5. Praktisch ist es derzeit nicht machbar. Piskvor vor 13 Jahren 16
@Caspin Im Wesentlichen nein. Unter idealen Bedingungen, einem wirklich schnellen Computer (Supercomputer) und einem Team von Kryptographen würde es mindestens eine Woche dauern, um den CRC-Hash für eine einzige Datei zu brechen. Viel Glück damit. Evan Plaice vor 13 Jahren 0
9

Q. Can I protect my software by sending wrong bytes?
A. No, it can be hacked around anyway, especially if someone gets their hands on a legit copy.

Q. How can I protect my software against stealing, hacking, reverse engineering?
A. Sell it for a fair price, this will undermine attempts to hack.

Siehe http://www.plagiarismtoday.com/2010/05/26/reflections-on-the-humble-indie-bundle-piracy/ für Punkt 2. Piratenpirat. Bessere Software wird Ihnen nicht helfen. Paul Nathan vor 13 Jahren 0
@ Paul: Es gibt viele Leute, die nicht piraten. Es gibt viele Leute, die sich weigern zu zahlen. Es gibt aber auch Menschen, die eher bereit sind, für etwas zu zahlen, wenn es zu einem niedrigeren Preis als einem höheren angeboten wird. Das sind die Menschen, die von einem niedrigeren Preis betroffen wären. (Ich nehme an, obwohl Sie den Preis nicht zu niedrig bewerten wollen.) vor 13 Jahren 1
7

I'd suggest to approach the problem from the other end. Embed a unique identification code into each copy of your software that you give to your clients. In case somebody is seeding, you can at least identify who did it and take legal actions.

Sie werden jedoch Reverse Engineering durchführen und ihren eindeutigen Code ändern. Also werden sie anonym, nein? Martijn Courteaux vor 13 Jahren 0
Nur wenn sie es finden können. vor 13 Jahren 5
TATSÄCHLICH!! Danke, legen Sie es einfach irgendwo an einen versteckten Ort in meiner Anwendung. Aber wird der C ++ - Compiler wissen, dass die Variable nicht verwendet wird, und sie entfernen? Martijn Courteaux vor 13 Jahren 0
@Developer Art: Wenn sie Zugriff auf mehrere Kopien der Software haben, können sie möglicherweise binäre Vergleiche durchführen, um herauszufinden, wie genau sich die Kopien voneinander unterscheiden und wo sie sich unterscheiden, es sei denn, Sie legen einen Weg für die Teile von fest Wenn der Identifikator auf zufällige Weise verschleiert wird, ist es möglicherweise nicht so schwer, ihn herauszufinden. vor 13 Jahren 2
@JAB: Gewiss auch wahr ... * Ich hasse Computer ... * Martijn Courteaux vor 13 Jahren 0
@Martijn - fügen Sie der Variablen das Schlüsselwort 'volatile' hinzu. Dies weist den Compiler unter anderem an, die nicht verwendete Variable nicht zu optimieren. Robert vor 13 Jahren 1
Es ist nicht mit einer einzelnen Variable fertig. Sie können die Informationen in allen Modulen Ihrer App verbreiten und so tun, als würden Sie sie tatsächlich für bestimmte Zwecke verwenden. Es ist etwas Kunst, es für neugierige Augen unauffällig zu machen. Stellen Sie vielleicht eine gesonderte Frage zu den Techniken, um dies zu erreichen. Wäre interessant. vor 13 Jahren 2
@Robert: Danke, ich werde versuchen mich zu erinnern. Martijn Courteaux vor 13 Jahren 0
Sie können verschiedene Builds prüfen, ob die Marke wegoptimiert ist oder nicht. Aber das können auch die Benutzer! In der Tat lädt kein professioneller Cracker Sachen hoch, ohne zuvor mehrere Kopien zu erhalten und zu vergleichen, da er seine Quellen schützen möchte. Am Ende kämpfen Sie gegen Windmühlen. Es ist viel besser, sich die Mühe zu machen, großartige Software zu schreiben, die die Benutzer dazu auffordert, Sie zu bezahlen, als den Kopiervorgang zu stoppen, der sie dazu ermutigt, sich zu bemühen, nicht zu bezahlen. vor 13 Jahren 18
Du kämpfst eine harte Schlacht. Wie auch immer Ihr Verschlüsselungs- / Passwortschema ist, die Chancen stehen gut, die Cracker-Organisationen haben es gesehen und wissen, wie es gebrochen werden kann. Sie haben langjährige Erfahrung und viel bessere Programmierer als Sie. Es tut uns leid. Evan Plaice vor 13 Jahren 2
7
Warren P

Does DRM work? No. Does setting up bad BitTorrent/EDonkey2000 stuff work? No. Does anyone care about pirating your little application? No. Nobody has ever heard of it.

"Niemand hat jemals davon gehört." Das ist ein guter Punkt ... vor 13 Jahren 0
Wenn jemand bereit ist, es zu rauben, dann lohnt es sich zu schützen. vor 13 Jahren 0
@ Ben313: Ein besserer Satz wäre "Wenn jemand bereit ist, es zu kaufen, dann lohnt es sich zu schützen." vor 13 Jahren 1
Wenn Sie nicht etwas Besseres als AutoCad, MS Word usw. geschrieben haben, ist Ihre Software noch weniger schützenswert als die anderen Personen (Microsoft, AutoDesk), die 100 intelligentere Mitarbeiter haben, als Sie (ein einzelner Entwickler) und trotzdem habe keinen DRM gebaut, der funktioniert. Warren P vor 13 Jahren 1
4
cody

bittorent and most other good p2p software protects itself from such kind manipulation by using file hashes, e.g. md5.

Der Hash-Algorithmus ist SHA-1 laut Wikipedia: http://en.wikipedia.org/wiki/BitTorrent_(protocol)#Creating_and_publishing_torrents - etwas sicherer als MD5 Piskvor vor 13 Jahren 1
2
SigTerm

t's a topic that everyone interests. How can I protect my software against stealing, hacking, reverse engineering?

The only way (I can think of) to do it is to run software completely on your server, and have no useful code in client application - because if you can't get it, you can't (easily) crack it. This way you'll have control over accounts and you'll know who uses your application. Users won't be happy, though. And if you'll only run copy-protection-related code on your server, someone will hack it by writing server emulator OR they'll identify code and bypass protection completely. As it happened with new Ubisoft copy-protection scheme.

Keeping software on server isn't completely bulletproof. Instead of cracking the software, someone will start attacking your server in order to break in and to get software. And there is always "social engineering" security holes. "keep everything on server" will work best if your software cannot be run on normal machine (i.e. it requires supercomputer or computer cluster). A good example of this is EVE Online - unlike WOW and Lineage there are no server emulators I know of, because it requires computer cluster to run the server.

My own torrent-software has then to seed incorrect data (bytes). Of course it has to seed critical bytes.

  1. If you'll try to "hijack" existing torrent, any sane client will report CRC errors and ignore your client. All p2p software uses hashes.
  2. If you upload "wrong" torrent, another user will report your torrent as fake, so no one will download it.

stealer

"Pirate", because it is called copyright infringement.