Перейти к содержанию
    

Фиксики - Вытащить прошивку из китайского детского компьютера. Найти и заменить пару байт. Залить обратно.

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

 

Соберите компьютер, отдайте ребенку, пусть ловкость тренирует. 2 секунды - это достаточно много для принятия решения, остальное то работает? Другое дело что на таких экранах глаза переломаешь, но зато все жизненные решения ребенок будет обдумывать не более 2 секунд;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

....

за это время ребёнок подрастёт, пойдёт в школу, ВУЗ, заведёт своих...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нельзя в магазине посмотреть другой экземпляр такой игрушки? Возможно это болезнь именно этого экземпляра - из-за отстутствия какой-нибудь подтяжки или остатков флюса/кофе в клавиатуре он периодически ошибочно ловит нажатие клавиши перелистывания.

 

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

 

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

 

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

 

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

 

То есть, это гениальное решение китайских специалистов по юзабилити. А может быть эффективные менеджеры потребовали такое поведение, чтобы сразу при включении компьютер показыва как много в него напихано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну коль игры работают, так от добра добра не ищут... пусть листает бестья заморская%) поправить шансов крайне мало...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поправить шансов крайне мало...

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

А еще можно, нахоясь в меню, попробовать понажимать комбинации вроде "Ctrl NumLock", "Pause", или просто зажать клавишу, посредством которой входили в меню. Возможно, это решит проблему ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот и сделайте "эмулятор" этого "компьютера".

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

надо на STM сделать обратную листалку, устройство которое жмет кнопку назад с заданными интервалами, только с выключателем чтобы в играх не мешала.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

надо на STM сделать обратную листалку, устройство которое жмет кнопку назад с заданными интервалами, только с выключателем чтобы в играх не мешала.

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

Да ещё хуже, что меню будет дёргаться взад-вперёд.

Только если на этой STM сделать обратную связь от изображения на экране.....

Типа - если изображение поменялось, а нажатия не было, то генерить импульс "назад". Но вряд-ли ТС такое потянет :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

значит реверсировать прошивку от непонятного проца потянет, а такое нет:)?

 

Реверс значительно легче чем разработка, это очевидно.

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

 

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

 

Для реверса не нужно читать мануалы на тысячу страниц и изучать периферию.

Вообще можно не быть сильным программистом и знать тучу алгоритмов и прикладную область.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для реверса не нужно читать мануалы на тысячу страниц и изучать периферию.

Вообще можно не быть сильным программистом и знать тучу алгоритмов и прикладную область.

 

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

 

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

 

Это ведь не просто процессор, а микроконтроллер с какой-то периферией, причем непонятно какой, по каким адресам и т.п.

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

 

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

 

Вообщем, мне тут писали, что ни в жизнь не смочь разобраться в полностью документированном IMX6, а тут вообще ничего нет, кроме железки :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для реверса не нужно читать мануалы на тысячу страниц и изучать периферию.

Ну-ка определите, что сей кусок кода делает не читая мануалов на периферию

Конфигурит McASP или настраивает SPI+EDMA? :smile3046:

           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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну-ка определите, что сей кусок кода делает не читая мануалов на периферию

 

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

 

TMS320C6x

 

А периферия меня не интересует. В рабочей игрушке она рабочая ей незачем интересоваться. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Реверс значительно легче чем разработка, это очевидно.

Это неочевидно. Зависит от ПО. Его сложности и стиля написания (или отсутствия такового).

Написание "Hello world!" с использованием готовых либ, я думаю тут почти ни у кого не вызовет проблем.

И будет во много раз легче чем его реверс.

 

А периферия меня не интересует. В рабочей игрушке она рабочая ей незачем интересоваться. :biggrin:

Так вопрос-то возможно как раз о периферии и идёт - возможно что ложно определяется наличие нажатия на кнопу. Возможно косяк с автоповтором нажатой кнопы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...