LINUX.ORG.RU

Реверс инжиниринг прошивки Zoom H1

 , , ,


1

2

У меня есть рекордер Zoom H1, который может работать как USB Audio так и как USB флешка. Выбирается режим работы кнопкой при включении от USB. После 10-ти секундной неактивности по-умолчанию выбирается режим USB флешки, а я бы хотел, чтобы включался режим аудио, чтобы при включении ПК оно автоматом переходило в режим микрофона.

В Интернете тема уже всплывала, но результатов ноль.

В этом рекордере стоит чип TMS320C55 c МК архитектуры С55(собственная архитектура TI). Прошивка есть на сайте. Что нужно сделать в теории понятно. Дизассемблировать файл прошивки, найти место с функцией выбора, внести изменения, и зашить обратно.

Но вот с практикой не понятно. На сайте TI есть какой-то C55x Code Generation Tools, но пока не смотрел его, ибо нужна регистрация. Хотел бы, чтобы люди с опытом подсказали хоть что-нибудь.

Хотел бы, чтобы люди с опытом подсказали хоть что-нибудь.

попробуй посмотреть

какой-то C55x Code Generation Tools

ида в профессиональной редакции умеет в TMS320C55xx, на офф сайте ссылки на мануалы умершие для TMS320C55xx, но гуглится просто. В общем-то, наверное у тебя не будет проблем особых.

anonymous ()
Ответ на: комментарий от anonymous

Проблема в том, файл прошивки разбит на какие-то сектора. И найти там сам код я не знаю как. Тут вроде бы есть разметка образа.

BceM_IIpuBeT ★★★★ ()
Последнее исправление: BceM_IIpuBeT (всего исправлений: 2)
Ответ на: комментарий от wep777

А как и где ты дизассемблер сделал? Как файл прошивки парсил? У меня их dis55 не хочет работать

┌[~/.../TI_CGT_C5500_4.4.1/bin]
└>>> ./dis55 ~/H1MAIN.bin                                                                

Disassembly of /home/mjok/H1MAIN.bin:

>> error loading file
BceM_IIpuBeT ★★★★ ()
Последнее исправление: BceM_IIpuBeT (всего исправлений: 1)
Ответ на: комментарий от BceM_IIpuBeT

Взял бы ты все же иду, как «белый человек» выше. Смотрю у TI даже мануалы человеческие есть и на ассемблер и на загрузчик и тулчейн, пусть и завести ты не все сразу можешь, не то что например богомерзкий медиатек, что-то то можно найти разве что в вебархивах и оттуда уже давно все вычистили почти…

anonymous ()
Ответ на: комментарий от anonymous

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

BceM_IIpuBeT ★★★★ ()
Последнее исправление: BceM_IIpuBeT (всего исправлений: 2)
Ответ на: комментарий от aol

Иду

Это IDE?

Не очень представляю, чем он тебе тут поможет.

┌[~/ti/TI_CGT_C5500_4.4.1]
└>>> ls                                                                                  
bin/               install.log  LINKER_README.txt  README.txt
DefectHistory.txt  lib/         man/               uninstall_cgt_c5500.bin*
include/           LICENSE.txt  READMEplus.txt
┌[~/ti/TI_CGT_C5500_4.4.1]
└>>> ls bin                                                                              
abs55*  asm55*   cg55p*  clist55*  embed55*  libinfo55*  mk55*   opt55*
acp55*  asm55p*  ci55*   dem55*    hex55*    lnk55*      nm55*   strip55*
ar55*   cg55*    cl55*   dis55*    ilk55*    masm55*     ofd55*  xref55*
┌[~/ti/TI_CGT_C5500_4.4.1]
└>>> man man/man1/dis55.1 

dis55(1)                                                                                                 TI Code Generation Tools                                                                                                dis55(1)

NAME
       dis55 - Disassembler

SYNOPSIS
       dis55 [ options ] [ file(s) ]

DESCRIPTION
       The disassembler translates machine language object files into human readable assembly source code.

OPTIONS
       The following options are accepted by this tool:

   Section Selection Options:
       -1     Disassemble all sections, process .cinit sections

       -d     Do not display DATA sections

       -t     Do not display TEXT sections

       -y     Display copy tables and the sections copied

   Format Altering Options:
       -a     Do not print ADDRESS with label names within instructions

       -b     Display data as BYTES instead of words

       -e     Display integer values in hex

       -g     Display ALGEBRAIC Format

       -I     Disassemble TEXT sections as DATA

       -i     Disassemble DATA sections as TEXT

       -L     Show both load and runtime addresses if different

       -q     QUIET Operation

       -qq    Really Quiet -- suppresses all headers

       -r     Assume status bit settings used by compiler

       -s     Suppress printing address and data words

   Miscellaneous Options:
       -h     Display a help message that includes usage and option information

EXIT STATUS
       The following error values are returned:
       0         Successful completion.
       >0        Unsuccessful completion; an error occured.

COPYRIGHT
       Copyright (c) 2012, Texas Instruments, Inc.

TI Tools                                                                                                       Mar 02, 2012                                                                                                      dis55(1)
BceM_IIpuBeT ★★★★ ()
Ответ на: комментарий от BceM_IIpuBeT

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

anonymous ()
Ответ на: комментарий от BceM_IIpuBeT

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

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

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

anonymous ()
Ответ на: комментарий от BceM_IIpuBeT

А кнопка то нет, всё что нужно это при появлении пистания при подклчении зажать атоматом кнопку на 10 секунд, а потом отжать.

Я бы просто взял микрореле и ёмкий конденсатор, реле без питания в замкнутом положении, при подключении конденсатор заряжается и через 10 секунд он заряжен становится при этом питание с него идёт на реле которое размыкается, а так как питание теперь есть всегда то оно не разомкнётся и кондёр не разрядится. От реле контакты к кнопке подпаять и всюо. Надёжно, делается из хлама, жрать не просит, легко вернут всё на то как было. Гугли реле+конденсатор поймёшь. ТОлько микрореле нужно такое которое по умолчанию замкнуто.

anonymous ()

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

vaddd ★★ ()
Ответ на: комментарий от anonymous

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

vaddd ★★ ()
Ответ на: комментарий от BceM_IIpuBeT

Возьмите любой простейший 6-8-ногий микроконтроллер в маленьком корпусе, типа 1.5х3 мм (attiny4-10??), разместите в корпусе, подключите тремя проводами - земля, питание, кнопка - и моделируйте нужные вам тайминги. Там конечно тоже могут всплыть мелочи, типа нестандартного программирования, но боюсь, эти трудности не идут ни в какое сравнение с патчингом коммерческих прошивок. Все, что не нужно гражданам - как правило закрывается. Даже тупая прошивка в двухдолларовом реле-контроллере холодильника закрыта от чтения. Предсказываю, что вы потратите немало времени без результата, но кто знает, вдруг именно этот рекордер выложен кодом наружу

vaddd ★★ ()
Ответ на: комментарий от BceM_IIpuBeT

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

vaddd ★★ ()
Ответ на: комментарий от vaddd

Хорошо, молодец. Ты же тему лучше изучил и знаешь, что в версии прошивки 2.10 и добавили возможность работы USB Audio, и ты так же знаешь, что обновляется прошивка через микроСД карту.

BceM_IIpuBeT ★★★★ ()
Ответ на: комментарий от BceM_IIpuBeT

При чем тут хобби!? Мне нужен микрофон.

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

anonymous ()