> Etrex Legend HCX 2.30
Так вроде свежее версия есть?
В общем, предположительно функция по адресу 0x0c0bdf96 формирует сообщения 0xFF, 0xF8. Функция 0x0c0baea6 вероятно формирует ответ на 0x06. Они вызываются из 0x0c0baf38, где, вероятно, проходит разбор входных сообщений.
Первую функцию я искал по характЕрным указателям на id прибора, номер версии (те же на которые ссылаются указатели в начале региона - 0x0c020008, 0x0c02000c) и строку "Software Version". Вторую функцию по указателю на характЕрный массив содержащий тело сообщения 0xFD ('P', 0, 'L', 1, ... т.е. 0x50 0x00 0x00 0x4c 0x01 0x00 ...).
Формат внутренней файловой системы в Garmin'ов
Правила форума
Для предотврашения спама первые сообщения вновь зарегистрированных пользователей проходят ручную премодерацию.
Для предотврашения спама первые сообщения вновь зарегистрированных пользователей проходят ручную премодерацию.
-
- Сообщения: 347
- Зарегистрирован: 12 май 2012, 02:50
|
||
Re: Формат внутренней файловой системы в Garmin'ов
> Хочу разобрать файловую систему которая лежит в регионе 0xD.
почему "файловую"?
я бы скорее это назвал некими "объектами" :o)
ну как-то примерно так:
[pre]
#!/usr/bin/perl
$flag = 1;
while ($flag && sysread STDIN, $buf, 4) {
($len, $obj) = unpack ('Ss', $buf);
$flag = $obj >= 0;
if ($flag) {
sysread STDIN, $buf, ($len - 1) & 0x1ffc;
printf ("obj_%x[%x]=%s\n", $obj, ($len & 0x1fff) - 4,
unpack ('H*', $buf));
}
}
[/pre]
скрипт датирован 4 маем 2005 года, так что на дополнительные вопросы ответить вряд ли смогу... :o)
если склероз мне не изменяет, натравлять его надо на каждый сегмент по отдельности.
там, где $len & 0x1fff, похерены 3 битика, среди которых однако и валидность объекта где-то присутствует...
зы. цель все равно непонятен ;(
почему "файловую"?
я бы скорее это назвал некими "объектами" :o)
ну как-то примерно так:
[pre]
#!/usr/bin/perl
$flag = 1;
while ($flag && sysread STDIN, $buf, 4) {
($len, $obj) = unpack ('Ss', $buf);
$flag = $obj >= 0;
if ($flag) {
sysread STDIN, $buf, ($len - 1) & 0x1ffc;
printf ("obj_%x[%x]=%s\n", $obj, ($len & 0x1fff) - 4,
unpack ('H*', $buf));
}
}
[/pre]
скрипт датирован 4 маем 2005 года, так что на дополнительные вопросы ответить вряд ли смогу... :o)
если склероз мне не изменяет, натравлять его надо на каждый сегмент по отдельности.
там, где $len & 0x1fff, похерены 3 битика, среди которых однако и валидность объекта где-то присутствует...
зы. цель все равно непонятен ;(
Re: Формат внутренней файловой системы в Garmin'ов
skycolonel, да я это видел.
C0BAF38 - IOP_Task_Parse_Message() из нее идет куча разветвлений парсящих USB запросы.
Но меня ща интересует таска GFS
RAM2:2000F0BC HWM_GFS_Task_Des DCD HWM_GFS_Task_Main+1 ; DATA XREF: ROM:off_C3327C4o
RAM2:2000F0BC ; RAM2:off_2000E2A0o
RAM2:2000F0C0 DCD 0
RAM2:2000F0C4 DCD unk_803F260
RAM2:2000F0C8 DCD 0x1490000
RAM2:2000F0CC DCD off_2000F0D0
RAM2:2000F0D0 off_2000F0D0 DCD aHwmGfsMain ; DATA XREF: ROM:0C3335F0o
RAM2:2000F0D0 ; RAM2:2000F0CCo
RAM2:2000F0D0 ; "HWM GFS main"
RAM2:2000F0D4 DCD 0
RAM2:2000F0D8 DCD 0x803E260
RAM2:2000F0DC DCD 0x400
RAM2:2000F0E0 aHwmGfsMain DCB "HWM GFS main",0
И также интересует весь код что лежит в RAM после 20008000.
C0BAF38 - IOP_Task_Parse_Message() из нее идет куча разветвлений парсящих USB запросы.
Но меня ща интересует таска GFS
RAM2:2000F0BC HWM_GFS_Task_Des DCD HWM_GFS_Task_Main+1 ; DATA XREF: ROM:off_C3327C4o
RAM2:2000F0BC ; RAM2:off_2000E2A0o
RAM2:2000F0C0 DCD 0
RAM2:2000F0C4 DCD unk_803F260
RAM2:2000F0C8 DCD 0x1490000
RAM2:2000F0CC DCD off_2000F0D0
RAM2:2000F0D0 off_2000F0D0 DCD aHwmGfsMain ; DATA XREF: ROM:0C3335F0o
RAM2:2000F0D0 ; RAM2:2000F0CCo
RAM2:2000F0D0 ; "HWM GFS main"
RAM2:2000F0D4 DCD 0
RAM2:2000F0D8 DCD 0x803E260
RAM2:2000F0DC DCD 0x400
RAM2:2000F0E0 aHwmGfsMain DCB "HWM GFS main",0
И также интересует весь код что лежит в RAM после 20008000.
Re: Формат внутренней файловой системы в Garmin'ов
>почему "файловую"? >я бы скорее это назвал некими "объектами" :o) Можно сказать что это и объекты. Но каждый объект = файл. Чтобы понять почему я так говорю можете глянуть на вот этот архив: http://rapidshare.com/files/133820541/A ... gerefs.bin - дамп подобной файловой системы с телефона Samsung sgh-x426. Сравните с блоком 0xD и найдите 10 отличий. Там же есть в архиве мой сорец, того как оно парсится.
-
- Сообщения: 347
- Зарегистрирован: 12 май 2012, 02:50
Re: Формат внутренней файловой системы в Garmin'ов
Значит Вы заметно дальше продвинулись в исследованиях :) Впору к Вам с расспросами приставать :) В структуре задач и переключениях не разбирались?
|
||
Re: Формат внутренней файловой системы в Garmin'ов
Именно переключение задач - не интересовался. Я разреверсил обмен сообщениями между тасками, нашел функции получения и ожидания сообщений. Нашел все таски.
Re: Формат внутренней файловой системы в Garmin'ов
Все. Вроде разобрался. Теперь остается тока парсить "объекты".
-
- Сообщения: 347
- Зарегистрирован: 12 май 2012, 02:50
Re: Формат внутренней файловой системы в Garmin'ов
Не знаете, где можно посмотреть по manufacturer code и device id флеши ее тип? Например, 89 8893. 89 - Intel, а 8893 - какая именно микросхема?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 165 гостей