Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: F2MC-16LX IDA и дальний прыжок
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Dron_Gus
День добрый.
Может кто знанимался подобным.
Суть. Есть бинарь от F2MC-16LX. Есть IDA 6.6. Бинарь загружен, проц выбран, какой-то код получился. Все локальные прыжки - ок.
С дальними беда:
Код
sub_FE0000+49                   bnz     loc_FE004F
sub_FE0000+4B                   callp   unk_E9FE34

Первый - это близкий прыжок. Адрес верен. Попадает в диапазон РОМ 0xFE0000-0xFFFFFF. Ну и по коду все логично.
Второй прыжок дальний. В нем и наблюдается какая-то беда с адресом. Должен быть 0xFE34E9. И действительно по 0xFE34E9 есть код похожий на вход в функцию (push, выделение места на стеке и т.д.).
Побайтно вторая команда выглядит так
Код
sub_FE0000+4B                   .data.b 0x65
sub_FE0000+4C                   .data.b 0xE9
sub_FE0000+4D                   .data.b 0x34
sub_FE0000+4E                   .data.b 0xFE

Вроде все верно. Опкод, адрес, банк.
Потыкал всяческие настройки - не нашел место, где это можно поправить.
С такими приколами, конечно, можно кое-как работать. Но очень неудобно.
Может кто сталкивался?
pavel-pervomaysk
Попробуй отрезать последнее полуслово флеши, чтобы конечный адрес был не FFFFFFH, а FFFFFDH.
Были такие приколы при реверсе М16С.

Ну и конечно же по очереди с буквой "С" пробежаться придется неоднократно.
spf
Цитата(Dron_Gus @ Nov 6 2015, 02:05) *
С такими приколами, конечно, можно кое-как работать. Но очень неудобно.
Может кто сталкивался?


Это дырка в модуле IDA под процессоры семейства 16LX.

PS: доступ до форума поддержки только у официальных пользователей.
spf
Это однозначно ошибки модуля procs\f2mc.w32, до конфига тут дело не доходит.
Часть получилось поправить, но надо глубже смотреть.
Dron_Gus
Цитата(pavel-pervomaysk @ Nov 29 2015, 12:08) *
Попробуй отрезать последнее полуслово флеши, чтобы конечный адрес был не FFFFFFH, а FFFFFDH.
Были такие приколы при реверсе М16С.

Ну и конечно же по очереди с буквой "С" пробежаться придется неоднократно.

Спасибо, но не помогло. Или еще какие-то волшебные пасы руками сделать надо?

Цитата(spf @ Dec 15 2015, 15:22) *
Это однозначно ошибки модуля procs\f2mc.w32, до конфига тут дело не доходит.
Часть получилось поправить, но надо глубже смотреть.

А чем ковырять этот подель?
pavel-pervomaysk
Отправили уже отчет в hex-rays.
Ждем, когда исправят.
Потом заменить да и все.
puhovick
Паша, для М16 есть штатные дизасемблеры
И последняя ячейка никак не влияет
ИДА не пробовал
spf
Поправлено вычисление адреса CALLP\JMPP.
Dron_Gus
Цитата(spf @ Jan 20 2016, 08:09) *
Поправлено вычисление адреса CALLP\JMPP.

Спасибо!
Это под какую IDA? С 6.6.141224 не заработало.

6.8.150423 тоже не то.
spf
Должно работать с любой.

6.8.150423 - работает точно.

Dron_Gus
Цитата(spf @ Jan 20 2016, 12:45) *
Должно работать с любой.

6.8.150423 - работает точно.

С той, что лежит в местных закромах - не работает. Если подменить файл проца и попытаться открыть тот же проект - пишет нет лицензии на этот проц. Если попытаться заново открыть бинарь - проца нет в списке доступных. При этом изначально после установки все работало. Но все с тем же багом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.