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?
>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?
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
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
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.
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.
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
>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.
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.
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
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.
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.
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? ;-)
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?
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
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
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
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.
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.
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.
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.
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.
>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.
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.
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.
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.
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.
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.
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/