REverse Engineering
-
Hallo,
gibt es eigentlich irgend einen Weg reverse engineering zu vermeiden ? Ein Freund von mir sollte das in seiner BAchelorarbeit versuchen. Welchen Ansatz könnte man denn da verwenden . Mir fällt da jetzt nur Verschlüsselung ein. Aber der Prozessor bräuchte ja dann den Schlüssel.
danke für eure Antworten.
-
Wenn es offline und auch ohne Dongle funktionieren soll gibt es keinen 100%igen Schutz. Man kann nur versuchen es dem "Angreifer" möglichst schwer zu machen. (Stichwort Ofuskator)
(Dadurch läuft das Programm aber immer etwas langsamer, bei sehr rechenintensiven Aufgaben vergeudet man dadurch teure Ressourcen.)Online oder mit Dongle kann man essentielle Aufgaben auf dem eigenen Server ausführen lassen oder im Dongle berechnen lassen.
Bei einem Server ist immer das Problem mit dem Schutz der Kundendaten. (Immerhin werden die auf einen fremden Server geladen und verarbeitet... für Firmen häufig unzumutbar.)
Man ist zudem von der Erreichbarkeit des Servers abhängig. (Ist der offline bzw das Unternehmen bankrott geht nichts mehr.)
Ein Dongle hat häufig nur sehr begrenzte Ressourcen und die Realisierung lohnt nur bei sehr teurer Software.Man sollte sich auf die Entwicklung von hochwertiger und effizienter Software konzentrieren... die zahlende Kundschaft kommt dann schon.
(Das Geld, was man in einen Kopierschutz steckt ist fast immer rausgeworfenes Geld... es hat keinen Wert für einen Kunden. Umso erfolgreicher eine Software ist, umso wahrscheinlicher ist es auch, dass sie geknackt wird...)
Kannst dir ja auch mal CrackMes.de anschauen. Da werden Programme hochgeladen mit der Absicht, dass andere sie knacken... man kann auch Lösungen anschauen...
-
Aber wie machen dann das eigentlich Firmen mit streng geheimen Algorithmen.
Das würd ich mich dann schon mal fragen ?
-
Wenn die so streng geheim sind, werden sie nicht veröffentlicht.
-
Clara1085 schrieb:
Aber wie machen dann das eigentlich Firmen mit streng geheimen Algorithmen.
Das würd ich mich dann schon mal fragen ?Das ist jetzt nicht unbedingt der Punkt, an den ich bei Reverse Engineering als erstes denken würde. Was genau stellst du dir unter streng geheimen Algorithmen z.B. vor, wo soll sowas vorkommen? So wirklich streng geheim sind die meisten Algorithmen nicht. Sehr vieles basiert auf irgendwelchen öffentlichen Papers. Und insgesamt sind die Algorithmen und die Programme drumherum auch so komplex, dass es wenig Spass macht, die per Reverse Engineering zu untersuchen.
-
Lol also ich denk da nur mal an Simulationssoftware. Da werden schon sehr komplexe Algorithmen verwendet die ja den Unterschied zur Konkurrenz ausmachen. Bei einer Firma wo ich war da durften nicht mal die Entwickler die unbedingt sehen. Wie schützt man also sowas.
-
Ich kenne mich da tatsächlich nicht so aus. Aber zum einen kommts mir etwas übertrieben vor, wie du das beschreibst, zum anderen gehe ich auch davon aus, dass das ganze eben so komplex ist, dass es eben nicht reicht, etwas im Assembler Code rumzulesen, um den Kern des Algorithmus zu verstehen und zur Konkurrenz aufzuschließen.
Es ist bei dem was wir machen im Grunde auch nicht viel anders. Wir haben Konkurrenten und unsere potenziellen Kunden evaluieren teilweise jahrelang, für wen die sich entscheiden. Da machen natürlich irgendwelche Features den Unterschied aus. Manchmal bekommen wir den Auftrag, manchmal die Konkurrenten. Aber die Lösungen muss man eben entwickeln. Die basieren auf den Millionen Zeilen Code und Jahrzehnten Erfahrung, die wir schon haben. Es bringt da nichts, in den Assemblercode zu schauen und "etwas" zu verstehen, damit kann noch kein Konkurrent das Feature kopieren.
-
CodeKnacker schrieb:
Ein Freund von mir sollte das in seiner BAchelorarbeit versuchen
Darum geht's doch
Guck mal da http://www.oreans.com/products.php
Bei Themida Overview/Features kann man einige der Möglichkeiten sehen, die es gibt.
-
Reverse Engineering ganz verhindern wird nicht funktionieren.
Ist doch immer das selbe die Entwickler denken sich irgendwelche lustigen Sachen aus bauen Anti Debug Kram ein und crypten den Kram und dann wird noch ein sinnloser Online Zwang rein gefrickelt.Und dann komme ich und repariere(cracke
) die Software wieder.
-
@CodeKnacker
Du kannst dir auch mal diese Seite angucken:
http://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET
Da hast du schonmal ein paar Stichwörter. Und auf den Seiten der einzelnen aufgelisteten Produkte findest du z.T. noch etwas genauere Infos. Bzw. ist zumindest eines der Teile (ConfuserEx) auch open source, d.h. du bzw. dein Freund könnte sogar im Source nachgucken.
-
@Mechanics
Naja, es gibt schon Fälle wo das anders ist. Also wo man ein paar Sachen gut unverständlich machen möchte.
Ein gutes Beispiel wären Spiele. Speziell welche die rein lokal im Single-Player laufen, aber z.B. ne online Highscore-Liste haben.Bzw. dann natürlich auch Online Games, wo es auf Grund der erforderlichen Bandbreite und/oder Rechenleistung nicht praktikabel ist alles am Server zu überprüfen, und man daher den Peers mehr oder weniger vertrauen muss.
Oder auch alles was nen Key hat der auf die eigene Firma ausgestellt wurde. Sei's jetzt ne BluRay Player Software mit ihrem BluRay Key oder irgend ein Programm das nen API Key für irgend ein Web-Service eingebaut hat.
-
Hi schrieb:
Guck mal da http://www.oreans.com/products.php
Bei Themida Overview/Features kann man einige der Möglichkeiten sehen, die es gibt.
Richtig, Themida gilt in der RE Szene als extrem recht schwierig zu knackender Schutz.