Автору, видимо, никогда не приходилось загружать код в область видеопамяти доисторических компьютеров типа БК — там такие картинки естественным путем получались. )
А вот если взять не получившийся скомпилированный код, а исходник (из него можно больше выцепить информации), проанализировать по каким-то критериям (объем, стиль кода, именование переменных, плотность строк, встречаемость определенных лексических конструкций, комментариев) и на их основе создать какую-то сгенерированную абстракную картинку (а лучше — инфографику), то это было интереснее.
Этот микропроцессор был в одной из старых моделей. Что в новой — неизвестно. К сожалению, игрушка не поддается аккуратному раздербаниванию, обратно ее собрать «как было» не получится, поэтому я ее не разбирал. Вот здесь виден процесс разборки, но микросхем на фото нет.
Заказывайте с Амазона с пересылкой (куча разных компаний есть, которые предоставляют виртуальный адрес в США). Если интересно, могу в личку написать, какой я пользовался.
А по результатам — есть перечень известных команд и их частичное описание (в исходниках проекта на Github).
Брал WAV-файлы для последовательно идущих команд (например, 352, 353, 354, 355, ...), по спектрограмме (по «нотам») получал код в четверичной системе и смотрел, как изменяются числа от команды к команде. Закономерность была вида 0, 1, 3, 2 вместо ожидаемой 0, 1, 2, 3, что натолкнуло на мысль, что 3 и 2 надо поменять местами. Картинка и сложилась. Выборочная проверка других случайных команд (все 79 я, разумеется, не проверял) показала, что теория работает.
Кстати, о контрольных суммах: не проще ли было бы тупым перебором нагенерить вариантов команд, а потом скормить их этому зверю и посмотреть, на что он среагирует?
Это для каждой команды дает 256 вариантов. Занятие очень утомительное, особенно когда нет гарантии, что даже на один из этих вариантов Furby как-то отреагирует. Сами команды отправляются небыстро, между ними нужны паузы, Furby не все их услышит, если будет в это время что-то делать свое и т.д. Это превратило бы увлекательное занятие в пытку.
Да, забыл спросить: а этот PIN-код как-то влияет на первые два байта команды? У меня ощущение, что PIN-код — это и есть то самый третий байт, который по умолчанию просто равен 1032.
Разумеется — и дешевле (а в Furby много всего напихано для его цены) и спаривать не надо. Для устройств, которые нужно пользовать в непосредственной близости от экрана устройства — самое то!
Кстати, заметьте, что в формируемом аудио частота звука между «нотами» а также перед и после посылкой меняется плавно. Т.е. все сделано с расчетом на то, чтобы не было резких «биений» в FFT (а значит, как я понимаю, и перепадов давления, которые слышатся как щелчки). Я сначала тоже сделал по простому — просто «ноты» без плавных переходов. И на спектрограмме на границах нот были ужасные красные полосы, а при проигрывании аудио был слышен отчетливый треск. Потом сделал все красиво, почти как на оригинальной картинке, и щелчки прекратились.
Собственно да, первые Furby появились еще в конце 90-х. А тут они совсем недавно перезапустили игрушку, сделав ее более интересной и интеллектуальной (если это слово к Furby вообще применимо). Ну и привязанной к мобильному приложению — куда теперь без этого.
А вот если взять не получившийся скомпилированный код, а исходник (из него можно больше выцепить информации), проанализировать по каким-то критериям (объем, стиль кода, именование переменных, плотность строк, встречаемость определенных лексических конструкций, комментариев) и на их основе создать какую-то сгенерированную абстракную картинку (а лучше — инфографику), то это было интереснее.
тче…Думаю, что пролить свет на этот вопрос может только запись «разговора» двух Furby.
А по результатам — есть перечень известных команд и их частичное описание (в исходниках проекта на Github).
Именно так и оказалось, да.
Это для каждой команды дает 256 вариантов. Занятие очень утомительное, особенно когда нет гарантии, что даже на один из этих вариантов Furby как-то отреагирует. Сами команды отправляются небыстро, между ними нужны паузы, Furby не все их услышит, если будет в это время что-то делать свое и т.д. Это превратило бы увлекательное занятие в пытку.
Кстати, заметьте, что в формируемом аудио частота звука между «нотами» а также перед и после посылкой меняется плавно. Т.е. все сделано с расчетом на то, чтобы не было резких «биений» в FFT (а значит, как я понимаю, и перепадов давления, которые слышатся как щелчки). Я сначала тоже сделал по простому — просто «ноты» без плавных переходов. И на спектрограмме на границах нот были ужасные красные полосы, а при проигрывании аудио был слышен отчетливый треск. Потом сделал все красиво, почти как на оригинальной картинке, и щелчки прекратились.
Интересно, что в итоге моя табличка, содержащая готовые 64 байта для всех комбинаций, получилась гораздо проще, чем код из библиотеки. )