Forum: Mikrocontroller und Digitale Elektronik ATmega16 (16A80637J) Maschinencode mit Decompiler umwandeln


von Sven F. (svenatmega)


Lesenswert?

Hallo,

habe hier einen Atmel Mikrocontroller ATmega 16 (16A80637J) ausgelötet. 
Vermutlich weist dieser einen Defekt auf. Habe diesen Controller mit dem 
Programm Pony Prog 2000 komplett auslesen lassen. Dieses auslesen ging 
sehr gut. Möchte nun den Maschinencode als lesbaren Quellcode umwandeln. 
Mit welchem Programm kann ich dieses leicht realisieren.

Habe auf meinem Windows System das Programm Atmel Studio 6.1 
installiert. Aber leider kann ich dort so etwas nicht dekompilieren.

Wie kann ich vorgehen, um dieses Problem zu lösen ?

Über eine Antwort würde ich mich sehr freuen.

Grüße, Sven

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Sven Frey schrieb:

> Habe auf meinem Windows System das Programm Atmel Studio 6.1
> installiert. Aber leider kann ich dort so etwas nicht dekompilieren.
>
> Wie kann ich vorgehen, um dieses Problem zu lösen ?

1)
Die einzig wirklich wichtige Sprache, also Assembler lernen.

2)
Die erworbene Kenntnisse benutzen, um die Ausgabe von (z.B.) ReAVR mit 
einem Editor soweit nachzubearbeiten, daß ein assemblierfähiger 
Quelltext rauskommt. Das geht in den meisten Fällen noch verhältnismäßig 
einfach.

3)
Kenntnisse in jeder Richtung ausbauen.
a) Asm-Kenntnisse
b) Hardware des Zielsystems
b) Funktionsweise des im Original verwendeten Compilers
d) allgemeine Kenntnisse über Algorithmen und Datenstrukturen aneignen

Wenn du damit durch bist, kannst du nicht nur das geklaute Programm nach 
Belieben deinen Bedürfnissen anpassen, sondern bist ganz allgemein ein 
brauchbarer Programmierer. Du mußt dann bloß noch diese völlig 
idiotische C-Syntax lernen und schon bist du überall ein gefragter 
Mann...

von Wolfgang (Gast)


Lesenswert?

Sven Frey schrieb:
> Aber leider kann ich dort so etwas nicht dekompilieren.

Dekompilieren hat etwas von automatischer Übersetzung.
Einen Disassembler kannst du versuchen, auf den Code loszulassen. Der 
hat allerdings auch gerne Schwierigkeiten, Programmteile von im 
Programmspeicher abgelegten Daten/Tabellen zu unterscheiden.

von Oliver (Gast)


Lesenswert?

Ein tool zum Disassemblieren ist ReAVR. Wie schon geschrieben wurde, ist 
der Prozeß iterativ, da die Unterscheidung zwischen Daten und Code nicht 
automatisch gelingt. Da muß man per Hand nachhelfen.

Oliver

von Sven F. (svenatmega)


Lesenswert?

Vielen Dank für Eure Hilfe. Mit Assembler kenne ich mich schon gut aus. 
Habe vor Jahren viel mit dem Buch von Joachim Rohde und Marcus Roming 
gearbeitet. Da ist ein bisschen was hängen geblieben. :-)

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Sven Frey schrieb:

> Habe vor Jahren viel mit dem Buch von Joachim Rohde und Marcus Roming
> gearbeitet. Da ist ein bisschen was hängen geblieben. :-)

Das wird dir helfen.

Das Verrückte ist nämlich: Sowenig "portabel" die Sprache Assembler 
selber ist, das mittels Asm-Programmierung erworbene grundlegende 
Verständnis der Funktionsweise von Computern ist überaus portabel und 
hilft beim Umgang mit jeder_ anderen Sprache und mit _jedem anderen 
Zielsystem, solange es nur binär und digital arbeitet.

von Stephan B. (matrixstorm)


Lesenswert?

c-hater schrieb:
> Das Verrückte ist nämlich: Sowenig "portabel" die Sprache Assembler
> selber ist, das mittels Asm-Programmierung erworbene grundlegende
> Verständnis der Funktionsweise von Computern ist überaus portabel und
> hilft beim Umgang mit jeder_ anderen Sprache und mit _jedem anderen
> Zielsystem, solange es nur binär und digital arbeitet.

Uneingeschraenktes ACK

von Frank L. (hermastersvoice)


Lesenswert?

Bist du denn überhaupt sicher dass du etwas Sinnvolles ausgelesen hast? 
Man kann auch einen gelockten Chip auslesen, geht prima, steht leider 
nur Müll drin.

von holger (Gast)


Lesenswert?

>> das mittels Asm-Programmierung erworbene grundlegende
>> Verständnis der Funktionsweise von Computern ist überaus portabel und
>> hilft beim Umgang mit jeder_ anderen Sprache und mit _jedem anderen
>> Zielsystem, solange es nur binär und digital arbeitet.
>
>Uneingeschraenktes ACK

Immer das gleiche Gelaber. Die Funktionsweise eines
Computers erlernt man durch zusammenschalten von 74er
oder 40er Digitalgattern. Also Digitaltechnik pur.
Assembler ist da schon eine Hochsprache. Und schneller
als Assembler ist das auch noch;)

von Stephan B. (matrixstorm)


Lesenswert?

holger schrieb:
> Immer das gleiche Gelaber. Die Funktionsweise eines
> Computers erlernt man durch zusammenschalten von 74er
> oder 40er Digitalgattern.

Ach quatsch: Maxwell Gleichungen sind noch besser!

von YEET (Gast)


Lesenswert?

YEET

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
Noch kein Account? Hier anmelden.