Сейчас на форуме: vsv1, r0lka, -Sanchez-, testrev1337, johnniewalker, Kybyx (+3 невидимых)

 eXeL@B —› Крэки, обсуждения —› Формат карт для iGo [ARM]
Посл.ответ Сообщение

Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 июня 2009 18:41
· Личное сообщение · #1

Уважаемая общественность!

Ищу заинтересованных в следующей задаче для совместного поиска решения.

Имеется программа IGo от Nav'N'Go - GPS-навигатор для WinCE-устройств. Замечательная программа, очень удобная (Navitel на мой взгляд и рядом не валялся) свежие ломанные версии регулярно появляются в сети. Но как говориться, есть один нюанс...

Эта программа использует карты только в своем собственном формате (файлы носят расширение *.fbl). Карты России - ни о чем, квадратики городов без улиц да федеральные трассы. Но существует ресурс sibreg.com на котором энтузиасты сами делают карты восточной сибири. Задача - вскрыть формат карт IGo и написать конвертер в этот формат. Я пробую ковыряться с IDA во внутренностях, но пока не очень получается.

IGo Amigo (http://torrents.ru/forum/viewtopic.php?t=1854152) тоже подойдет, используется тот же формат карт. Но IGo 8.3 субъективно кажется легче будет разобрать (как мне _показалось_ Amigo сильно объектный, множество ф-ций которые возможно являются методами объектов, бла-бла. Могу ошибаться, и возможно кому-то именно эту прогу будет вскрыть легче).

Хотелось бы
1) выдрать алгоритм загрузки карты (узнать запакована ли она, если да - то как)
2) по этому алгоритму либо по дальнейшему её использованию узнать узнать формат карты
3) узнав формат карты написать конвертер в этот формат

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

Я не очень-то силен в дизассемблировании, тем более ARM я вообще первый раз вижу, но к сожалению без этого не обойтись. Карты компрессированы/закодированы - мне не удалось найти в них никаких текстовых строк, например. Я мог бы расковырять формат данных если бы не это. Другого способа выяснить алгоритм запаковки карты кроме как дизасемблирование я не вижу. Если бы кто помог с первым этапом - остальные шаги выполню сам, некоторый опыт подобного анализа есть. Результаты и процесс будет выложен здесь.

link_deleted_by_forum_engine/files/btupmd810 - IGo 8.3.2.83157 с минимальным набором данных + .idb файл (строки "причесаны", пара комментариев на перспективных направлениях). Выкладывал несколько недель назад для друга сведующего в АРМах, но кажется он куда-то опять пропал в командировку (прошлый раз он отвисал на Байконуре несколько месяцев ).


Пара перспективных направлений для того чтобы "пойти в обход":

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

- в функции по адресу 0029d6c8 печатается код ошибки при работе с картами - "ошибка ввода-вывода", "нет карт", "ошибка формата файла". Можно посмотреть ф-ции ссылающиеся на нее. Например в ф-ции 002aa918 видно какие значения соответствуют дорогам разного типа. 0029с020 тоже может быть перспективной - куча работы с памятью и арифметики/битовой логики - возможно распаковка.



Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 июня 2009 18:44
· Личное сообщение · #2

BTW, трассировка на эмуляторе у меня не получилась - прога валится с эксепшеном, а железное устройство по activesync подключить не получилось.



Ранг: 45.7 (посетитель), 5thx
Активность: 0.020
Статус: Участник

Создано: 21 июня 2009 09:48
· Личное сообщение · #3

iGO есть помоему и под PC так что если они используют один и тот же формат... то не надо заморачиваться с WinCE под ARM



Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 июня 2009 12:42 · Поправил: dikiy
· Личное сообщение · #4

Fallout пишет:
iGO есть помоему и под PC


Ха! Действительно, что-то есть. Правда это iGo 8ой версии, в 8.3 другой формат карт. НО! Но запакованы они похоже одинаково. Чтож, начинаю тогда ковырять эту версию, будет прогресс - отпишусь.

PS: а вот интересно - вскрытие формата файла как вообще бьется с тематикой форума? Допускается такое обсуждение?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 21 июня 2009 13:45
· Личное сообщение · #5

Ковыряй формат, жалко что ли. Нормально это с правилами.


 eXeL@B —› Крэки, обсуждения —› Формат карт для iGo [ARM]
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати