Arduino Forum

Forum 2005-2010 (read only) => International => Deutsch => Topic started by: 3WalterM4 on Nov 09, 2010, 10:01 am

Title: Programm-Code vom Arduino laden?
Post by: 3WalterM4 on Nov 09, 2010, 10:01 am
Ist es möglich ein Programm, das auf dem Duemilanove ist, wieder runterzuladen? Und wenn ja, wie könnte man dies verhindern?

Hintergrund: Manchmal möchte man etwas für sich behalten.  ;)
Title: Re: Programm-Code vom Arduino laden?
Post by: Jomelo on Nov 09, 2010, 10:26 am
Das Runterladen ist schon ziemlich schwierig.

Wenn man was runterladen kann (es hängt von den Internen Einstellungen des Chips ab), dann ist es nur das HexFile also der compilierte Code.

Den Quelle Code den du vorliegen hast kann man nicht wieder herstellen.

Aus dem HexFile kann man zwar auch mit viel Aufwand wieder Code generieren, dort gibt es dann aber keine Kommentare, Klassen usw...
Title: Re: Programm-Code vom Arduino laden?
Post by: sth77 on Nov 09, 2010, 10:31 am
Im Prinzip verhindert man das nachträgliche Auslesen über die Lock Bits des Mikrocontrollers, wie man das aber in der Arduino-Welt umsetzt, kann ich dir nicht sagen. ;)
Das Resultat nach dem Auslesen ist allerdings nicht mit deinem Quellcode vergleichbar, dass müsste dann eher Maschinensprache sein.

Nun sag schon, was hast du zu verbergen? ;)
Title: Re: Programm-Code vom Arduino laden?
Post by: uwefed on Nov 09, 2010, 11:06 am
Hallo WalterM
Ich bin nicht Deiner Meinung.

Wir haben Arduino, weil andere ihr Wissen, Arbeit und die Ergebnisse ihrer Arbeit der Allgemeiheit gratis und zur allgemeinen Nutzung zur Verfügung stellen.

Darum ist es richtig, daß auch Du Deinen Beitrag der Allgemeinheit zur Verfügung stellst.
Du darfst damit Geld verdienen mußt aber alles (HW und SW) pubblizieren (ist Teil der Lizenz mit der Arduino verbreitet wird).

Hätten die Entwickler des Arduino nicht das Projekt als Creative Commons Attribution-ShareAlike 3.0 License ( http://creativecommons.org/licenses/by-sa/3.0/ ) lizensiert, liege Arduino jetzt in irgendeiner Schublade der Firma Olivetti, die das Projekt auf der Uni in Ivrea sponsorisiert hatte.

Das Lock-Bit kannst du mit enem ISP-Programmierer setzten, aber beim zurücksetzen des Lockbits wird aller Code mitgelöscht.

Grüße Uwe
Title: Re: Programm-Code vom Arduino laden?
Post by: 3WalterM4 on Nov 09, 2010, 12:00 pm
Hallo Uwefed,
klingt schon richtig persönlich wenn Du sagst: [ch8222]....dass auch Du Deinen Beitrag der Allgemeinheit zur Verfügung stellst[ch8220].
Das kann mir ja nun niemand vorwerfen, dass ich Dinge die ich entwickelt habe, nicht der Allgemeinheit frei zur Verfügung stelle. Genau wie Du hier im Arduino-Forum bin ich im DAVID-Forum mit vielen Beiträgen präsent. Z.B.:
http://www.david-laserscanner.com/forum/viewtopic.php?p=12366#p12366

und jetzt hier:
http://www.david-laserscanner.com/forum/viewtopic.php?f=6&t=2383

Es gibt aber auch Programme, die bessere Programmierer als ich für mich schreiben und die ihr Geld damit verdienen und nicht möchten, dass es kopiert wird. Glaube mir, alles was ich bisher entwickelt oder geschrieben habe und was Wert war veröffentlicht zu werden, habe ich auch publik gemacht.

Gruß,

Walter


P.S.: Dank Allen für die Beiträge zu meiner Thread-Frage.
Title: Re: Programm-Code vom Arduino laden?
Post by: Megaionstorm on Nov 09, 2010, 12:18 pm
Reverse Engineering & Disassembler:
http://de.wikipedia.org/wiki/Disassembler
http://de.wikipedia.org/wiki/Reverse_Engineering

Eben das was sich die sogenannte Crackerszene zu nutzen macht.
Eben diejenigen welche aus Computerspielen die Kopierschutzabfrage entfernen !
Die gab es schon zu C64 Zeiten, ca. 1980, wie z.B. der CCC !

Zitat:
Quote
Cracker umgehen Zugriffsbarrieren von Computer- und Netzwerksystemen. Das beinhaltet das Aushebeln von Schutzmechanismen einer Software durch Cracking, von der widerrechtlichen Manipulation kommerzieller Software bis hin zu einer legalen Crackerszene begeisterter Programmierer, die mithilfe ihrer eigenen CrackMes einen Sport auf geistiger Ebene praktizieren.


Hinzu kommt dann noch die Emulatorprogrammiererszene wo ganze Computerspiele aus alten Videospielautomaten ausgelesen und emuliert werden. Wobei ich nicht von Telespielkonsolen sondern von Spielhallenautomaten rede. Z.B. http://de.wikipedia.org/wiki/M.A.M.E.


Man kann die Anfangsfrage also nur mit einem JA beantworten !

Ich denke mir mal das Profi-Assemblerprogrammierer so einiges können !
Title: Re: Programm-Code vom Arduino laden?
Post by: saw0 on Nov 09, 2010, 01:05 pm
Quote
Manchmal möchte man etwas für sich behalten.


Dann behalte die OpenSource-Platform Arduino auch für dich, und entwickle propietäre Chips und den zugehörigen Vode die du dann nach Lust und Laune encrypten kannst.
Title: Re: Programm-Code vom Arduino laden?
Post by: Megaionstorm on Nov 09, 2010, 01:12 pm
Propietäre Chips ? Vode ?

Bitte kurze Begriffserklärung !

OpenSource ist ein Pool aus dem sich jeder bedienen kann und in dem jeder sein eigenes Wissen zum Wohle anderer mit einbringt. So sollte es auch bleiben ! Geheimniskrämerei ist mit OpenSource nicht im geringsten vereinbar !
Title: Re: Programm-Code vom Arduino laden?
Post by: saw0 on Nov 09, 2010, 01:14 pm
propietär sollte proprietär heissen, Vode sollte Code heissen.

Soviel sollte deine interne Fehlerkorrektur schon noch funktionieren, wenn nicht - Threshold runterschrauben ;)
Title: Re: Programm-Code vom Arduino laden?
Post by: Megaionstorm on Nov 09, 2010, 01:19 pm
Das Wort Vode gibt es übrigens wirkklich. Das Vode ist ein alter mandalorianischer Kriegsgesang.

Entschuldige, aber ich habe das Wort proprietär noch nie zuvor gehört gehabt. Bedeutet also so viel wie unfrei !
Title: Re: Programm-Code vom Arduino laden?
Post by: 3WalterM4 on Nov 09, 2010, 01:27 pm
Mensch du lieber Gott, hier wird ja richtig zurückschossen.

Apogee, hast Du denn meine Erklärung in # 4 nicht verstanden?

Von all meinen bisher ca. 40 Meldungen im deutschen und englischen Teil des Arduino-Forums waren insgesamt nur 2 Fragen. Sonst nur Beiträge. D.h. ich rufe hier nicht nur Wissen kostenlos ab, sondern versuchte auch etwas zum Forum mit beizutragen.
 
Title: Re: Programm-Code vom Arduino laden?
Post by: sth77 on Nov 09, 2010, 01:39 pm
Ich komme ja ursprünglich aus der Bascom-Programmierecke, hab mir das Arduino-Board eher als reine Hardwarebasis zugelegt und wollte beliebige Mega8, Mega48, bis hin zum Mega328 über den ISP programmieren. Daher auch mein Verständnis für den Threadstarter.
Letztlich muss ich aber uwefed Recht geben, wer komplett auf Open Source setzt (wie ich jetzt), sollte meines Erachtens auch einigermaßen "anständig" mit den eigenen Werken und Wertschöpfungen umgehen. Natürlich besteht keine Veröffentlichungspflicht, aber zusätzliche Sicherungsmaßnahmen reinzubasteln widerspricht dem Charakter des gesamten Projektes.
Title: Re: Programm-Code vom Arduino laden?
Post by: MaFu on Nov 09, 2010, 01:53 pm
@WalterM
Geht es Dir darum, dass keiner den Programmcode entschlüsseln kann? Oder willst Du verhindern, dass es 1:1 auf einen anderen Chip kopiert wird?
Title: Re: Programm-Code vom Arduino laden?
Post by: uwefed on Nov 09, 2010, 03:21 pm
Hallo WalterM

Meine Antwort war keine persönliche Attake gegen Dich oder irgendein Vorwurf was Du gemacht oder nicht gemacht hast. Wenn das so rübergekommen ist entschuldige ich mich bei Dir.
Ich will auch nicht richten, ob Du genug getan hast damit Dir geholfen werden darf.
Mir gefällt ein Zitat eines Liedes von Konstantin Wecker sehr gut: "nur Du hast das Recht, Dein Richter zu sein".

Mir gefällt die Idee nicht, daß man auf den Ideen anderer aufbaut und dann das selbstgemachte geheimhalten will. Dies ist genau das Gegenteil von der Idee die hinter Arduino steht und mit der Arduino so populär geworden ist.
Stimme voll mit dem letzten Beitrag von sth77 zu. "Für Dich behalten JA; Unterbinden daß andere es nutzen können NEIN"

Ich glaube es sind wenige in der Lage, den Code eines Sketches vom ATmega runterladen zu können. Die das Wissen dazu haben, haben auch das Wissen das Programm nachzuschreiben.

Grüße Uwe


Title: Re: Programm-Code vom Arduino laden?
Post by: 3WalterM4 on Nov 10, 2010, 02:21 pm
Alle Aufregung hier war umsonst [ch8211] Es ist gerade von den Programmierern beschlossen worden, den Code um den es mir hier ging,  im DAVID-Laserscanner-Forum zu veröffentlichen.  Natürlich nicht wegen der Reaktion hier.
Und ich werde dann den entsprechenden Schaltplan und die Gerätebeschreibung dazusetzen.

Nur, was mich hier verwundert hat, das war der Ton. Ich muß zugeben, so etwas war ich nicht gewoht. Natürlich ist ein Forum kein Streichelzoo, soll es auch nicht sein. Aber solche Reaktionen? Man lernt dazu.

Ich hoffe, dass ich mich trotz meines [ch8222]unmöglichen Vorhabens[ch8220] hier noch irgendwann mal sehen lassen kann und dass mir dann, lt. Uwefed, überhaupt geholfen werden darf.

Abschließend noch allen, die mir konstruktiv geantwortet haben, vielen Dank.

Walter
Title: Re: Programm-Code vom Arduino laden?
Post by: sth77 on Nov 10, 2010, 02:43 pm
Der Ton war doch gar nicht so hart, wenn man sich den Thread nochmal durchliest. Ich denke, das hat eher mit deinem subjektiven Empfinden zu tun, dass dein Anfangsgedanke mehrheitlich abgelehnt wurde.
Nichts desto trotz ist jeder Arduino-Jüngling ein gern gesehener Gast, das Helfen in der Gemeinschaft hat ja auch seine Reize, es eröffnet sowohl dem Leser als auch dem Helfer selbst neue Horizonte. ;)
Also immer schön am Ball bleiben und uns über die Entwicklung berichten.
Title: Re: Programm-Code vom Arduino laden?
Post by: optikorakel on Nov 17, 2010, 09:07 pm
Um nochmal darauf zurück zu kommen. Ich habe einen Ausleseschutz über die Lockbits mit dem AVRDUDE gesetzt.

Kann man auch nachträglich noch setzen:
avrdude -p m168 -c usbtiny -U lock:w:0x3C:m

Schon kommt beim auslesen nur noch Datenmüll raus. Und das Programm kann nicht mehr so einfach kopiert werden.
Title: Re: Programm-Code vom Arduino laden?
Post by: uwefed on Nov 17, 2010, 09:26 pm
Hallo Optikorakel

Zuerst klarstellen: das soll kein Angriff auf Dich sein, sondern ein Meinungsaustausch. Ich tausche meine Meinung mit Euch aus.

Uns ist schon bewußt daß dies möglich ist und wenn man ein wenig googelt bzw im Datenblatt des ATmega nachschaut weiß man auch wie.  

Die Frage ist aber einen andere: ob das aus moralischen Gründen vertretbar ist, den Code den man mit Hilfe der Forumsteilnehmer und aller die den Arduino erarbeitet haben und ihn unter eine freien Lizenz gestellt haben, geheimhalten zu wollen und zu erschweren, daß man ihn herunterladen kann. Die Arbeit um ein Projekt zu verwirklichen in allen Ehren, aber dann muß man auch die Arbeit und den Willen der "Vorkämpfer" respektieren.

Grüße UWe
Title: Re: Programm-Code vom Arduino laden?
Post by: optikorakel on Nov 17, 2010, 09:58 pm
Das sehe ich ähnlich. Wenn ich etwas interessantes programmiert habe, was anderen auch nützlich sein könnte, dann teile ich das.

Ich habe aber auch Respekt davor, wenn jemand sein Programm vor dem auslesen schützen möchte.

Ich habe z.B. die Lockbits in einem twitternden Arduino gesetzt. Da könnte ja sonst jemand mein gespeichertes Passwort auslesen. Ist zwar sehr unwahrscheinlich, aber trotzdem... man weiß ja nie  ;)

Anderes Beispiel: Du baust ein USB Dongel welches Daten signiert. Den Code kann man veröffentlichen. Vielleicht möchte jemand so etwas ja auch nachbauen. Aber der geheime Schlüssel auf dem AVR würde ich wohl besser gegen auslesen und kopieren schützen.

Also -U lock:w:0x3C:m kann auch sinnvoll sein.
Title: Re: Programm-Code vom Arduino laden?
Post by: 3WalterM4 on Nov 18, 2010, 10:45 am
So, wir haben nun das Gerät, um das es in diesem Thread ging, veröffentlicht.
Wer sich nun für die Technik interessiert kann es hier finden:

http://www.david-laserscanner.com/forum/viewtopic.php?f=6&t=2421

Konstruktive Beiträge (zur Verbesserung) sind dort sehr willkommen.