Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Nutzt ihr einen Obfuscator?

Moderationshinweis von herbivore (10.10.2013 - 15:46)

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!

BAUHAUS
myCSharp.de - Member



Dabei seit:
Beiträge: 103
Herkunft: Stuttgart

Themenstarter:

Nutzt ihr einen Obfuscator?

beantworten | zitieren | melden

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.)
private Nachricht | Beiträge des Benutzers
UnrealNemesiS
myCSharp.de - Member



Dabei seit:
Beiträge: 105
Herkunft: D - Leipzig

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Timur Zanagar
myCSharp.de - Member

Avatar #avatar-3412.jpg


Dabei seit:
Beiträge: 1.457

beantworten | zitieren | melden

Hallo BAUHAUS,

Zur Information: Hier kann man eine Umfrage erstellen und das wird auch unterstützt.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
BAUHAUS
myCSharp.de - Member



Dabei seit:
Beiträge: 103
Herkunft: Stuttgart

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BAUHAUS am .
private Nachricht | Beiträge des Benutzers
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3.003
Herkunft: Thüringen

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
0815Coder
myCSharp.de - Member



Dabei seit:
Beiträge: 767

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.767
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
sarabande
myCSharp.de - Member

Avatar #avatar-2450.jpg


Dabei seit:
Beiträge: 230

beantworten | zitieren | melden

Zitat von MrSparkle
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
private Nachricht | Beiträge des Benutzers
Jake
myCSharp.de - Member

Avatar #avatar-1878.jpg


Dabei seit:
Beiträge: 193

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Neals
myCSharp.de - Member



Dabei seit:
Beiträge: 203
Herkunft: Nordseeküste

beantworten | zitieren | melden

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";
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
BAUHAUS
myCSharp.de - Member



Dabei seit:
Beiträge: 103
Herkunft: Stuttgart

Themenstarter:

beantworten | zitieren | melden

Ja, so hatte ich mir das vorgestellt.

Danke für die Umfrage.
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4.506
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

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!”
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

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.
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.767
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Zitat
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
private Nachricht | Beiträge des Benutzers
DaMoe80
myCSharp.de - Member



Dabei seit:
Beiträge: 500

beantworten | zitieren | melden

Hallo!

@Norman_timo: Ich kann Dir nicht wie Jack30lena zustimmen.
Zitat
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?
Zitat
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.
Zitat
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
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

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.
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3.003
Herkunft: Thüringen

beantworten | zitieren | melden

Zitat von 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?

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)
private Nachricht | Beiträge des Benutzers
DaMoe80
myCSharp.de - Member



Dabei seit:
Beiträge: 500

beantworten | zitieren | melden

Hi!
Zitat
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.
Zitat
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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von DaMoe80 am .
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

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.
Maximilian
myCSharp.de - Member

Avatar #avatar-3305.jpg


Dabei seit:
Beiträge: 238
Herkunft: im dicken B oben an der Spree

beantworten | zitieren | melden

Zitat
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]
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Maximilian am .
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4.506
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

Hallo DaMoe80,
Zitat
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.
Zitat
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.
Zitat von JAck30lena
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!”
private Nachricht | Beiträge des Benutzers
DaMoe80
myCSharp.de - Member



Dabei seit:
Beiträge: 500

beantworten | zitieren | melden

Hallo,
Zitat
.. 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.
Zitat
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).
Zitat
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
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von DaMoe80 am .
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

Zitat
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.
DaMoe80
myCSharp.de - Member



Dabei seit:
Beiträge: 500

beantworten | zitieren | melden

Zitat
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
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

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....
Xynratron
myCSharp.de - Member



Dabei seit:
Beiträge: 1.177

beantworten | zitieren | melden

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!
Zitat von herbivore
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
private Nachricht | Beiträge des Benutzers
Toem99
myCSharp.de - Member



Dabei seit:
Beiträge: 511

beantworten | zitieren | melden

Ich haue mal in die Kerbe.
Zitat
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 ....
private Nachricht | Beiträge des Benutzers