Перейти к содержанию
    

F2MC-16LX IDA и дальний прыжок

День добрый.

Может кто знанимался подобным.

Суть. Есть бинарь от 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

Вроде все верно. Опкод, адрес, банк.

Потыкал всяческие настройки - не нашел место, где это можно поправить.

С такими приколами, конечно, можно кое-как работать. Но очень неудобно.

Может кто сталкивался?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуй отрезать последнее полуслово флеши, чтобы конечный адрес был не FFFFFFH, а FFFFFDH.

Были такие приколы при реверсе М16С.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С такими приколами, конечно, можно кое-как работать. Но очень неудобно.

Может кто сталкивался?

 

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

 

PS: доступ до форума поддержки только у официальных пользователей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это однозначно ошибки модуля procs\f2mc.w32, до конфига тут дело не доходит.

Часть получилось поправить, но надо глубже смотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуй отрезать последнее полуслово флеши, чтобы конечный адрес был не FFFFFFH, а FFFFFDH.

Были такие приколы при реверсе М16С.

 

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

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

 

Это однозначно ошибки модуля procs\f2mc.w32, до конфига тут дело не доходит.

Часть получилось поправить, но надо глубже смотреть.

А чем ковырять этот подель?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отправили уже отчет в hex-rays.

Ждем, когда исправят.

Потом заменить да и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Паша, для М16 есть штатные дизасемблеры

И последняя ячейка никак не влияет

ИДА не пробовал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поправлено вычисление адреса CALLP\JMPP.

Спасибо!

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

 

6.8.150423 тоже не то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...