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!!
"Habe da mal was gehört von Dekompillieren oder so" Mit welchem Compiler habt Ihr denn gearbeitet?
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
"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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.