Tamagotchi Hacking Many Tamagotchis Were Harmed in the

  • Slides: 47
Download presentation
Tamagotchi Hacking Many Tamagotchis Were Harmed in the Making of this Presentation Many Tamagotchis

Tamagotchi Hacking Many Tamagotchis Were Harmed in the Making of this Presentation Many Tamagotchis Natalie Were Harmed in the Making of this Presentation Silvanovich

What are Tamagotchis? • The same virtual pet toys you remember from the 90’s

What are Tamagotchis? • The same virtual pet toys you remember from the 90’s • Functionality has evolved substantially – Now they can go to school, have jobs, make friends! • Newer versions have an IR interface so that they can communicate with other Tamagotchis

Tama. Town Tama-Go • The “Christmas” Tamagotchi from last year • Same functionality for

Tama. Town Tama-Go • The “Christmas” Tamagotchi from last year • Same functionality for smaller hands • Supports detachable ‘figures’ with extra games and stores

Goals • • • Decode external communication channels Dump Tamagotchi code Answer the ‘deeper

Goals • • • Decode external communication channels Dump Tamagotchi code Answer the ‘deeper questions’ of Tamagotchi life Make my gotchis rich and happy Have fun!

Infrared Communicatio n

Infrared Communicatio n

Signal Listening • Listened to the communication between two Tamagotchis using a digital signal

Signal Listening • Listened to the communication between two Tamagotchis using a digital signal analyser and a de-multiplexing IR receiver

Meet Nana and Anna ac 00 26 d 6 0 e 01 00 01

Meet Nana and Anna ac 00 26 d 6 0 e 01 00 01 33 87 00 00 33 c 0 0 b 00 00 ff 01 ff ff 7 d ac 00 39 d 6 01 0 e 0 e 01 00 00 34 87 00 00 20 80 8 00 A is letter 1 in the alphabet N is letter 14 (0 x 0 e) in the alphabet

Decoding Circuit • Using signal analyser and python was slow • Made a circuit

Decoding Circuit • Using signal analyser and python was slow • Made a circuit with the IR receiver, an IR LED and an arduino • Wrote a program that could listen to and decode IR input in real time • Eventually added transmission functionality

Decoding Circuit

Decoding Circuit

The Fun Begins • Rough protocol • And then just try stuff!

The Fun Begins • Rough protocol • And then just try stuff!

Did you know that? • You can give your gotchi unlimited free gifts? –

Did you know that? • You can give your gotchi unlimited free gifts? – Possible gifts include a CD player, a cell phone and an RC helicopter • Too much unreciprocated gift giving damages two gotchis’ relationship? • You can mate almost any two gotchis? • Gotchis have multiple gender markers?

Teardown

Teardown

Hardware Teardown • Took apart a Tama-Go and Tamagotchi to determine if code dumping

Hardware Teardown • Took apart a Tama-Go and Tamagotchi to determine if code dumping was a possibility • Looked for helpful interfaces • Also took apart a figure

Tama-Go Board EEPROM

Tama-Go Board EEPROM

Tama-Go Figure

Tama-Go Figure

Microcontroller Identification

Microcontroller Identification

Identifying the Microcontroller • Considering the lack of external hardware, MCU and code memory

Identifying the Microcontroller • Considering the lack of external hardware, MCU and code memory were likely under the ‘blob’ • Tried several methods to remove, including acetone and a chopstick • Travis Goodspeed kindly offered to decap the chip with acid

Identification • Started by posting on my blog – No one answered (correctly) •

Identification • Started by posting on my blog – No one answered (correctly) • Counted cells to determine memory size – Wrongly • Posted on Tamagotchi forums • Compared pad layouts

 • Eventually, success!

• Eventually, success!

GPLB 5 X Series LCD Controller • 8 bit 6502 microprocessor • 1536 bytes

GPLB 5 X Series LCD Controller • 8 bit 6502 microprocessor • 1536 bytes RAM • 320 or 640 kbyte mask ROM (depending on model), baked to perfection for each customer • 512 bytes LCD RAM • 4 color grayscale LCD controller • SPI • Audio DAC

Dumping Mask ROM • Not sure how to dump mask ROM, but had a

Dumping Mask ROM • Not sure how to dump mask ROM, but had a few ideas – Restore a bad state from EEPROM – Determine the test program – Exploit a vulnerability in figure or IR processing – Read ROM with a microscope – Pin manipulation

EEPROM Dump

EEPROM Dump

EEPROM Dump • Attached tiny wires to EEPROM and dumped it using Arduino I

EEPROM Dump • Attached tiny wires to EEPROM and dumped it using Arduino I 2 C library • Game ‘state’ is stored in a format similar to IR

EEPROM Dump • State format is unlikely to allow mask ROM dumping • Tried

EEPROM Dump • State format is unlikely to allow mask ROM dumping • Tried overwriting EEPROM – Very error senstive – Resets the game in case of error – Did manage to ‘advance’ myself in the game

Test Program

Test Program

Test Program? • General. Plus mask ROMs contain a GP test program that can

Test Program? • General. Plus mask ROMs contain a GP test program that can probably dump code • Contacted General. Plus for a devkit – Requires an NDA • Looked around online – No one seems to have a devkit or know the test program

Figure ROM

Figure ROM

Figure ROM • Decoding the figure ROM could be useful in a few ways

Figure ROM • Decoding the figure ROM could be useful in a few ways – Making your own Tamagotchi games – Executing code on the Tamagotchi – Dumping mask ROM – Understanding Tamagotchi behaviour

Figure Types • There are two types of Tamagotchi figures, ‘reguar’ and ‘lite’ •

Figure Types • There are two types of Tamagotchi figures, ‘reguar’ and ‘lite’ • Regular figures contain PCBs with blobs • Lite figures contain unpopulated PCB – Act as jumpers • Tried jumper-ing regular figures – Saw functionality of different figures! • Extremely likely figures contain mask ROM

Figure ROM Pads • The unpopulated PCBs in lite figures appear to be the

Figure ROM Pads • The unpopulated PCBs in lite figures appear to be the same boards used in regular figures • Makes the mask ROM pad layout visible

Figure ROM Chip • General. Plus makes an SPI ROM with a similar layout

Figure ROM Chip • General. Plus makes an SPI ROM with a similar layout • Assumed figures use this ROM

Figure ROM Test

Figure ROM Test

Figure ROM Pins • Based on the General. Plus ROM datasheet, was able to

Figure ROM Pins • Based on the General. Plus ROM datasheet, was able to identify the figure pins 1, 4 and 8: Ground/Jumper 2: Serial clock (C) 3: Serial data input (D) 5: Power 6: Chip Select (SB) 7: Serial Data Output (Q)

ROM Dump • Dumped the ROM using an Arduino as SPI master

ROM Dump • Dumped the ROM using an Arduino as SPI master

Decoding ROM • The Tamagotchi has a four-tone display, so looked for strings of

Decoding ROM • The Tamagotchi has a four-tone display, so looked for strings of 0 x 00, 0 x 55, 0 x. AA and 0 x. FF, representing images – Found a few errors in the dumping sketch • Noticed that these strings were preceded by values which were reasonable for length and width

Decoding Images • Tried decoding these images • Eventually, it worked!

Decoding Images • Tried decoding these images • Eventually, it worked!

Images • The figure contained a lot of images • Text displays appear to

Images • The figure contained a lot of images • Text displays appear to be images • Animations are series of images

The Rest of the ROM • The ROM contains a lot of non-image data

The Rest of the ROM • The ROM contains a lot of non-image data • None of this data is General. Plus code • Likely logic information in some sort of interpreted language

Simulating the ROM • Could not obtain compatible flash • Attempted to simulate the

Simulating the ROM • Could not obtain compatible flash • Attempted to simulate the ROM using an Arduino, but chip is too slow • Switched to a Chipkit Uno • Got reasonable results simulating ROM, but unreliable • Still in progress

Conclusion

Conclusion

Conclusions • Can ‘cheat’ at Tamagotchi using the EEPROM or IR • Learned about

Conclusions • Can ‘cheat’ at Tamagotchi using the EEPROM or IR • Learned about Tamagotchi internals • Still trying to dump the code – Continuing with simulating the figure ROM – Still *hint* looking for the test program *hint* • Most importantly, good times were had by all…

Except for the Tamagotchis

Except for the Tamagotchis

Questions?

Questions?

More Info http: //www. kwartzlab. ca/author/natalies/ @natashenka

More Info http: //www. kwartzlab. ca/author/natalies/ @natashenka