mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Quellcode vom µC ziehen?


Autor: Emely (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

habe ein Problem... wir haben vor einiger Zeit mal einen Atmega16 in
der Schule programmiert (jeder hat eine Platine gebaut). Jetzt wollte
ich wieder damit anfangen und das Programm auf dem Controller
weiterentwickeln. Der Lehrer hat es aber nicht mehr und die anderen
auch alle nicht.

Kann man das Programm aus dem Controller holen um es auf dem PC zu
bearbeiten?

Habe da mal was gehört von Dekompillieren oder so... würde mich über
hilfe freuen!!

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Habe da mal was gehört von Dekompillieren oder so"

Mit welchem Compiler habt Ihr denn gearbeitet?

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, Emely,

meinst Du genau das, was mit den Lock-Bits verhindert werden kann?
Auslesen des Programmcodes aus dem Flash und dann rückwärts wieder den
C-Code finden, der zu diesem Programm geführt hat?

Ein Disassembler gibt Dir einen Assembler-Code, den Du erneut
assemblieren und programmieren kannst.
Google einfach nach "AVR Disassembler".

Die Zurückübersetzung in die Hochsprache findet eine Grenze an der
Vielfältigkeit, in der Du Dich in C ausdrücken kannst - Du kannst
Schleifen bilden mit
a) for(;;),
b) while() und
c) do()while.
Im Disassembly erkennst Du, daß da eine Schleife ist. Aber alle drei
Formen der Schleifen können zu so ähnlichem Code führen, daß die
Rückübersetzung nur geschätzt werden kann.

Ähnlich- würden wir einen Sherlock-Holmes Krimi rückübersetzen auf
Englisch, würde Sir Arthur Conan Doyle wohl erkennen, daß das eine
Rüpckübersetzung seines Originals ist, wohl auch, aus der Sprache
Deutsch, aber die Rückübersetzung wird nie das Orignal sein.

Wenn keiner mehr die Sourcen hat, dann ist die Tätigkeit
"weiterentwickeln" mit einem Disassembly nicht mehr exakt möglich.

Ciao
Wolfgang Horn

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Decompiler" funktionieren nur in der Theorie, mit einfachen
Programmen die ohne Optimierung übersetzt wurden. Sobald Optimierungen
eingeschaltet waren (z.B. -O2 oder -Os beim gcc), hat das Decompilat
überhaupt nix mehr mit dem ursprünglichen Source-Code zu tun.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim disassemblieren verwendet man unglaublich viel Zeit darin diesen
"Source code" zu verstehen um dann wiederum Änderungen vorzunehmen.
Mit kriminalistischem Spürsinn muss man Datenbereiche vom Code trennen.
Mein Tip: Neu anfangen ist der deutlich effektivere und schnellere Weg.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.