Forum: Mikrocontroller und Digitale Elektronik Tamagotchi hacking


von chris (Gast)


Lesenswert?

Natalie Silvanovich zeigt wie ein Thamagotchi zu hacken ist:
http://hackaday.com/2012/12/31/tamagotchi-hacking-in-depth/

Die interessanteste Frage bleibt aber offen: Wie kann man das Masken-ROM 
des MCs dumpen?
Vielleicht könnte man mit Mikroelektroden direkt auf den Chip gehen?

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Vielleicht ein Mikroskop,wenns echtes MaskenROM und kein EPROM ist.
320 oder 640 kByte sind allerdings einiges.

von Ben _. (burning_silicon)


Lesenswert?

Tamagotchis hackt man am besten mit einer Axt. Furchtbare Erfindung!

von chris (Gast)


Lesenswert?

>320 oder 640 kByte sind allerdings einiges.

Das mit den 640 kByte für einen 6502 kann ich nicht so recht glauben. Ob 
sie sich da mal nicht verzählt hat ...

>Vielleicht ein Mikroskop,wenns echtes MaskenROM und kein EPROM ist.

Laut ihrer Aussage soll es ja eines sein. Das Mikroskop bräuchte wohl 
eine recht gute Auflösung. Kann man den Code wirklich sehen?

von chris (Gast)


Lesenswert?


von Möwie (Gast)


Lesenswert?

chris schrieb:
> Microprobing scheint die Lösung zu sein:
> http://www.heise.de/newsticker/meldung/29C3-Tiefen...

Ziemlich teuer wenn man das prof. machen lässt.

von FA (Gast)


Lesenswert?

Dennis Heynlein schrieb:
> Vielleicht ein Mikroskop,wenns echtes MaskenROM und kein EPROM ist.
> 320 oder 640 kByte sind allerdings einiges.

Kommt auch wieder stark auf den Prozess an, in dem gefertigt wurde 
(Strukturgröße). Und auf welcher Metallebene codiert wurde, z.T. liegen 
höhere Metallebenen drüber, sogar als Sichtschutz gedacht.
Wenn die Bits in einer Via-Ebene codiert sind, hilft sowieso nur noch 
planparallel bis zur gewünschten Ebene abtragen.

Und wenn man per Mikroskop auslesen kann, heisst das noch lange nicht, 
dass logisch zusammengehörige Bits auch physikalisch nebeneinander 
liegen...

Da lässt sich beliebig viel Zeit vergraben - daher auch der Preis für 
professionelles Reverse Engineering

von Electronics'nStuff (Gast)


Lesenswert?

Warum verwendet ein Mensch so viel Intelligenz und Zeit auf so einen 
Abfall?

von undef (Gast)


Lesenswert?

Electronics'nStuff schrieb:
> Warum verwendet ein Mensch so viel Intelligenz und Zeit auf so einen
> Abfall?

Na weil man so seine eigenen Fähigkeiten trainieren kann. Deswegen haben 
Leute die sowas machen auch meist wesentlich mehr auf'm Kasten als jene 
die sich fragen wieso man sowas überhaupt macht. ;-P

von Electronics'nStuff (Gast)


Lesenswert?

undef schrieb:
> Leute die sowas machen auch meist wesentlich mehr auf'm Kasten als jene
> die sich fragen wieso man sowas überhaupt macht. ;-P

Mir ist klar, dass das eine sehr kluge Frau sein muss.
Allerdings würdest du dich auch wundern, wenn Ronaldinho auf einmal bei 
dir auf dem Fussballplatz rumkicken würde.

von Dennis X. (Gast)


Lesenswert?

Electronics'nStuff schrieb:
> Warum verwendet ein Mensch so viel Intelligenz und Zeit auf so einen
> Abfall?

Muss denn alles immer einen Sinn haben? Kann man manche Sachen nicht 
einfach mal so zum Spaß machen? Ich finde den Beitrag sehr interessant 
und bemerke des öfteren, dass im Video der gesamte Saal zu lachen 
beginnt. Also ist es eher mit etwas Humor zu nehmen. In etwa so wie 
diese Live-Hacking Auftritte von diversen (zum Teil sehr klugen) 
Informatikern.

von Peter D. (peda)


Lesenswert?

chris schrieb:
> Wie kann man das Masken-ROM
> des MCs dumpen?

Willst Du wirklich, daß deren Entwickler vor Scham in den Boden 
versinken müssen?
Die sind doch heilfroh, daß keiner weiß, was für stümperhafte Programme 
sie darin verbrochen haben.


Peter

von chris (Gast)


Lesenswert?

>Willst Du wirklich, daß deren Entwickler vor Scham in den Boden
>versinken müssen?

Ich weiß nicht. Die Tamagochis wurden sicherlich mehrere Millionen Mal 
verkauft. Bei dem Erfolg finde ich den Programmierstiel zweitrangig. Es 
muss immerhin so gut gemacht sein, dass sich die Teenies längere Zeit 
damit befassen.
Natalie erwähnt in ihrem Video, dass es sich bei dem Programm um eine 
riesige Switch-Case Anweisung handelt.
Vielleicht könnte man das Ganze als eine Art große Statemachine 
betrachten, deren Zustände im externen EEPROM liegen.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

bei Minute 12:10 hat sie ja mal aufgeschrieben welcher Prozessor vom 
optischen Vergleich her in Betracht kommt.

http://mirror.fem-net.de/CCC/29C3/mp4-h264-HQ/29c3-5088-en-many_tamagotchis_were_harmed_in_the_making_of_this_presentation_h264.mp4

Für mich ist ja meist bei einem OTP/MaskROM Schluß mit Interesse an 
Reverse Eng.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Peter Dannegger schrieb:
> Willst Du wirklich, daß deren Entwickler vor Scham in den Boden
> versinken müssen?

Ich gehe davon aus, dass Natalie S. den Code, sollte sie ihn jemals 
hacken, nicht veröffentlicht. Andernfalls dürfte sie Ärger bekommen 
(Copyright), was sie sicher nicht will. Sicher achtet man schon auf ihr 
Tun.

Auch ich schaue mir als Programmierer immer wieder gern an, wie man so 
etwas realisiert hat.

Ich bin selbst am Code aus einem MB8843 interessiert, der in einem alten 
Spielzeug MZ-40K von Sharp steckt. No chance, ausser, man zahlt für das 
teure RE-Verfahren. Doch so viel ist die Neugierde dann auch nicht wert.

von Peter D. (peda)


Lesenswert?

Karl-Heinz M. schrieb:
> Auch ich schaue mir als Programmierer immer wieder gern an, wie man so
> etwas realisiert hat.

Ehe ich mir ein Disassembly anschaue, muß das Programm schon wirklich 
was sehr interessantes leisten.
Ein Tamagotchi kann doch jeder Anfänger ruckzuck in Bascom zusammen 
schustern.

Fremden Code schaue ich mir nur im Klartext als C/C++ Source an.


Peter

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Peter Dannegger schrieb:
> Ehe ich mir ein Disassembly anschaue, muß das Programm schon wirklich
> was sehr interessantes leisten.

Der eine so - der andere so, klar. Für manch einen ist etwas 
interessant, was jemand anders überhaupt nicht interessiert.

Es geht mir nicht darum das Rad neu zu erfinden, sondern das erfundene 
Rad zu untersuchen, das macht den Reiz für mich aus. Das kann kein 
Anfänger. Der kann nur Tamagotchis programmieren, wie Du meinst...

Wollte ich etwas kopieren und würde mich das Original gar nicht 
interessieren, wär ich hier nicht da gewesen ;-) Warum warst Du hier? 
;-) Wegen der Info, dass Du als Anfänger Tamagotschis programmieren 
kannst? ;-)

Disassemblies zu untersuchen sind auch nichts für Anfänger, da geb ich 
Dir recht.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Natalie S. hat sich aber das Interesse am elektronischen Spielzeug über 
die vom Hersteller geplante Aufmerksamkeitsspanne erhalten.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Dennis Heynlein schrieb:
> Natalie S. hat sich aber das Interesse am elektronischen Spielzeug über
> die vom Hersteller geplante Aufmerksamkeitsspanne erhalten.

Ihr Interesse kann ich gut nachvollziehen. Damit rechnen Hersteller 
sicher und versuchen, das zu verhindern. Kann ich auch nachvollziehen.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Electronics'nStuff schrieb:
> Allerdings würdest du dich auch wundern, wenn Ronaldinho auf einmal bei
> dir auf dem Fussballplatz rumkicken würde.

Mist, dann war er das gar nicht? ;-)

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Peter Dannegger schrieb:
> Die sind doch heilfroh, daß keiner weiß, was für stümperhafte Programme
> sie darin verbrochen haben.

Wenns denn keiner weiß, woher Du?

von Hans Franz (Gast)


Lesenswert?

chris schrieb:
> Natalie Silvanovich zeigt wie ein Thamagotchi zu hacken ist:
> http://hackaday.com/2012/12/31/tamagotchi-hacking-in-depth/

Die Stimme ist so richtig zum abgewöhnen...

von Peter D. (peda)


Lesenswert?

Karl-Heinz M. schrieb:
> Der kann nur Tamagotchis programmieren, wie Du meinst...

Ich kenne die nur vom Hörensagen. Selber habe ich noch keins gesehen.
Der Programmablauf dürfte etwa folgender sein:

- Timer starten
- Timer läuft ab -> Anzeige: "Hunger"
- Taste "Füttern" drücken -> weiter
usw.

Das sollte wirklich auch ein Anfänger schaffen.

Der Trick an den Tamagotchis war nur der, die Idee dazu zu haben und 
einen Markt dafür zu schaffen.
Also nicht die Software war das primäre Problem. Daher habe ich weder 
Interesse an der SW, noch erwarte ich in der SW irgendeine Innovation.


Peter

von Simon B. (nomis)


Lesenswert?

Peter Dannegger schrieb:
> Der Programmablauf dürfte etwa folgender sein:

Man merkt, dass du den Vortrag nicht angeguckt hast. Da steckt 
inzwischen mehr dahinter, die Dinger können mit IR kommunizieren (eine 
Motivation von Natalie war wohl, aus einem Tamagotchi eine TV-B-Gone zu 
machen), haben eine Schnittstelle für Aufsteckmodule und können 
"Nachkommen" produzieren.

...nicht wirklich genug um das Spielzeug für mich interessant zu machen 
- und mit dem Mask-ROM wirds direkt noch ein tacken uninteressanter - 
aber durchaus lustig.  :)

Und der Vortrag war toll, auch weil er eben nicht nur aus "seht her was 
ich tolles gemacht habe" bestand, sondern auch die Irrwege beschreibt.

Viele Grüße,
        Simon

von Markus M. (adrock)


Lesenswert?

Hans Franz schrieb:

> Die Stimme ist so richtig zum abgewöhnen...

Was ja nun auch total wichtig ist... hört sich für mich eher so an, als 
ob die total unter Stress steht bzw. aufgeregt ist.

Wie auch immer, ich fand den Beitrag ganz amüsant, vor allem das mit den 
drei Bits fürs Gesdchlecht oder so :-)

Grüße
Markus

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Markus M. schrieb:
>> Die Stimme ist so richtig zum abgewöhnen...
>
> Was ja nun auch total wichtig ist...


In dem Fall nicht. ;-)

> hört sich für mich eher so an, als
ob die total unter Stress steht bzw. aufgeregt ist.

Genau das dachte ich auch sofort. Geht wohl jedem so, wenn man nicht oft 
Redner(in) vor grossem Publikum ist.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich frage mich, wie ein 6502 Derivat mit angedockten LCD Kontroller 
immerhin 640k/320k ROM addressieren kann, bzw. ob sie sich da nicht doch 
vertan hat oder ein Typo drin hat. 32kB bzw. 64 kB würden ja vermutlich 
dicke reichen, zumal sie ja auch vermutet, das das Tamagotchi 'OS' aus 
einem einzigen langen switch-case Konstrukt besteht.
Ist schon nett, wozu man ein STM32F4 alles benutzen kann, hehehe. Der 
kleine VL hätte ja wohl nicht gereicht.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Matthias Sch. schrieb:
> Ich frage mich, wie ein 6502 Derivat mit angedockten LCD Kontroller
> immerhin 640k/320k ROM addressieren kann

Da gab es Möglichkeiten: Bank switching; 64k je Bank:

http://en.wikipedia.org/wiki/Bank_switching
http://www.6502.org/users/andre/adv65/index.html
http://mirrors.apple2.org.za/ground.icaen.uiowa.edu/MiscInfo/Programming/auxmem.minimanual

Ausserdem ist da wohl auch noch mehr als der Tama untergebracht, wenn 
ichs nicht falsch interpretiert hab:

http://www.kwartzlab.ca/2010/12/tamago-hacking-home-edition-ac/#more-444

Viell. hat sie sich aber einfach verkalkuliert oder es werden nur 32/64k 
genutzt?

von Chris (Gast)


Lesenswert?

Die CPU die gezeigt wurde hat 320Kbyte ROM und zwar werden zwei Banking 
eingeblendet. Hauptziel dieser CPU ist Sound, deshalb auch der große 
Speicher
wie auch LCD, auch für das ist der Speicher nicht schlecht.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Chris schrieb:
> und zwar werden zwei Banking
> eingeblendet

Und was ist mit dem Rest (320 - (2 x 64))? Oder hab ich das 
mißverstanden?

Die 6502 hat nur 16 Adressleitungen für 64k.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Karl-Heinz M. schrieb:
> Chris schrieb:
>> und zwar werden zwei Banking
>> eingeblendet
>
> Und was ist mit dem Rest (320 - (2 x 64))? Oder hab ich das
> mißverstanden?
>
> Die 6502 hat nur 16 Adressleitungen für 64k.

Bankswitching ....

z.B.

wie beim Gameboy.
http://gbdev.gg8.se/wiki/articles/Memory_Bank_Controllers

Der ROM wird in mehrere Bänke aufgeteilt die stückweise in den 
Adressbereich der CPU eingeblendet werden durch eine zusätzliche 
Adresslogik, die zum Beispiel durch I/O-Register oder spezielle Adressen 
gesteuert wird, zwischen CPU und ROM.

Die Lösung Gameboy ist allerdings eine Pre-Design-Variante und es gibt 
elegantere Lösungen.

von chris (Gast)


Lesenswert?

>Die CPU die gezeigt wurde hat 320Kbyte ROM und zwar werden zwei Banking
>eingeblendet. Hauptziel dieser CPU ist Sound

Wobei der im Film zu hörende Sound des Tamagotchi sich nicht unbedingt 
nach hunderten von KByte anhört. Für mich hört sich das nach 
ein-stimmigen Piepsen mit einfachem Tongenerator an. Als nicht wie ein 
WAV-File, welches viel Speicher rechtfertigen würde.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

chris schrieb:
>>Die CPU die gezeigt wurde hat 320Kbyte ROM und zwar werden zwei Banking
>>eingeblendet. Hauptziel dieser CPU ist Sound
>
> Wobei der im Film zu hörende Sound des Tamagotchi sich nicht unbedingt
> nach hunderten von KByte anhört. Für mich hört sich das nach
> ein-stimmigen Piepsen mit einfachem Tongenerator an. Als nicht wie ein
> WAV-File, welches viel Speicher rechtfertigen würde.

Also wenn es da um das verprassen von Speicher geht und vielleicht nicht 
wirklich Leistung relevant ist, hätte ich da noch einen Tipp :)

Fängt mit J an und mit AWA auf.

von Martin K. (maart)


Lesenswert?

Dennis Heynlein schrieb:

> Fängt mit J an und mit AWA auf.

Kenne ich nicht, was soll das sein?

von Peter D. (peda)


Lesenswert?

Datenspeicher für Animation/Sound muß man nicht banken, den kann man an 
beliebige IOs ranpappen oder auch seriell (SPI, I2C).


Peter

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Martin Kreiner schrieb:
> Dennis Heynlein schrieb:
>
>> Fängt mit J an und mit AWA auf.
>
> Kenne ich nicht, was soll das sein?

Für Dich ein V und dein heiliger Gral ist nur aus Plastik.

von ram (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Ich frage mich, wie ein 6502 Derivat mit angedockten LCD Kontroller
> immerhin 640k/320k ROM addressieren kann, bzw. ob sie sich da nicht doch
> vertan hat oder ein Typo drin hat. 32kB bzw. 64 kB würden ja vermutlich
> dicke reichen, zumal sie ja auch vermutet, das das Tamagotchi 'OS' aus
> einem einzigen langen switch-case Konstrukt besteht.

 Also mein Apple][ hatte 256kB dynamisches RAM, +16kROM + diverser 
statischer Speicher auf den Karten die alle gezielt ansprechbar waren, 
mit dem original einfachen 6502. z.B. lief da ne 192KB Ramdisk drin. 
Natürlich nicht linear ansprechbar gehen ja nur 64KB. Wenn es bezahlbare 
größere Chip damals gegeben hätte, hätte er wohl auch mehr gehabt. Da 
der Apple][ ein sehr gutes Hardwaremanagement hatte, hätte man da noch 
sehr viel einbauen können und das alle voll kompatible zu der 
vorhandenen Software.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Dennis Heynlein schrieb:
> Karl-Heinz M. schrieb:
>> Chris schrieb:
>>> und zwar werden zwei Banking
>>> eingeblendet
>>
>> Und was ist mit dem Rest (320 - (2 x 64))? Oder hab ich das
>> mißverstanden?
>>
>> Die 6502 hat nur 16 Adressleitungen für 64k.
>
> Bankswitching ....
>
> z.B.
>
> wie beim Gameboy.
> http://gbdev.gg8.se/wiki/articles/Memory_Bank_Controllers
>
> Der ROM wird in mehrere Bänke aufgeteilt die stückweise in den
> Adressbereich der CPU eingeblendet werden

Genau das hatte ich ja mittels Links statt eigener Worte erklärt.

Chris spricht aber von 2 Banks, also 128k. Wir  reden aber von noch 
mehr, nämlich 320 oder gar 640. 2 Banks zu 64 langen da nicht. Da bleibt 
bei den von Chris genannte 2 Banks noch etliches übrig. Was damit ist, 
hat er unbeantwortet gelassen. Viell. aber steh ich auch auf dem 
Schlauch.

von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Hier das Memory Mapping. SPU = Sound Processing Unit, max 8 Channels
mit 57Khz und polyphonen Kanälen zusätzlich, muss aber nicht benutzt 
werden.
Für mich passt der LCD Controller nicht ganz zu den Tamagotchi´s und ich
würde eher zu einer Weltrend CPU tendieren, wobei theoretisch auch der
genannte Prozessor eingesetzt werden könnte.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Chris schrieb:
> Hier das Memory Mapping

So gefällt mir das :-)) Spitze!

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Inzwischen hat Natalie ausdauernd weitergemacht. Sie hat das ROM 
geknackt und gedumpt, kennt sich mit Sound und Display aus, kann Befehle 
ausführen und fand einen Debug-Mode in dem Teil:

http://www.kwartzlab.ca/author/natalies/

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.