Laden...

Nutzt ihr einen Obfuscator?

Erstellt von BAUHAUS vor 15 Jahren Letzter Beitrag vor 15 Jahren 15.921 Views
Information von herbivore vor 10 Jahren

Dies ist ein Thread, auf den aus der FAQ verwiesen wird. Bitte keine weitere Diskussion, sondern nur wichtige Ergänzungen und diese bitte knapp und präzise. Vielen Dank!

B
BAUHAUS Themenstarter:in
103 Beiträge seit 2006
vor 15 Jahren
Nutzt ihr einen Obfuscator?

Nutzt ihr einen Obfuscator? Das ist die Frage. So wirklich sagt mir diese Geschichte nicht zu.

Auf der einen Seite ist die Hürde zu hoch, kein einfacher Benutzer würde auf den Gedanken kommen nach dem IL-Code zu schauen um den Code für sich zu nutzen.
Auf der anderen Seite, diese speziellen Benutzer die danach schauen wird das bisschen Verschlüsselung kaum aufhalten. Irgendwann wäre auch das geknackt.

Was denkt ihr, lohnt sich ein Obfuscator. Nutzt ihr einen?

(Ich hätte zu diesem Thema auch gerne eine Umfrage erstellt, aber nicht jede Forensoftware unterstützt das.)

U
105 Beiträge seit 2004
vor 15 Jahren

Das hängt zum Einen von der Zielgruppe ab, die das Produkt am Ende nutzt und zum Anderen muss man schauen wieviel Aufwand man betreiben will um das Produkt zu schützen.

Wir nutzen keinen Obfuscator.

1.457 Beiträge seit 2004
vor 15 Jahren

Hallo BAUHAUS,

Zur Information: Hier kann man eine Umfrage erstellen und das wird auch unterstützt.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo BAUHAUS,

das sind zwei ganz verschiedene Themen. Wer einen Obfuscator nutzt, ist das eine. Ob sich das lohnt das andere? Das mit dem lohnen wurde schon ausführlich besprochen. Siehe [FAQ] .net Assembly vor Disassembling schützen (Obfuscator).

Halllo burning snow,

kommt darauf an, wer "man" ist. 😃 Nur Team-Mitglieder und Poweruser können Umfragen erstellen (Wie Umfrage erstellen?).

herbivore

B
BAUHAUS Themenstarter:in
103 Beiträge seit 2006
vor 15 Jahren

Hallo herbivore,

das mit dem "ob sich das lohnt" war mehr so eine Nebenfrage, darum gings mir gar nicht. Ich weiß das es diesen Strang gibt in dem das besprochen wurde/wird.

Mir ging es eben mehr darum wie so die Stimmung zu diesem Thema ist, eben ob es überhaupt jemand nutzt. Stimmungstest so zu sagen.

Schade das sich so wenige dazu äußern.

3.003 Beiträge seit 2006
vor 15 Jahren

Wir nutzen keinen. Wozu?

Obfuscation macht Code nicht sicherer.

(Gerade heute erst gelesen: "When auditing your code, try playing the role of an attacker WHO HAS YOUR SOURCE CODE, and then try breaking it." Dem kann man nicht viel hinzufügen. Und (urheber)rechtliche Aspekte bleiben von Obfuscation ebenso unberührt.)

Gruß,

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

0
767 Beiträge seit 2005
vor 15 Jahren

Würd ich nur nutzen wenn ich mich für das, was ich produziere, schämen müsste - und dann würd Obfuscation auch nix helfen.

loop:
btst #6,$bfe001
bne.s loop
rts

3.825 Beiträge seit 2006
vor 15 Jahren

LOL

Genau !

Ich verschlüssele meine Application.DoEvents();

😉

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

5.658 Beiträge seit 2006
vor 15 Jahren

Hallo allerseits!

Ihr scheint das Thema ja auf die leichte Schulter zu nehmen. Ich finde es schon problematisch, daß man mit einer .NET-Anwendung seinen gesamten Quellcode mit verbreitet.

Ein Obfuscator erreicht zumindest, daß man sich einige Gedanken machen muß, um den Code nachzuvollziehen. Daß es gegen das Urhebergesetz verstößt, hält kaum jemanden davon ab, per Copy und Paste einzelne Funktionen oder ganze Klassen zu verwenden. Und wer sollte es nachprüfen?

Ich selbst bin relativ geübt darin, fremden Code zu lesen und zu verstehen, aber vor dem was ein Obfuscator produziert kapituliere ich bedingungslos. Es ist weniger Zeitaufwendig, die entsprechenden Routinen selbst zu schreiben, als in dem Code danach zu suchen...

Deshalb finde ich es schon wichtig, einen Obfuscator zu verwenden, wenn man halbwegs wichtigen Code für sich behalten möchte.

Schöne Grüße,
Christian

Weeks of programming can save you hours of planning

230 Beiträge seit 2007
vor 15 Jahren

Ihr scheint das Thema ja auf die leichte Schulter zu nehmen.

Hi! Ja, weil ein Programmierer, der seine handwerklichen Defizite mit fremden Quellcode überbrücken muß, nicht am Markt bestehen wird. Der ist ganz schnell wieder wech. 😃

Ich muß schnell und flexibel auf die Wünsche des Kunden reagieren können. Muß ich mich dafür durch fremden Code wühlen, habe ich bereits verloren und meine Berufung verfehlt.

Ich bin jetzt mal ganz frech und stelle folgende Hypothese auf: Ein Programmierer, der sein geistiges Eigentum durch einen Obfuskator zu schützen versucht ist ängstlicher, als ein Programmierer der es nicht tut. 😃

Grüsse - sarabande

193 Beiträge seit 2006
vor 15 Jahren

Ich hab mal mit Nein geantwortet.
Ein Obfuscator würde bei uns auch keinen Sinn machen, da unsere Software komplett mit Quellcode an den Kunden geht.

Gruß Jake

N
203 Beiträge seit 2008
vor 15 Jahren

Wenn es um Firmeneigene Stacks geht, für bestimmte Protokolle, wird das alles in C++ geschrieben und ein Wrapper für .Net drum gelegt. Einfache Oberflächen oder sowas enthalten ja nicht gerade großes Knowhow.

.Net ist wie GPL 😉 Wer es verwendet muss auch den Code offen legen.

Wenn man ein Programm wirklich auslesen will, bringt ein Obfuscator auch nichts.

Signatur.Text = "Greetz, Neals";

1.346 Beiträge seit 2008
vor 15 Jahren

Ich verwende keinen. Ich hab aber auch noch keinen Grund dazu, denn ich verkaufe meine Software nicht. Wenn es aber irgendwann dazu kommt werde ich darüber nachdenken.

Gruß pdelvo

B
BAUHAUS Themenstarter:in
103 Beiträge seit 2006
vor 15 Jahren

Ja, so hatte ich mir das vorgestellt.

Danke für die Umfrage. 🙂

4.506 Beiträge seit 2004
vor 15 Jahren

Hallo BAUHAUS,

mal davon abgesehen, dass der Code den ich aktuell produziere in einer sehr dedizierten Umgebung läuft, kann ich von meiner Erfahrung her nur sagen:

Bisher wurde dieses Thema bei jedem Arbeitgeber angesprochen. Jeder hat zunächst einmal schockiert reagiert. Aber das andere ist, was ist der Aufwand und was ist der Nutzen davon, dass man seinen Quellcode unzugänglich macht.

In fast allen Projekten, in denen ich bisher tätig war, war jedes Mal Fachwissen gefragt, welches mit in den Quellcode geflossen ist. Wenn man dieses Fachwissen nicht besitzt, dann kann man zwar den Quellcode sich aneignen, jedoch wird man nicht richtig schlau draus, warum das so oder anders gelöst worden ist.

Die meiste Software ist für die Konkurrenz (die auch eigene Software hat) oder für den Kunden (Endanwender) völlig uninteressant. Der Endanwender möchte dass seine Software funktioniert und die Konkurrenz kann sowieso nicht das gesamte Projekt umschmeissen, nur weil es ähnlichen Softwarequelltext vorfindet (der nur eventuell besser meist nur anders ist).

Daher würd ich sagen, dass es sich einfach nicht rentiert hier Mühe und Not reinzustecken, auch noch den Quellcode schützen zu wollen. Wahre Cracker und Hacker gehen sowieso auf Assembler runter, und da kann man KEINE Software vor irgendwas schützen.

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

Gelöschter Account
vor 15 Jahren

ich gebe in allen punkten norman_timo recht. in fast jeder software, an der ich gearbeitet habe, wurde das so gehandhabt.

das problem ist, das man viel aufwand hereinsteckt um zu schützen und damit die software für den kunden, der zahlen möchte teurer macht, wobei man die kriminellen dennoch nciht aufhalten kann.

kosten-nutzen effekte sind daher bei fast jeder schutzmethode unausgewogen. bestes beispiel ist die spiele-industrie.

3.825 Beiträge seit 2006
vor 15 Jahren

Hi! Ja, weil ein Programmierer, der seine handwerklichen Defizite mit fremden Quellcode überbrücken muß, nicht am Markt bestehen wird. Der ist ganz schnell wieder wech.

Bis dahin kann er aber mit dem kopierten Sourcecode schnell mal Schaden in 5 bis 6-stelliger Höhe (ohne Nachkommastellen, in Euro) anrichten. Ist mir leider passiert.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

D
500 Beiträge seit 2007
vor 15 Jahren

Hallo!

@Norman_timo: Ich kann Dir nicht wie Jack30lena zustimmen.

In fast allen Projekten, in denen ich bisher tätig war, war jedes Mal Fachwissen gefragt, welches mit in den Quellcode geflossen ist. Wenn man dieses Fachwissen nicht besitzt, dann kann man zwar den Quellcode sich aneignen, jedoch wird man nicht richtig schlau draus, warum das so oder anders gelöst worden ist.

Hier habe ich eine Gegenfrage: Interessieren sich nicht gerade Fachleute für ein spezielles Wissen? Ist denn das nicht gerade interssant für ein Unternehmen zu wissen, wie sein Konkurrent bestimmte Daten auswertet? Warum der Konkurrent bspw. seine Daten in 2h anstatt selber die gleichen Daten in 5h auswertet?

Die meiste Software ist für die Konkurrenz (die auch eigene Software hat) oder für den Kunden (Endanwender) völlig uninteressant. Der Endanwender möchte dass seine Software funktioniert und die Konkurrenz kann sowieso nicht das gesamte Projekt umschmeissen, nur weil es ähnlichen Softwarequelltext vorfindet (der nur eventuell besser meist nur anders ist).

Ich denke gerade, dass Konkurrenten gerne auf Software bzw. die Business Logik schauen. Oberflächen sind nicht interessant, aber das Know-How, dass in der Business Logik steckt, das ist wichtig. Natürlich interssiert den Kunden nicht was unter der Haube passiert.

Daher würd ich sagen, dass es sich einfach nicht rentiert hier Mühe und Not reinzustecken, auch noch den Quellcode schützen zu wollen. Wahre Cracker und Hacker gehen sowieso auf Assembler runter, und da kann man KEINE Software vor irgendwas schützen.

Das Verb "rentiert" ist relativ. Man muss den Aufwand nicht bis ins Unermessliche steigern, aber geringer Aufwand kann schon gerechnet an dem Verlust, der eventuell durch einfaches disassemblieren mittels des Reflectors entstehen kann, sich "rentieren".
Es ist klar, das wahre Cracker und Hacker sich von Obfuscatoren und weitern Tools nicht abhalten lassen, Dinge herauszufinden. Jedoch wird durch einfach zu erstellende Barrieren, die Latte, um an "Firmengeheimnisse" zu gelangen, erhöht und die "Masse" davon abgehalten diese zu begutachten.

Gruß, DaMoe

Gelöschter Account
vor 15 Jahren

wenn jemand bereit ist geld und zeit zu investieren um an die "geheimnisse" zu kommen, dann ist es vollkomen egal welche hürde zu meistern ist.

immerhin ist auch nciht obfuskierter code schon eine hürde. das ist ja auch der grund, warum man unbedingt dokumentieren muss, da man ansonsten extrem lange zum einlesen braucht oder aber den code reimplementieren muss, wenn man änderungen machen möhte.....

ohne genaue kenntnisse der architektur und der dokumentation ist der code selbst schon von haus aus ausreichend geschützt.

3.003 Beiträge seit 2006
vor 15 Jahren

Hier habe ich eine Gegenfrage: Interessieren sich nicht gerade Fachleute für ein spezielles Wissen? Ist denn das nicht gerade interssant für ein Unternehmen zu wissen, wie sein Konkurrent bestimmte Daten auswertet? Warum der Konkurrent bspw. seine Daten in 2h anstatt selber die gleichen Daten in 5h auswertet?

Nein. Es sei denn, das Auswertungsintervall gehört in einen Geschäftsprozess, und der bedingt den Unterschied - dann ist aber der Prozess interessant, und nicht die zwei Stunden. Wie timo schrieb: das Fachwissen fliesst in die Software ein. Mir fallen nur doofe Beispiele ein, aber du wirst anhand der Konstruktion eines Winterrades, an seinem Profil u.ä. niemals die Prozesse ablesen können, die dazu geführt haben, genau dieses Profil zu entwickeln. Das Fachwissen kannst du nicht direkt aus dem Produkt extrahieren. Und das geht auch bei Software nicht. Böse ausgedrückt: was ich bei disassemblieren sehe, ist das, was die indischen Programmiersklaven anhand der Vorgabe heruntergetippt haben. Nur - nutzen würde mir mehr, was der Softwarearchitekt in seinen Ordnern hat. Die Protokolle der Meetings, die Analysen der Fachleute. Oder gleich die Fachleute und damit das Wissen selbst erwerben. Und komischerweise ist genau dieses Abwerben ein Problem auf dem Markt, und nicht das Disassemblieren und nachschreiben von Software.

Wenn sich jemand die Mühe macht, 300k und mehr LOC im Reflector zu betrachten, zu verstehen - und das nur, damit er meine Programmiertechniken abkupfern kann - ja, mein Gott. Sollte sein Programm dann dieselben Bugs wie meins haben, sehe ich jetzt schon die Zähne in der Rechtsabteilung blitzen 😉. In der Zeit, die er zum Nachvollziehen und Nachprogrammieren braucht, hab ich schon die übernächste Version draussen.

Wer nicht in Bewegung bleibt, wird sowieso von Nachahmern überholt. Ob mit oder ohne Quellcode.

Gruß,

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

D
500 Beiträge seit 2007
vor 15 Jahren

Hi!

Wer nicht in Bewegung bleibt, wird sowieso von Nachahmern überholt. Ob mit oder ohne Quellcode.

Moment einmal, der Einsatz von Obfuscation und andere Verschleierungsmittel heißt nicht, dass man sich auf dem Erreichten ausruht.

Fachwissen fliesst in die Software ein.

Da stimme ich Dir zu. Aber bleiben wir einmal bei dem Beispiel des Winterreifens. Sicher kann ich an dem Winterreifen nicht die Prozesse erkennen, die zu dem Profil geführt haben. Was aber für mich an dieser Stelle interessiert ist vielleicht nur das Profil, das ich Nachahme, weil es gute Eigenschaften hat. Das ist aber nur ein Bestandteil. Wie sieht es aber mit der Mischung des Gummis aus? Da ich kein Chemiker bin, sondern Informatiker, kann ich keine Aussage darüber machen, wie einfach es ist, eine Gummi-Mischung zu analysieren. Aber ich kann mir gut vorstellen, dass es sehr interessant für Konkurrenten ist, das Rezept/den Algorithmus der Mischung zu erfahren. Sicherlich sind die dahinterstehenden Prozesse auch interessanter, weil sie die Produktivität erhöhen. Aber reicht nicht manchmal für den Anfang aus, einen Ansatzpunkt zu haben, wie bspw. gewisse Algorithmen? Durch Obfuskation kann man sich Zeit verschaffen, dass nicht gleich mit einer neuen Version eine kopierte Version zur Verfügung steht. Es kann ein typisches Katz und Maus Spiel sein, wobei mir eine Obfuskation einen kleinen Vorteil bringt.
Kommt es nicht auch ein wenig auf die Software an, die erstellt wird? Werden konkrete Algorithmen verwendent, die wichtige Berechnungen durchführen, kann es schon wichtig sein, diese vor allzu neugierigen Augen zu schützen. Es gibt aber auch Software, die allein von der Handhabung, wie sie zu verwenden ist und mit dem Benutzer interagiert, interessant ist. Dann gibt es vielleicht gar keinen Code zu obfuskieren, da dieser keine Magie darstellt und recht einfach zu schreiben ist. An dieser Stelle zählt nur das Konzept und das kann man nicht aktiv durch Obfuskation etc. schützen.
Ich bin der Ansicht, dass wenn es nicht allzu grosser Aufwand ist, einen gewissen Schutz zu implementiern, warum sollte man Copy und Paste nicht verhindern, wenn das das Unternehmen selbst durch einfachste Mittel finanziell geschädigt wird.
Was mir gerade noch einfällt: Der Reflector ist doch selber auch geschützt. Da kann man sich doch fragen, warum ehemalig Lutz Roeder seinen Reflector geschützt hat?

Gruß, DaMoe

Gelöschter Account
vor 15 Jahren

der reflector ist nciht geschützt. er hat nur eingebaut, das man sein tool nciht mit seinem tool öffnen kann 😃

um bei dem momentanen vergleich "winterreifen" zu bleiben.

das reifenprofil ist öffentlich und lässt sich nciht verbergen. genausowenig wie die gui eines programmes.

die reifenmischung ist die technologie und lässt sich ebensowenig verbergen, wie z.b. ob eine software das .netframework benötigt.

das was an einem reifen wirklich interessant ist, ist der herstellungsprozess. und alleine aus dem reifen könnte man auf den herstellungsprozess schließen, wenn man immense mittel und sehr sehr viel zeit investiert. genauso ist es auch bei einer software.

auch wenn du einen besonderen algorithmus versteckst, der etwas besonders gut kann und für die konkurenz interessant wäre (sowas ist mir bislang ncoh nicht untergekommen, da alles keine magie ist....), muss der konkurent diesen erstmal finden. das bedeutet, er muss ihn nciht nur lokalisieren sondern auch als solchen erkennen und das ist die wahre kunst dabei. ohne dokumentation ist man so auf verlorenem posten und da ist es billiger zu reimplementieren als zu analysieren und ggf. zu kopieren.

238 Beiträge seit 2007
vor 15 Jahren

der reflector ist nciht geschützt. er hat nur eingebaut, das man sein tool nciht mit seinem tool öffnen kann 😃 Und warum hat er dann in seinen Eigenschaften ein Dotfuscator-Attribute?:
[assembly: Dotfuscator("65496:1:4.0.2579.17871")]

😉

[edit]War übrigens schon vor der Übernahme durch Rad Gate so[/edit]

4.506 Beiträge seit 2004
vor 15 Jahren

Hallo DaMoe80,

Hier habe ich eine Gegenfrage: Interessieren sich nicht gerade Fachleute für ein spezielles Wissen? Ist denn das nicht gerade interssant für ein Unternehmen zu wissen, wie sein Konkurrent bestimmte Daten auswertet? Warum der Konkurrent bspw. seine Daten in 2h anstatt selber die gleichen Daten in 5h auswertet?

Naja, ich denke, wenn meine Auswertung nur 2h braucht, und die der Konkurrenz 5h, dann muss ich an der Fähigkeit des Entwicklerteams zweifeln. Da ist wirklich die Frage, ob ein Codereview (des eigenen kommentierten Codes) und das Entwicklen von Performanceverbesserungen durch Profiler nicht billiger ist, als fremden (unkommentierten) Code zu analysieren und so umzubiegen, dass er auf meinen Code passt.

Ich denke gerade, dass Konkurrenten gerne auf Software bzw. die Business Logik schauen.

Das mag sein. Aber die Analyse, wie nun die BL des fremden Codes aussieht, und dann noch das Umstricken der eigenen, so dass die fremde Logik auch in den eigenen Quellcode passt ist ein (zu) hoher Auffwand, so dass sich das rentieren könnte. Meist ist es auch absichtlich gewollt, dass man es anders als die Konkurrenz macht, denn viele Wege führen nach Rom, und Unterscheidungsmerkmale machen gegenüber dem freien Markt die Würze im Konkurrenzleben.

auch wenn du einen besonderen algorithmus versteckst, der etwas besonders gut kann und für die konkurenz interessant wäre (sowas ist mir bislang ncoh nicht untergekommen, da alles keine magie ist....), muss der konkurent diesen erstmal finden. das bedeutet, er muss ihn nciht nur lokalisieren sondern auch als solchen erkennen und das ist die wahre kunst dabei. ohne dokumentation ist man so auf verlorenem posten und da ist es billiger zu reimplementieren als zu analysieren und ggf. zu kopieren.

So sehe ich das auch.

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

D
500 Beiträge seit 2007
vor 15 Jahren

Hallo,

.. ohne dokumentation ist man so auf verlorenem posten und da ist es billiger zu reimplementieren als zu analysieren und ggf. zu kopieren...

Wenn das wirklich der Fall wäre, dann hätten wir kein Problem mit Plagiaten in sämtlichen Sparten, sei es in der Software Entwicklung, sei es in der Textil oder Fahrzeug Industrie etc.

die reifenmischung ist die technologie und lässt sich ebensowenig verbergen, wie z.b. ob eine software das .netframework benötigt.

Das ist nicht ganz richtig. Die Technologie sind die Bestandteile eines Reifens, wie z.B. Kautschuk, Stahldrähte und andere Beigaben. Nun ist die Reifenmischung(Algorithmus) eine Zusammenstellung dieser Bestandteile (Funktionen aus dem .NET Framework).

der reflector ist nciht geschützt. er hat nur eingebaut, das man sein tool nciht mit seinem tool öffnen kann

Unabhängig davon, ob er nur eine Sperre fuer seinen eigenen Reflector eingebaut hat oder nicht. Letztendlich ist dann immer noch die Frage berechtigt, warum er das gemacht hat? Was gibt es da zu verstecken, wenn alles so einfach ist? (Die Frage ist gewollt ein wenig provokant gestellt)

Hast Du denn mal ausgetestet, ob man den Reflector mit anderen recht maechtigen Tools bspw. von RemoteSoftRemoteSoft so einfach zu decompilieren ist? Das ist nicht der Fall.

Ich denke nicht, dass wir hier auf einen Nenner kommen werden. Ich sehe alles ein wenig anders.
Zumindest ist in diesem im Poll ein Trend zu erkennen, dass die meisten keinen Obfuscator einsetzen.

Gruss, DaMoe

Gelöschter Account
vor 15 Jahren

Wenn das wirklich der Fall wäre, dann hätten wir kein Problem mit Plagiaten in sämtlichen Sparten, sei es in der Software Entwicklung, sei es in der Textil oder Fahrzeug Industrie etc.

wie bereits erwähnt: für jemanden, der bereit ist genu zeit und geld zu investieren in nicht geschütztem code zu stöbern und zu analysieren, für den ist geschützter code auch kein hinderniss mehr. das das so ist, hast du ja eben gerade selbst bestätigt.

D
500 Beiträge seit 2007
vor 15 Jahren

der bereit ist genu zeit und geld zu investieren in nicht geschütztem code zu stöbern und zu analysieren, für den ist geschützter code auch kein hinderniss mehr

Ich denke, dass es schon zu stark vereinfacht ist: Wenn man schon viel Geld und Zeit investiert um sich fremden Code anzuschauen, dann ist es einfach den Schutzmechanismus auszuhebeln.
Nein, das stimmt nicht. Wer behauptet denn, dass Software immer scher zu lesen ist, sodass sich ein schneller Blick nicht lohnt und immer viel Arbeit und Geld investiert werden muss. Sollte nicht eigentlich eine Applikation so ein gutes Design haben, dass der Sourcecode gut lesbar ist? (Und zumidest ist die Disassemblierung mittels des Reflectors sehr nahe am Source Code) Sicherlich, wenn man den Code so kryptisch schreibt, dass nur der Entwickler selber ihn versteht, dann benoetigt man keine Schutzmechanismen 😉

Gruss, DaMoe

Gelöschter Account
vor 15 Jahren

bei einem kleinen tool bis 10k LOC gebe ich dir vollkomen recht. wenn ich dir allerdings unseren code zeigen würde, dann würdest du jahre brauchen um dich einlesen zu können und das sogar mit kommentaren, wenn du nciht die erweiterte dokumentation wie z.b. uml diagramme und howto´s durchsehen darfst.

dabei verwenden wir hier immer sprechende namen und viele kommentare....

X
1.177 Beiträge seit 2006
vor 15 Jahren

huhu,

gehöre auch zur "Nein" Fraktion.

Ich sehe persönlich einfach keinen Sinn darin, Quellcode geheim zu halten. Ich meine, selbst wenn er unsauber aussieht oder Fehler hat, dann ist das eben so. Gottlob ist er recht sauber und die Bugs halten sich in Grenzen^^.

Für mich gibt es auch keine "krassen super geheimen Algorithmen" - es wird immer jemanden geben, der bei derselben Problemstellung auf ähnliche wenn nicht sogar gleiche Lösungen kommt.

Oder nehmen wir doch mal ein anderes Beispiel - Spiele. Software zum Zeitvertreib kostet ein Haufen in der Entwicklung. Wenn jetzt aber ein Konkurrent zufällig den Sourcecode bekommt, ist das schlimm? Nicht wirklich, denn z.B. die Engine eines 3D-Shooters ist zwar ein wichtiger Teil des Spiels, aber dann müssen sich immernoch zig Designer und Programmierer wirklich ein Spiel draus machen. Das kostet wiederum wertvolle Zeit und die paar Algorithmen die man aus der Engine klauen könnte reissen es dann wohl doch nicht raus.

BTW: einer der "nettesten" Algos die ich bisher gesehen hab:

float InvSqrt(float x){
   float xhalf = 0.5f * x;
   int i = *(int*)&x; // store floating-point bits in integer
   i = 0x5f3759d5 - (i >> 1); // initial guess for Newton's method
   x = *(float*)&i; // convert new bits into float
   x = x*(1.5f - xhalf*x*x); // One round of Newton's method
   return x;
}

Fast Invert Sqrt aus der Quake 3 Engine - John Carmack ist aber nicht wohl auch nicht der Urheber.

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

T
511 Beiträge seit 2008
vor 15 Jahren

Ich haue mal in die Kerbe.

Ich bin jetzt mal ganz frech und stelle folgende Hypothese auf: Ein Programmierer, der sein geistiges Eigentum durch einen Obfuskator zu schützen versucht ist ängstlicher, als ein Programmierer der es nicht tut. 😃

Ich denke das ht weniger mit Angst zu tuen. Wenn Du z.B. im Bankenberecih arbeitest und Deine Software Funktionen der Bank, sowie Kontenzugriffe usw. erlaubt, dann wirst Du kaum völlig ungeschützen Code herausgeben wollen. In diesem Bereich ist der Schutz des Quellcodes oberste Priorität.

Nicht für das Leben, für die Arbeit lernen wir ...
Windows ist Klasse, ich nehme es um Linux zu downloaden ....

3.003 Beiträge seit 2006
vor 15 Jahren

Ich haue mal in die Kerbe.

Wenn Du z.B. im Bankenberecih arbeitest und Deine Software Funktionen der Bank, sowie Kontenzugriffe usw. erlaubt, dann wirst Du kaum völlig ungeschützen Code herausgeben wollen.

Warum nicht? Security by obscurity ist kein Sicherheitskonzept.

LaTino
EDIT:
http://de.wikipedia.org/wiki/Kerckhoffs%E2%80%99_Prinzip
bzw. Shannons Maxime ("the enemy knows the system")

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

D
211 Beiträge seit 2006
vor 15 Jahren

Ich haue mal in die Kerbe.
Ich denke das ht weniger mit Angst zu tuen. Wenn Du z.B. im Bankenberecih arbeitest und Deine Software Funktionen der Bank, sowie Kontenzugriffe usw. erlaubt, dann wirst Du kaum völlig ungeschützen Code herausgeben wollen. In diesem Bereich ist der Schutz des Quellcodes oberste Priorität.

Also ich arbeite in der Bankenbranche bei einer der größten überhaupt.
Da wird keine Software mit Obfuscator verschlüsselt.
Da ist alles so weit geregelt/reglementiert, dass Du überhaupt keine Möglichkeit
hast, die entspr. Dinge anzuschauen.
Und ein Bankberater wird sich wohl kaum den Reflector runterladen um dann zu sehen,
wie seine Anwendung den Kontenzugriff technisch regelt.

Diese sicherheitsrelevanten Dinge werden über sichere Verbindungen, AppServer und Authentifierungs/Authorisierungsmechanismen geregelt.
Zudem laufen Kontenzugriffe über Subsysteme die in keinster Weise irgendwie .NET Code sind.

Es muss generell beim Schützen ein Verhältnis zw. Aufwand des Schützens und des "Wertes" des Quellcodes an sich.

Gruß

DevHB

3.003 Beiträge seit 2006
vor 15 Jahren

Es muss generell beim Schützen ein Verhältnis zw. Aufwand des Schützens und des "Wertes" des Quellcodes an sich.

Zustimmung. Wobei der Wert sich am potenziellen Schaden misst, der bei Verlust des Quellcodes auftreten kann. Übersteigen die zur Sicherung getroffenen Massnahmen den möglichen Schaden, lohnen sie nicht.

Das effizientere Verfahren ist daher nicht, so viele Sicherungsmassnahmen zu treffen, bis der mögliche Schaden abgedeckt ist, sondern den möglichen Schaden zu minimieren - was durch das Design der Software geschieht. Der Effekt ist derselbe, aber statt sich nach oben an eine Kostengrenze heranzuarbeiten, senkt man diese Grenze nach unten. Mithin: man ist konstengünstiger.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

B
53 Beiträge seit 2006
vor 15 Jahren

Hi zusammen,

wir überlegen momentan im Unternehmen, ob wir uns
http://www.smartassembly.com/
anschaffen.

Wir hatten auch schon einmal über den Dotfuscator geredet, jedoch sind mit dem wieder ettliche Schulungen und Einarbeitungen verbunden. Noch dazu ist der Preis um ein vielfaches höher.

Smartassembly haben wir in der Testversion in einem Testprojekt ausprobiert und waren im prinzip vom Handling begeistert. Ok es ist sehr klick/bunt, aber im Prinzip kann es das, was man (wir) uns davon versprochen haben.

Frage wäre nun, ob jemand mit dieser Software bereits erfahrung gesammelt hat, bzw. ob jemand das Unternehmen "Cachupa" schon einmal gehört hatte. Mir sagt der Name nichts, und wir sind deshalb nicht so ganz sicher wie zukunftssicher (wenn man in der aktuellen Lage noch von sowas reden kann 😉) diese Investition ist.

Zur allgemeinen Diskussion noch kurz.
Ich bin noch relativ frisch von der Uni und somit fehlt ich sicher noch einiges an Berufserfahrung. Jedoch finde ich, hier werden einfach sehr unterschiedliche Dinge betrachtet. Software, die in Banken/Zentralrechnern etc. läuft müsste man ziemlich sicher nicht gegen Kopie sichern. Wenn die Leute idr. nicht an die DLL kommen, ist das auch verständlich.

Handelt es sich jedoch um Software, die zu einem Privatanwender wandert, sieht die Sache in meinen Augen anders aus. Hier wird sich die Zeit, die bis zum Erscheinen eines Cracks vergeht um einiges verlängern vermute ich. Ich meine es ist Fakt, dass es Leute gibt, die sich an das Schreiben solcher dinger machen. Je einfacher sowas ist, desto schneller macht man es zwischendurch. Kommt man eben über Standardmittel (Reflector/ILDA) nicht direkt an den Code und somit an die (if (authorized)) oder ähnliches, dann werden sich manche leute auch sagen.. naja das lohnt sich nicht.

Das sind wie gesagt, nur Vermutungen und Ansichten von mir. Aber so ganz an der Realität vorbei ist es glaube ich nicht. Mich stören nur etwas die Ansichten "Wer obfuscator nutzen will, der schreibt schlimmen Code". Ich bin der Meinung, mein Code ist ganz gut. Und gerade dadurch DAS er gut/strukturiert ist, hat ein Dritter es leichter, ihn zu verstehen. Benutzt man dinge wie Pattern, Modularisierung etc. nicht, Wird jede Anwendung in meinen Augen um ein vielfaches komplexer, als wenn das ganze ordentlich geplant und strukturiert wurde. Ich sehe das also genau andersrum. Guter Code muss geschützt werden, WEIL er leichter verständlich ist.

Für neue Ansichten bin ich jedoch immer offen! 😉

Grüße,
bernett

PS: Das Thema ist nicht aus der Luft gegriffen, wir besitzen bereits ein Produkt, welches nach kürzester Zeit gecrackt wurde und somit überlegen wir uns Alternativen. Auch eine Aktivierung über Web Services ist angedacht. Auch wenn das viele hier im Forum nicht gerne hören, aber die Realität ist einfach härter als die "Code ist für Jedermann" Einstellung. Irgendwer muss unsere Löhne ja auch bezahlen. 😉

1.820 Beiträge seit 2005
vor 15 Jahren

Hallo!

Ich verwende für einige Projekte einen Obfuscator. Klar ist mir bewusst, dass man damit keinen 100%igen Schutz hat, aber zumindest ist die Schwelle schonmal für ein paar "Interessierte" etwas höher.

Nobody is perfect. I'm sad, i'm not nobody 🙁

265 Beiträge seit 2006
vor 15 Jahren

ich hab einmal den Dotfuscator an einer kleinen Anwendung ausprobiert...mein Eindruck bei der speziellen Anwendung: es war sicher schwerer die ganze Programmlogik zu verstehen, aber die Logik in den einzelnen Methoden war eigentlich recht leicht nachvollziehbar... ein Obfuscator würde -denke ich- das Aufspüren des Kopierschutzes nur verlangsamen

EDIT: ist wohl etwas OT, aber trotzdem kurz zum Kpoierschutz
Ich sehe mich eher als Anwender, als als Softwareentwickler. Daher bin ich eher ein Gegner von Kopierschutzen: konkretes Beispiel: das PC-Spiel Bioshock: man musste es bei der Install aktivieren und konnte es ursprünglich auf zwei Rechnern jeweils drei Mal installieren. Wenn man also sein System öfters aufsetzt, dann wäre diese Grenze schnell erreicht. Außerdem waren nach dem Erscheinen die Aktivierungsserver und -hotlines völlig überlastet, sodass die ehlichen Käufen tagelang das Spiel nicht spielen konnten. Bei der gecrackten Version musste man nur Image mounten, installen und konnte losspielen. Das hat mich davon abgehalten das Spiel zu kaufen/spielen!

Die Gefahr bei einem "lästigen" Kopierschutz ist, dass man potentielle Käufer vergrault; wenn die Software recht bekannt/beliebt ist, werden immer Cracks auftauchen, egal wie gut die Software geschützt ist.

-=MasterMax=-

Gelöschter Account
vor 15 Jahren

ein obfuscator ist kein kopierschutz.

B
53 Beiträge seit 2006
vor 15 Jahren

Hallo!

Ich verwende für einige Projekte einen Obfuscator. Klar ist mir bewusst, dass man damit keinen 100%igen Schutz hat, aber zumindest ist die Schwelle schonmal für ein paar "Interessierte" etwas höher.

welchen verwendest du, wenn ich fragen darf?

Das Aktivierungen lästig sind ist mir bewust, aber verlorenes Geld für "ehrlich" erstellte SW ist auch lästig. Man muss halt bei Aktivierungen die entsprechende Infrastruktur und Ausweichoptionen liefern. Dann denke ich auch, dass die wenigsten Leute damit ernsthafte Probleme hätten...