Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Фиксики - Вытащить прошивку из китайского детского компьютера. Найти и заменить пару байт. Залить обратно.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
xintrea
Извиняюсь, если ошибся разделом.


Родственники подарили ребенку детский компьютер под брендом "Фиксики". Вот такой:

http://www.detmir.ru/product/index/id/159652/
http://www.youtube.com/watch?v=s56FbzGL3pU

Впринципе, компьютер неплохой, интересно смотреть на теплый ламповый ЖК экран, ребенок сразу удивился что изображение можно формировать из квадратиков. Есть неплохие игры. Вещь в себе.

Но есть один раздражающий недостаток в интерфейсе, из-за которого я запретил ребенку играть на нем и разобрал его.

Проблема в том, что этот компьютер не позволяет сосредоточиться на работе с ним. Меню устроено таким образом, что раз в две секунды оно автоматически перелистывается с мерзким звуком. То есть, меню можно листать клавишами, но если более двух секунд не листаешь, оно само начинает перелистываться по кругу. То же самое и во всех подменю. То есть, пока выберешь что тебе нужно, измучаешься. Нужно либо с дикой скоростью перетыкаться в меню, либо постоянно перелистывать обратно на нужный пункт меню, который (пока человек раздумывал) успевает перелистнуться несколько раз.

Перечитал всю инструкцию. Нигде нет отключения этого режима. В интернете нет никаких данных по возможной настройке.

Мне ничего не остается, как попробовать модифицировать прошивку, и убрать это недоразумение. Ребенок просит отдать комп, но я либо его доломаю, либо исправлю.


В компе есть две платы.

-----

Материнская плата с двумя бескорпусными микросхемами:

http://i.piccy.info/i9/8ee1b07c69417f2f112...P1110671_01.jpg
http://i.piccy.info/i9/bc122b3a0985addefcd...P1110674_01.jpg

Я не большой знаток микроэлектроники, но если бы я делал такой комп, я бы использовал какую-нибудь 8-битную AVR-ку типа AVR XMEGA. Вопрос в том, влезет ли в ~380Кб набортной памяти все звуковые оцифровки в каком-то формате. Звуков, музыки и фраз на русском и английских языках достаточно много. Возможно, что вторая микруха - это ПЗУ я хз. Слышал, что для AVR есть либы по работе с FAT, что внешнее ПЗУ - это типа винта, вобщем не знаю.

Либо в качестве микроконтроллера используется что-то более современное с 32-х битной архитектурой типа STM32 и хотя бы с мегабайтом flash мозгов. В бытность DOS я бы мог засунуть в 1Мб несколько минут звуковой оцифровки с приемлемым качеством. В этом случае назначение второй микрухи для меня загадка.

Или на плате какой-то MIPS?

Плата односторонняя, и похоже что однослойная. На плате не нашел тактового генератора. Под черной резинкой ничего интересного - резисторы, диоды, с обратной стороны платы припаян транзистор S8550 D331 (добавил второе фото без резинки). Три электролитических кондера в прорезанных окошечках. Сверху гребенка контактов идет на ЖК экран, экран накрывает всю эту плату. Сбоку пропаянные контакты от конроллера клавиатуры.

На плате две надписи PL-1590JSMA0-1 и AEC1222. В интернете по этим обозначениям ничего не находится.

-----

Контроллер клавиатуры - это вторая плата.

http://i.piccy.info/i9/192ed57e15bfae9b93c...P1110673_01.jpg

Одна бескорпусная микруха. На плату заведены сигналы с клавиатуры и "мышки" - джойстика (черные открытые контакты - это они). Сверху пропаянные контакты уходят на материнку. Тактового генератора нет. Плата односторонняя, однослойная.

На плате обозначение PL-1590JSMB01-4, тоже ничего в интернете нет.

-----

Вопрос 1. Что за архитектура, по вашему мнению, скрывается в бескорпусных микросхемах на материнке? Каково назначение большой и малой микрухи на материнке?

Вопрос 2. Реально ли вытащить из (видимо большой) микрухи прошивку, и засунуть ее обратно модифицированную?


На материнке есть какие-то три здоровых перемычки, возможно это JTAG, никогда с такой штукой не работал, но если надо разберусь. В интернете правда натыкался и на двухпроводной RX/TX JTAG и на шестипроводной JTAG...

Вопрос 3. Похожи ли эти перемычки на контакты JTAG? Ели похожи, надо ли их перерезать? К каким контактам подключаться после перезки? К верхним или нижним (склоняюсь к верхним). Как определить куда подключать RX, куда TX?

Вопрос 4. Реально ли декомпилировать/отдебажить прошивку, чтобы найти место, где перетыкаются пункты меню? Я бы попробовал изменить условие, чтобы оно никогда не срабатывало по таймеру. Я под виндой подламывал несколько программ через SoftICE и OllieDebugger, представление об ассемблерах и машинном коде имею. Какой софт посоветуете (лучше опенсорч и под линух).

Вопрос 5. Реально ли залить прошивку по JTAG обратно? Или производители обычно делают непрошиваемыми такие устройства? Чем лить? Avrdude справится или нужно что-то другое?


UPD: Добавил фото материнки без резинки.
kovigor
Цитата(xintrea @ Nov 11 2014, 23:18) *
Реально ли вытащить из (видимо большой) микрухи прошивку, и засунуть ее обратно модифицированную?

Реально, раз народ занимается реверс-инжинирингом тех же HDD. Но там решается задача, реально нужная очень и очень многим, причем решается за очень хорошие деньги (и на основе очень высокой квалификации, не забывайте об этом).
В вашем же случае - купите ребенку самый хороший компьютер из тех, что сможете найти и оплатить. Это будет на пару порядков дешевле того, что вы задумали ...

P.S. Посмотрел фото, там - секретная "капелька" вместо нормального чипа. Не мучайтесь. Если не хотите, конечно, ухлопать половину жизни на это барахло ...
alexunder
Цитата(kovigor @ Nov 12 2014, 00:15) *
В вашем же случае - купите ребенку самый хороший компьютер из тех, что сможете найти и оплатить. Это будет на пару порядков дешевле того, что вы задумали ...

+1

Цитата(kovigor @ Nov 12 2014, 00:15) *
P.S. Посмотрел фото, там - секретная "капелька" вместо нормального чипа. Не мучайтесь. Если не хотите, конечно, ухлопать половину жизни на это барахло ...

Ну просто монтаж кристалла на плату и соответствующий бондинг. Возможно, рядом в корпусе SOIC8 ПЗУ с софтом.
xintrea
Цитата(kovigor @ Nov 11 2014, 22:15) *
Реально, раз народ занимается реверс-инжинирингом тех же HDD. Но там решается задача, реально нужная очень и очень многим, причем решается за очень хорошие деньги (и на основе очень высокой квалификации, не забывайте об этом).
В вашем же случае - купите ребенку самый хороший компьютер из тех, что сможете найти и оплатить. Это будет на пару порядков дешевле того, что вы задумали ...


Да у него есть и ноутбук, и планшет. А этот комп - он классный тем, что низкоуровневый. Если бы не это уродство - был бы неплохой девайс. А так - на свалку.
AlexandrY
Цитата(xintrea @ Nov 11 2014, 22:18) *
В этом случае назначение второй микрухи для меня загадка.


Память наверняка в 8-и ножной микросхеме, там и что-то от программы в принципе может быть.
Капля поменьше просто какой-то формирователь, то ли напряжения то ли тактовой частоты.
Микроконтроллер я бы скорее идентифицировал как Renesas серии V850 (бывший NEC), даже точнее как V850E2/Dx. Мануал открыто не лежит sad.gif
У них там есть куча контроллеров на 144 ноги напрямую управляющих большими сегментными LCD.
И памяти у них под 3 мега.
Но архитектура древняя. JTAG-а там не будет.

Перемычки это просто шины питания.
Программируется наверно с падов на линиях LCD.

Точнее узнать тип чипа поможет травление корпуса, на ютубе найдете инструкции как это делать. На кристалле по маркировке сразу увидите кто изготовитель.
xintrea
Цитата(AlexandrY @ Nov 11 2014, 22:35) *
Память наверняка в 8-и ножной микросхеме, там и что-то от программы в принципе может быть.
Капля поменьше просто какой-то формирователь, то ли напряжения то ли тактовой частоты.
Микроконтроллер я бы скорее идентифицировал как Renesas серии V850 (бывший NEC), даже точнее как V850E2/Dx.


Хотите сказать, что под большой каплей две микрухи - память и микроконтроллер?
AlexandrY
Цитата(xintrea @ Nov 11 2014, 23:54) *
Хотите сказать, что под большой каплей две микрухи - память и микроконтроллер?


Под большой каплей только микроконтроллер.
Сериальная FLASH память с аудио и видео находится в 8-и ножной микросхеме которая стоит рядом с большой каплей.
Если повезет, то микроконтроллер имеет только RAM на борту, а программу грузит из той же сериальной FLASH-и.
Тогда остается прочитать и модифицировать только ее (если там не использован зашифрованный имидж wink.gif ).
Хотя не думаю что будут сложности. Игрушки нынче не защищают. Все как на ладони. По цене ж все равно китайцев не переплюнете.
Lmx2315
..тема мне напоминает содержание одной из неснятых серий "Теории Большого Взрыва" (сериал)
з.ы.
прошу прощения.
xintrea
Цитата(AlexandrY @ Nov 11 2014, 23:01) *
Под большой каплей только микроконтроллер.
Сериальная FLASH память с аудио и видео находится в 8-и ножной микросхеме которая стоит рядом с большой каплей.
Если повезет, то микроконтроллер имеет только RAM на борту, а программу грузит из той же сериальной FLASH-и.
Тогда остается прочитать и модифицировать только ее (если там не использован зашифрованный имидж wink.gif ).
Хотя не думаю что будут сложности. Игрушки нынче не защищают. Все как на ладони. По цене ж все равно китайцев не переплюнете.


Ага, то есть выпять и снять дамп, а там как пойдет, правильно?
kovigor
Цитата(xintrea @ Nov 12 2014, 02:17) *
Ага, то есть выпять и снять дамп, а там как пойдет, правильно?

Никак не пойдет. Задача запредельно сложная, даже если удастся считать прошивку, и столь же запредельно бессмысленная ...
muravei
Цитата(xintrea @ Nov 12 2014, 00:34) *
Да у него есть и ноутбук, и планшет.

Вот и сделайте "эмулятор" этого "компьютера".
Сергей Борщ
А нельзя в магазине посмотреть другой экземпляр такой игрушки? Возможно это болезнь именно этого экземпляра - из-за отстутствия какой-нибудь подтяжки или остатков флюса/кофе в клавиатуре он периодически ошибочно ловит нажатие клавиши перелистывания.
kostyan
Цитата(Сергей Борщ @ Nov 12 2014, 14:57) *
А нельзя в магазине посмотреть другой экземпляр такой игрушки? Возможно это болезнь именно этого экземпляра - из-за отстутствия какой-нибудь подтяжки или остатков флюса/кофе в клавиатуре он периодически ошибочно ловит нажатие клавиши перелистывания.


+1, поменять в магазине неработающую игрушку...
_3m
Цитата(AlexandrY @ Nov 12 2014, 00:35) *
Микроконтроллер я бы скорее идентифицировал как Renesas серии V850 (бывший NEC), даже точнее как V850E2/Dx. Мануал открыто не лежит sad.gif

Китайцы удавятся Renesas ставить.
Скорее всего там что-то свое, причем Mask или OTP.
Вот забавная таракашка от Elan
AlexandrY
Цитата(_3m @ Nov 12 2014, 14:32) *
Китайцы удавятся Renesas ставить.
Скорее всего там что-то свое, причем Mask или OTP.
Вот забавная таракашка от Elan


Не похоже нисколько. Этот ELAN требует внешней параллельной памяти и не имеет контроллера сегментного монохромного LCD. Отпадает сразу.
Golikov A.
прикидываю как круто считать прошивку из не известной флешки, потом отделить в куче бинаря код от настроек и прочего, потом его дизасемблить его для неизвестной архитектуры, потом найти в нем перелистывание (которое на самом деле скорее глюк чем фишка), потом поправить, залить и понять что не поправлена контрольная сумма...

Соберите компьютер, отдайте ребенку, пусть ловкость тренирует. 2 секунды - это достаточно много для принятия решения, остальное то работает? Другое дело что на таких экранах глаза переломаешь, но зато все жизненные решения ребенок будет обдумывать не более 2 секундwink.gif
jcxz
Цитата(Golikov A. @ Nov 12 2014, 21:00) *
прикидываю как круто считать прошивку из не известной флешки, потом отделить в куче бинаря код от настроек и прочего, потом его дизасемблить его для неизвестной архитектуры, потом найти в нем перелистывание (которое на самом деле скорее глюк чем фишка), потом поправить, залить и понять что не поправлена контрольная сумма...

....
за это время ребёнок подрастёт, пойдёт в школу, ВУЗ, заведёт своих...
тут-то как раз патч от дедули и подоспеет lol.gif
mcheb
Цитата(jcxz @ Nov 12 2014, 19:14) *
....

тут-то как раз патч от дедули и подоспеет lol.gif

biggrin.gif
xintrea
Цитата(Сергей Борщ @ Nov 12 2014, 09:57) *
А нельзя в магазине посмотреть другой экземпляр такой игрушки? Возможно это болезнь именно этого экземпляра - из-за отстутствия какой-нибудь подтяжки или остатков флюса/кофе в клавиатуре он периодически ошибочно ловит нажатие клавиши перелистывания.


Нет, это задано именно программно.

Во-первых, никакого перелистывания нет в играх, оно только в меню и подменю.

Во-вторых в документации написано:

Цитата
После включения на экране компьютера появится изображение и номер программы. Выбрать программу можно с помощью клавиш "Вверх", "Вниз". Также программы периодически меняются на экране. Для подтверждения выбора нужной программы нажмите кнопку "Ввод".


То есть, это гениальное решение китайских специалистов по юзабилити. А может быть эффективные менеджеры потребовали такое поведение, чтобы сразу при включении компьютер показыва как много в него напихано.
Golikov A.
ну коль игры работают, так от добра добра не ищут... пусть листает бестья заморская%) поправить шансов крайне мало...
kovigor
Цитата(Golikov A. @ Nov 12 2014, 21:18) *
поправить шансов крайне мало...

Зато можно обратиться в магазин и попробовать там обменять на другую модель, где такого эффекта нет. Если товарный вид, конечно, не утрачен.
А еще можно, нахоясь в меню, попробовать понажимать комбинации вроде "Ctrl NumLock", "Pause", или просто зажать клавишу, посредством которой входили в меню. Возможно, это решит проблему ...
mantech
Цитата(muravei @ Nov 12 2014, 11:30) *
Вот и сделайте "эмулятор" этого "компьютера".


Кстати, да, неплохая мысль, если идея такого компа вам понравилась, может есть смысл повторить его на том-же СТМ, ресурсов у него явно больше, чем у этой капли, он полностью документирован, и сама идея на порядок реальнее той, что вы задумали.
Golikov A.
надо на STM сделать обратную листалку, устройство которое жмет кнопку назад с заданными интервалами, только с выключателем чтобы в играх не мешала.
jcxz
Цитата(Golikov A. @ Nov 14 2014, 15:22) *
надо на STM сделать обратную листалку, устройство которое жмет кнопку назад с заданными интервалами, только с выключателем чтобы в играх не мешала.

Всё равно будут иногда проскакивать или нескомпенсированные импульсы или наоборот - лишние, ибо вы точно не знаете частоту листания.
Да ещё хуже, что меню будет дёргаться взад-вперёд.
Только если на этой STM сделать обратную связь от изображения на экране.....
Типа - если изображение поменялось, а нажатия не было, то генерить импульс "назад". Но вряд-ли ТС такое потянет rolleyes.gif
Golikov A.
значит реверсировать прошивку от непонятного проца потянет, а такое нетsm.gif?
AlexandrY
Цитата(Golikov A. @ Nov 14 2014, 14:23) *
значит реверсировать прошивку от непонятного проца потянет, а такое нетsm.gif?


Реверс значительно легче чем разработка, это очевидно.
Для реверса достаточно снять FLASH, прочитать ее на программаторе, посмотреть первые сектора, натравить IDA и другие тулсы поиска магических чисел и вычислить архитектуру под которую подходит стема команд.

Такое в бытность мою хакером делали за полдня.

Для реверса не нужно читать мануалы на тысячу страниц и изучать периферию.
Вообще можно не быть сильным программистом и знать тучу алгоритмов и прикладную область.
mantech
Цитата(AlexandrY @ Nov 14 2014, 15:57) *
Для реверса не нужно читать мануалы на тысячу страниц и изучать периферию.
Вообще можно не быть сильным программистом и знать тучу алгоритмов и прикладную область.


Я надеюсь это шутка biggrin.gif

Ибо не представляю, как вообще в непонятном коде, пусть даже определили тип проца, и нашли под него дизассемблер, и что??

Это ведь не просто процессор, а микроконтроллер с какой-то периферией, причем непонятно какой, по каким адресам и т.п.
Далее, нужно вычислить точку входа, затем пробежать всю инициализацию, найти блок меню, его структуру, опросы кнопок и т.п. затем понять, где, что задается и только тогда что-то поправить...

Ну и всего-лишь разобраться в асме, оптимизированном си компилятором, это совсем не то, что в рукописном...

Вообщем, мне тут писали, что ни в жизнь не смочь разобраться в полностью документированном IMX6, а тут вообще ничего нет, кроме железки biggrin.gif
jcxz
Цитата(AlexandrY @ Nov 14 2014, 18:57) *
Для реверса не нужно читать мануалы на тысячу страниц и изучать периферию.

Ну-ка определите, что сей кусок кода делает не читая мануалов на периферию
Конфигурит McASP или настраивает SPI+EDMA? smile3046.gif
CODE
MVK .L2 0x1,B0
$C$L1: ; PIPED LOOP PROLOG
[ B0] SPLOOPW 7 ;14 ; (P)
$C$L2: ; PIPED LOOP KERNEL
$C$DW$L$___CPR76__LPSCTransition__FP11CSL_PscRegsQ2_J18J2MDUiQ2_J18J7MDSTATE$3$B:
NOP 1
SPMASK L1,S1,D1
|| MV .L1 A6,A8 ; |38|
|| MV .D1 A4,A6 ; |38|
|| MVK .S1 296,A4 ; |39|
SPMASK S1
|| MVK .S1 1,A3
|| ADD .L1 A4,A6,A7 ; |39| (P) <0,2>
SPMASK S1
|| SHL .S1 A3,A8,A5
|| [ B0] LDW .D1T1 *A7,A3 ; |39| (P) <0,3> ^
NOP 2
SPMASK L1
|| MV .L1X B4,A9 ; |38|
NOP 1
AND .L1 A5,A3,A0 ; |39| <0,8> ^
[!A0] ZERO .L2 B0 ; |39| <0,9> ^
NOP 2
NOP 1
SPKERNEL 0,0
$C$DW$L$___CPR76__LPSCTransition__FP11CSL_PscRegsQ2_J18J2MDUiQ2_J18J7MDSTATE$3$E:
$C$L3: ; PIPED LOOP EPILOG
SHL .S1 A9,2,A9 ; |40|
ADD .L1 A9,A6,A4 ; |40|
MVK .S2 2560,B4 ; |40|
ADD .L2X B4,A4,B4 ; |40|
LDW .D2T2 *B4,B5 ; |40|
NOP 4
EXTU .S2 B5,27,27,B5 ; |40|
CMPEQ .L2 B5,B6,B0 ; |40|
[ B0] BNOP .S1 $C$L10,5 ; |40|
LDW .D2T2 *B4,B5 ; |42|
NOP 4
CLR .S2 B5,0,4,B5 ; |42|
OR .L2 B6,B5,B5 ; |42|
STW .D2T2 B5,*B4 ; |42|
MVK .S1 288,A4 ; |43|
|| MVK .S2 288,B4 ; |43|
ADD .L1 A4,A6,A4 ; |43|
LDW .D1T1 *A4,A16 ; |43|
MVK .L2 0x1,B0
ADD .L1X B4,A6,A31 ; |43|
MVK .L1 1,A4 ; |43|
SHL .S1 A4,A8,A7 ; |43|
OR .L1 A7,A16,A4 ; |43|
STW .D1T1 A4,*A31 ; |43|
$C$L4: ; PIPED LOOP PROLOG
[ B0] SPLOOPW 7 ;14 ; (P)
$C$L5: ; PIPED LOOP KERNEL
$C$DW$L$___CPR76__LPSCTransition__FP11CSL_PscRegsQ2_J18J2MDUiQ2_J18J7MDSTATE$8$B:
NOP 1
SPMASK S1
|| MVK .S1 296,A4 ; |44|
ADD .L1 A4,A6,A7 ; |44| (P) <0,2>
[ B0] LDW .D1T1 *A7,A3 ; |44| (P) <0,3> ^
NOP 4
AND .L1 A5,A3,A0 ; |44| <0,8> ^
[!A0] ZERO .L2 B0 ; |44| <0,9> ^
NOP 2
NOP 1
SPKERNEL 0,0
$C$DW$L$___CPR76__LPSCTransition__FP11CSL_PscRegsQ2_J18J2MDUiQ2_J18J7MDSTATE$8$E:
$C$L6: ; PIPED LOOP EPILOG
$C$L7: ; PIPED LOOP PROLOG
NOP 1
MVK .L2 0x1,B0
[ B0] SPLOOPW 8 ;16 ; (P)
$C$L8: ; PIPED LOOP KERNEL
$C$DW$L$___CPR76__LPSCTransition__FP11CSL_PscRegsQ2_J18J2MDUiQ2_J18J7MDSTATE$12$B:
NOP 2
SPMASK L1,S1
|| ADD .L1 A9,A6,A4
|| MVK .S1 2048,A5
SPMASK L1
|| ADD .L1 A5,A4,A5
[ B0] LDW .D1T1 *A5,A3 ; |45| (P) <0,4> ^
NOP 2
SPMASK L1
|| MV .L1X B6,A4
NOP 1
EXTU .S1 A3,27,27,A6 ; |45| <0,9> ^
CMPEQ .L1 A6,A4,A0 ; |45| <0,10> ^
[ A0] ZERO .L2 B0 ; |45| <0,11> ^
NOP 2
NOP 1
SPKERNEL 0,0

Могу даже архитектуру подсказать.
AlexandrY
Цитата(jcxz @ Nov 14 2014, 17:32) *
Ну-ка определите, что сей кусок кода делает не читая мануалов на периферию

Могу даже архитектуру подсказать.


TMS320C6x

А периферия меня не интересует. В рабочей игрушке она рабочая ей незачем интересоваться. biggrin.gif
jcxz
Цитата(AlexandrY @ Nov 14 2014, 18:57) *
Реверс значительно легче чем разработка, это очевидно.

Это неочевидно. Зависит от ПО. Его сложности и стиля написания (или отсутствия такового).
Написание "Hello world!" с использованием готовых либ, я думаю тут почти ни у кого не вызовет проблем.
И будет во много раз легче чем его реверс.

Цитата(AlexandrY @ Nov 14 2014, 21:36) *
А периферия меня не интересует. В рабочей игрушке она рабочая ей незачем интересоваться. biggrin.gif

Так вопрос-то возможно как раз о периферии и идёт - возможно что ложно определяется наличие нажатия на кнопу. Возможно косяк с автоповтором нажатой кнопы.
Golikov A.
не это фича указанная в мануале листать меню, ТС уже сказал что не брак.

другое дело хорошо если можешь по шагам трейсит код, можно двигаясь по коду найти точку влета в меню или прерывание что экран меняет и поправить условие. Ок делали такое, но как трейсить код? нужна архитектура, имулятор, а если таковых не существует? Если под каплей асик какой то?
AlexandrY
Цитата(Golikov A. @ Nov 14 2014, 17:59) *
не это фича указанная в мануале листать меню, ТС уже сказал что не брак.

другое дело хорошо если можешь по шагам трейсит код, можно двигаясь по коду найти точку влета в меню или прерывание что экран меняет и поправить условие. Ок делали такое, но как трейсить код? нужна архитектура, имулятор, а если таковых не существует? Если под каплей асик какой то?


Какие проблемы?
Меню всегда сопровождается цепочкой специфических условных переходов.
Не думайте, что в коде таких переходов очень много.
Их счетное количество и они все берутся на заметку.
Т.е. из всех машинных кодов этой архитектуры надо только искать команды переходов.
Потом FLASH патчится и выясняется какой переход на что влияет...

Ну не мне учить боевых реверсеров biggrin.gif

Вообщем дело нудное и тупое, но никак не сложное.


Golikov A.
ну если все так просто, помогите товарищу, сделайте ребенка счастливее)
Михась
Цитата(Golikov A. @ Nov 15 2014, 13:29) *
ну если все так просто, помогите товарищу, сделайте ребенка счастливее)


Все это мне напомнило денди. Это скорее всего боковик.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.