Post
by MrSporty » Mon Feb 14, 2011 1:19 pm
The fuse bits are not a concern other than when it comes to trying to dump the contents of an MCU. If its locked then other than a glitch attack, decapping and manually resetting the CP fuses is the only way of retrieving the contents. I have a company in china that i have used a number of times in the past for this service with great success. It is however not a cheap option.
Dissassembling the mcu dump on the other hand is pretty simple for the small scale MCU used in the Xeno.
Anyway, back to the task at hand. Here are the REGULAR debug commands sent by the Xeno V1. The first four are detailed in my previous post. The next block as you can see is written from 0x40D000-0x40D0D7
Then some code is written to 0x008674-0x008683, interesting that the payload for the second to last commands seem to be a pointer to our 0x40D000 code. This is probably where our main block gets hooked.
Finally a write of 0x86,0x00 to 0x00804D
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
0xFF,0x00,0xD1,0x00,0x00,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x00,0xF7,0x40,0x10,0x00,0x02,0x00
0xFE,0x00,0xD0,0x02,0xFF,0x40,0xF7,0x00,0x02,0x00
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
0xFF,0x00,0xD1,0x00,0x00,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x00,0xF7,0x40,0x10,0x00,0x02,0x00
0xFE,0x00,0xD0,0x02,0xFF,0x40,0xF7,0x00,0x02,0x00
0xFE,0x00,0xD0,0x04,0xF5,0x40,0xD9,0x00,0x02,0x00
0xFE,0x00,0xD0,0x06,0xC8,0x40,0xFF,0x00,0x02,0x00
0xFE,0x00,0xD0,0x08,0xF4,0x40,0xC0,0x00,0x02,0x00
0xFE,0x00,0xD0,0x0A,0x00,0x40,0xD1,0x00,0x02,0x00
0xFE,0x00,0xD0,0x0C,0x40,0x40,0xF7,0x00,0x02,0x00
0xFE,0x00,0xD0,0x0E,0x48,0x40,0x44,0x00,0x02,0x00
0xFE,0x00,0xD0,0x10,0x44,0x40,0xE9,0x00,0x02,0x00
0xFE,0x00,0xD0,0x12,0x19,0x40,0xF4,0x00,0x02,0x00
0xFE,0x00,0xD0,0x14,0x74,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x16,0xD8,0x40,0x40,0x00,0x02,0x00
0xFE,0x00,0xD0,0x18,0xFD,0x40,0x1E,0x00,0x02,0x00
0xFE,0x00,0xD0,0x1A,0x00,0x40,0xA0,0x00,0x02,0x00
0xFE,0x00,0xD0,0x1C,0xF4,0x40,0x40,0x00,0x02,0x00
0xFE,0x00,0xD0,0x1E,0x00,0x40,0xD1,0x00,0x02,0x00
0xFE,0x00,0xD0,0x20,0x40,0x40,0xF4,0x00,0x02,0x00
0xFE,0x00,0xD0,0x22,0x74,0x40,0x74,0x00,0x02,0x00
0xFE,0x00,0xD0,0x24,0x0A,0x40,0x08,0x00,0x02,0x00
0xFE,0x00,0xD0,0x26,0xF7,0x40,0x20,0x00,0x02,0x00
0xFE,0x00,0xD0,0x28,0x4C,0x40,0x80,0x00,0x02,0x00
0xFE,0x00,0xD0,0x2A,0xF0,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x2C,0xF4,0x40,0x74,0x00,0x02,0x00
0xFE,0x00,0xD0,0x2E,0x00,0x40,0xC6,0x00,0x02,0x00
0xFE,0x00,0xD0,0x30,0x40,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x32,0x05,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x34,0xF4,0x40,0xE1,0x00,0x02,0x00
0xFE,0x00,0xD0,0x36,0xC7,0x40,0xF5,0x00,0x02,0x00
0xFE,0x00,0xD0,0x38,0xFF,0x40,0xF4,0x00,0x02,0x00
0xFE,0x00,0xD0,0x3A,0x70,0x40,0x80,0x00,0x02,0x00
0xFE,0x00,0xD0,0x3C,0xC0,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x3E,0xC0,0x40,0x80,0x00,0x02,0x00
0xFE,0x00,0xD0,0x40,0xFD,0x40,0x80,0x00,0x02,0x00
0xFE,0x00,0xD0,0x42,0x51,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x44,0x54,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x46,0xFD,0x40,0x6A,0x00,0x02,0x00
0xFE,0x00,0xD0,0x48,0x00,0x40,0x80,0x00,0x02,0x00
0xFE,0x00,0xD0,0x4A,0x43,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x4C,0x4C,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x4E,0xFD,0x40,0x62,0x00,0x02,0x00
0xFE,0x00,0xD0,0x50,0x00,0x40,0x81,0x00,0x02,0x00
0xFE,0x00,0xD0,0x52,0x95,0x40,0x95,0x00,0x02,0x00
0xFE,0x00,0xD0,0x54,0x95,0x40,0x95,0x00,0x02,0x00
0xFE,0x00,0xD0,0x56,0x95,0x40,0x95,0x00,0x02,0x00
0xFE,0x00,0xD0,0x58,0x95,0x40,0x95,0x00,0x02,0x00
0xFE,0x00,0xD0,0x5A,0x80,0x40,0x4F,0x00,0x02,0x00
0xFE,0x00,0xD0,0x5C,0xFD,0x40,0x3B,0x00,0x02,0x00
0xFE,0x00,0xD0,0x5E,0x00,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x60,0x51,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x62,0x91,0x40,0x80,0x00,0x02,0x00
0xFE,0x00,0xD0,0x64,0x44,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x66,0x32,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x68,0xFD,0x40,0x48,0x00,0x02,0x00
0xFE,0x00,0xD0,0x6A,0x00,0x40,0x84,0x00,0x02,0x00
0xFE,0x00,0xD0,0x6C,0xFD,0x40,0x2B,0x00,0x02,0x00
0xFE,0x00,0xD0,0x6E,0x00,0x40,0xAA,0x00,0x02,0x00
0xFE,0x00,0xD0,0x70,0xFD,0x40,0x40,0x00,0x02,0x00
0xFE,0x00,0xD0,0x72,0x00,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x74,0x24,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x76,0x10,0x40,0x92,0x00,0x02,0x00
0xFE,0x00,0xD0,0x78,0xFD,0x40,0x38,0x00,0x02,0x00
0xFE,0x00,0xD0,0x7A,0x00,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x7C,0x1C,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x7E,0xF5,0x40,0x10,0x00,0x02,0x00
0xFE,0x00,0xD0,0x80,0x01,0x40,0x92,0x00,0x02,0x00
0xFE,0x00,0xD0,0x82,0xD0,0x40,0x02,0x00,0x02,0x00
0xFE,0x00,0xD0,0x84,0xF7,0x40,0x1D,0x00,0x02,0x00
0xFE,0x00,0xD0,0x86,0x01,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x88,0xE9,0x40,0xE6,0x00,0x02,0x00
0xFE,0x00,0xD0,0x8A,0x88,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0x8C,0x25,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0x8E,0xFD,0x40,0x09,0x00,0x02,0x00
0xFE,0x00,0xD0,0x90,0x00,0x40,0xD8,0x00,0x02,0x00
0xFE,0x00,0xD0,0x92,0x21,0x40,0xE9,0x00,0x02,0x00
0xFE,0x00,0xD0,0x94,0x37,0x40,0xF5,0x00,0x02,0x00
0xFE,0x00,0xD0,0x96,0xD9,0x40,0xC8,0x00,0x02,0x00
0xFE,0x00,0xD0,0x98,0xFF,0x40,0xFE,0x00,0x02,0x00
0xFE,0x00,0xD0,0x9A,0xF2,0x40,0x5A,0x00,0x02,0x00
0xFE,0x00,0xD0,0x9C,0xF4,0x40,0xC7,0x00,0x02,0x00
0xFE,0x00,0xD0,0x9E,0x83,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0xA0,0x00,0x40,0xF5,0x00,0x02,0x00
0xFE,0x00,0xD0,0xA2,0x03,0x40,0x80,0x00,0x02,0x00
0xFE,0x00,0xD0,0xA4,0xE8,0x40,0x09,0x00,0x02,0x00
0xFE,0x00,0xD0,0xA6,0xD2,0x40,0x01,0x00,0x02,0x00
0xFE,0x00,0xD0,0xA8,0xEE,0x40,0xD0,0x00,0x02,0x00
0xFE,0x00,0xD0,0xAA,0x07,0x40,0xE8,0x00,0x02,0x00
0xFE,0x00,0xD0,0xAC,0x1F,0x40,0xEA,0x00,0x02,0x00
0xFE,0x00,0xD0,0xAE,0xED,0x40,0xC4,0x00,0x02,0x00
0xFE,0x00,0xD0,0xB0,0x82,0x40,0xFD,0x00,0x02,0x00
0xFE,0x00,0xD0,0xB2,0xFE,0x40,0xF2,0x00,0x02,0x00
0xFE,0x00,0xD0,0xB4,0x5A,0x40,0xF4,0x00,0x02,0x00
0xFE,0x00,0xD0,0xB6,0xC7,0x40,0x83,0x00,0x02,0x00
0xFE,0x00,0xD0,0xB8,0xFD,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0xBA,0xF5,0x40,0x03,0x00,0x02,0x00
0xFE,0x00,0xD0,0xBC,0x10,0x40,0xE9,0x00,0x02,0x00
0xFE,0x00,0xD0,0xBE,0x09,0x40,0xD2,0x00,0x02,0x00
0xFE,0x00,0xD0,0xC0,0x01,0x40,0xEE,0x00,0x02,0x00
0xFE,0x00,0xD0,0xC2,0xD0,0x40,0x07,0x00,0x02,0x00
0xFE,0x00,0xD0,0xC4,0xE8,0x40,0x06,0x00,0x02,0x00
0xFE,0x00,0xD0,0xC6,0xEA,0x40,0xED,0x00,0x02,0x00
0xFE,0x00,0xD0,0xC8,0xCC,0x40,0x82,0x00,0x02,0x00
0xFE,0x00,0xD0,0xCA,0xFD,0x40,0xFE,0x00,0x02,0x00
0xFE,0x00,0xD0,0xCC,0xF7,0x40,0x14,0x00,0x02,0x00
0xFE,0x00,0xD0,0xCE,0x00,0x40,0x08,0x00,0x02,0x00
0xFE,0x00,0xD0,0xD0,0xF4,0x40,0x74,0x00,0x02,0x00
0xFE,0x00,0xD0,0xD2,0x00,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0xD0,0xD4,0x08,0x40,0xF0,0x00,0x02,0x00
0xFE,0x00,0xD0,0xD6,0x00,0x40,0x00,0x00,0x02,0x00
0xFE,0x00,0x86,0x74,0xF4,0x00,0x74,0x00,0x02,0x00
0xFE,0x00,0x86,0x76,0x74,0x00,0x0A,0x00,0x02,0x00
0xFE,0x00,0x86,0x78,0x08,0x00,0xF7,0x00,0x02,0x00
0xFE,0x00,0x86,0x7A,0x20,0x00,0x4C,0x00,0x02,0x00
0xFE,0x00,0x86,0x7C,0x80,0x00,0xF4,0x00,0x02,0x00
0xFE,0x00,0x86,0x7E,0x74,0x00,0x00,0x00,0x02,0x00
0xFE,0x00,0x86,0x80,0xD0,0x00,0x40,0x00,0x02,0x00
0xFE,0x00,0x86,0x82,0xF0,0x00,0x00,0x00,0x02,0x00
0xFE,0x00,0x80,0x4D,0x86,0x00,0x00,0x00,0x02,0x00
Now, above i stated that these were the REGULAR commands sent by the Xeno. As anyone who owns one of these mods knows, if you hold the start button when booting you get a nice info screen. But how can all that code for the menu be stored in about 200 or so bytes. Answer is it can't.
Immediately after the last command, the SPI lines from the xeno seem to go crazy with loads of non SPI data on them. What i think is happening is that the code above is basically a pre-loader. Its loaded and then jumped to to handle a higher speed data burst over the SPI lines.
I will post another picture tonight.
Last edited by
MrSporty on Mon Feb 14, 2011 3:34 pm, edited 1 time in total.