====== Взлом цифровых рамок ====== {{ :component:lcd:dpf-1.5inch.jpg?150|}} Фоторамки-брелоки построены на основе полуторадюймовых дисплеев 128х128 пикселов с контроллером [[component:lcd:st7637|ST7637]]. В качестве процессора в части рамок используется MCU Appotech AX203 (CFP5102) с системой команд 8051. К сожалению он однократно программируемый, и интереса не представляет. Сейчас стали появлятся рамки на базе MCU Appotech AX206 ([[http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=120417980507|приобретена на Ebay]]), который имеет 4кб масочной ROM программ, и 3кб SRAM программ/данных. Судя по всему части программы подгружаются из внешнего SPI Flash (1Mb {{:projects:es25m40a_80a_16a.pdf|ES25M80A}} маркированного как M80A80CG). Вероятно программное обеспечение рамки может быть модифицировано. Фоторамка видна в системе как пишуший CD привод. В linux она определяется как: [551412.809178] usb 1-2: New USB device found, idVendor=1908, idProduct=0102 [551412.809190] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1 [551412.809198] usb 1-2: Product: Digital Photo Frame [551412.809203] usb 1-2: Manufacturer: BUILDWIN [551412.809208] usb 1-2: SerialNumber: 200807101900000000 [551418.439895] usb-storage: device scan complete [551418.439895] scsi 5:0:0:0: CD-ROM buildwin Photo Frame 1.01 PQ: 0 ANSI: 2 [551418.454696] sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray [551418.454696] sr 5:0:0:0: Attached scsi CD-ROM sr0 [551418.454696] sr 5:0:0:0: Attached scsi generic sg2 type 5 * Копия флеша фоторамки: {{:projects:ax206-based-dpf.bin.gz}}. * Копия флеша фоторамки снятая через USB: {{:projects:dpf-1.5-ax206-based.bin.gz}}. Копия была снята с помощью небольшой утилиты((Написана на основе http://picframe.spritesserver.nl/wiki/index.php/Talk:HK_Unbranded_with_AppoTech_chipset)) {{:projects:dpf-tools.tar.gz}} :!: Будьте внимательны, и перед использованием проверьте исходный код утилиты. Дабы не перезаписать чего линего в фоторамке ;-) * Образ USB диска фоторамки: {{:projects:disk-image.iso.gz}}. См. так же: * Страница вики посвящённой хакингу фоторамок: http://picframe.spritesserver.nl/wiki/index.php/HK_Unbranded_with_AppoTech_chipset * Официальная инфа на чип Appotech AX206: [[http://www.appotech.com/main/pro_detail.php?product_id=AX206]]. :!: Подробных даташитов к сожалению нет. Если у вас есть - сообщите. * Фотки: http://fotki.yandex.ru/users/ioan-ar/view/154799 and http://fotki.yandex.ru/users/ioan-ar/view/154800/ [[http://fotki.yandex.ru/users/ioan-ar/album/67634/|{{ http://img-fotki.yandex.ru/get/3409/ioa-ar.0/0_25caf_d9bd8bb6_M.jpg }}]] ===== Выполнение кода ===== При сбросе процессора выполняется некий код из масочного ROM. После необходимых инициализаций, по SPI шине делается попытка прочитать флеш-память. Читается 32 байта начиная с нулевого адреса. В байтах ''6'', ''7'' и вероятно ''8'', хранится адрес первого участка программного кода читаемого из флеш. В нашем случае это будет 0x0220. Где хранится длина участка, я к сожалению не выяснил. :?: Далее считывается участок флеш начиная с адреса ''0x0220'' по адрес ''0x02FF'', итого ''0xE0'' байт. Исполненимый код находится начиная с адреса 0x022B. Вероятно загрузка и дальнейшее исполнение кода происходит в IRAM((Instruction RAM))) расположеную в адресном пространстве процессора начиная с адреса 0x1330 (исполненимый код идёт соответственно с адреса 0x133B) :?: :?: :?: ===== Масочный ROM ===== Если в момент сброса процессора удерживать клавишу ''Menu'' код из флеша выполнятся не будет, а управление будет отдано обратно в прошивку ROM. При этом процессор определяется по шине USB следующим образом: [533030.584390] hiddev96hidraw0: USB HID v2.01 Device [BUILDWIN BL206v1.0.0] on usb-0000:00:1d.7-6.3 [533030.584554] usb 1-6.3: New USB device found, idVendor=1908, idProduct=3318 [533030.584558] usb 1-6.3: New USB device strings: Mfr=2, Product=1, SerialNumber=3 [533030.584562] usb 1-6.3: Product: BL206v1.0.0 [533030.584564] usb 1-6.3: Manufacturer: BUILDWIN [533030.584567] usb 1-6.3: SerialNumber: 000001 [45057.225436] usb 3-1: configuration #1 chosen from 1 choice [45067.233308] generic-usb 0003:1908:3318.0035: timeout initializing reports [45067.233510] generic-usb 0003:1908:3318.0035: hiddev97,hidraw1: USB HID v2.01 Device [BUILDWIN BL206v1.0.0] on usb-0000:00:1 d.1-1/input0 Вероятно, при чистом или испорченном флеше этот механизм позволяет прошить его. ===== MCU Pinout ===== AX206 connection table ^ Pin ^ Name ^ Connect ^ Pin ^ Name ^ Connect ^ | 1 | P3.6/WR | LCD D6 | 25 | P1.5/A5/GRE | LCD CS# | | 2 | P3.5/T1 | LCD D5 | 26 | P1.4/A4/GRD | LCD D/C# | | 3 | P3.4/T0 | LCD D4 | 27 | VddIO | Vdd | | 4 | P3.3/DP2/INTP1 | LCD D3 | 28 | VssIO | GND | | 5 | P3.2/EA/INTP0 | LCD D2/DB | 29 | MCLR | Rst Btn | | 6 | P3.1/TXD | LCD D1/UB | 30 | P1.3/A3/GTD | LCD RD# | | 7 | P3.0/RXD/VRO | R 5K1 to GND | 31 | P1.2/A2/AD7/GTE | LCD WR# | | 8 | VddIO | Vdd | 32 | P1.1/A1/ALE/GTC | LCD RST# | | 9 | VssIO | GND | 33 | P1.0/A0/PSEN | LCD D0 | | 10 | LDOE | Vdd | 34 | DVss | | | 11 | DVdd | Vdd | 35 | DVdd | | | 12 | Vpp | Vdd | 36 | P0.7/A7/D7/EXT2 | VUSB det | | | | | | | | | 13 | P2.7/A15/PWMN | | 37 | P0.6/A6/D6/AD6/EXT1 | Menu Butt | | 14 | P2.6/A14/PWMP | Buzzer :?: | 38 | P0.5/A5/D5/AD5/EXT0 | | | 15 | P2.5/A13/T2EX | | 39 | P0.4/A4/D4/AD4 | Bat Ctrl | | 16 | P2.4/A12/T2 | LCD BL(NC) | 40 | P0.3/A3/D3/AD3 | Bat In | | 17 | P2.3/A11/PWM2 | LCD BL(2K) | 41 | P0.2/A2/D2/AD2 | | | 18 | P2.2/A10/PWM1 | | 42 | P0.1/A1/D1/AD1 | LCD BL2(2K) | | 19 | P2.1/A9/SDO | Flash DI | 43 | P0.0/A0/D0/AD0/ADV | | | 20 | P2.0/A8/SDI | Flash DO | 44 | OSC1 | | | 21 | USBDM | | 45 | OSC2 | | | 22 | USBDP | | 46 | OSC32K1 | | | 23 | P1.7/A7/SCK | Flash CLK | 47 | OSC32K2 | | | 24 | P1.6/A6/GRC | Flash CS# | 48 | P3.7/DP1/RD | LCD D7 | ===== LCD ===== ==== DFM-075D-NL-WD ==== ^ Pin ^ Name ^ Description ^ | 1 | Vdd | +3v | | 2 | GND | | | 3 | D7 | | | 4 | D6 | | | 5 | D5 | | | 6 | D4 | | | 7 | D3 | | | 8 | D2 | | | 9 | D1 | | | 10 | D0 | | | 11 | RD# | | | 12 | WR# | | | 13 | D/C# | | | 14 | RST# | | | 15 | CS# | | | 16 | | | | 17 | | | | 18 | GND | | | 19 | LED- | (2.6v) | | 20 | LED+ | 10 j (3v) | {{tag>project dpf hack lcd x51}}