Сейчас на форуме: _MBK_, Adler (+4 невидимых)

 eXeL@B —› Вопросы новичков —› IDA Pro 5.5 - дизасм rom`ов motorolla coldfire
Посл.ответ Сообщение

Ранг: 16.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 07 апреля 2011 07:01
· Личное сообщение · #1

камады, подскажите плиззз имею на раках прошивку novomatoc coolfire1
процессор моторолла XCF5206EFT402J22G QFP - он же motorolla coldfire series

запускаю IDA, гружу ром, выбираю проц motorolla coldfire
и собственно все. читал форум нашел пост по теме. EntryPoint хранится по адресу 0x404
в моем случае это 0x00E03C20

собственно вопрос в том как запустить сам дизасм и получить что нибудь боле-менее читабильное.

ЗЫ интересует именно исполняемый код в роме. графика и звук пройденный этап



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 07 апреля 2011 10:00
· Личное сообщение · #2

progman пишет:
запускаю IDA, гружу ром, выбираю проц motorolla coldfire

progman пишет:
в том как запустить сам дизасм и получить что нибудь боле-менее читабильное.

По моему опыту дизасма РОМ - надо задать правильный адрес загрузки РОМ в ИДА(по умолчанию там 0, правда для некоторых процов правильное значение стоит).
В твоем случае наверно 0xE00000 - точнее смотри в описаниях на этот проц.
Иначе все адреса покореженные.
Второе - дизасм, если мне не изменяет мой склероз, для РОМ автоматом не стартует и надо ручками. Лучше всего начинать с точки входа. Там же и поймешь - правильно ли задал адрес загрузки.



Ранг: 16.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 07 апреля 2011 12:08
· Личное сообщение · #3

tundra37 спасибо за наводку, но или не верно информацию понял или одно из двух.

doctor Ice писал тут http://exelab.ru/f/action=vthread&forum=2&topic=14014&page=0#28
смотрите в первой флешке 2й дворд 400h (следует заметить что колд файр не переставляет байтики местами low endian) этот второй дворд есть адрес обработчика первого прерывания все остальные прерывания инициализируются потом так что да точка входа это 400h. вообще качайте даташиты и таких тривиальных вопросов у вас не будет.

гружу ром, все по дефолту, перехожу на адрес 0х400 жму С в ида, идет дизасм. кода очень мало, функций 10-20. ожидал несколько большего.



Ранг: 4.6 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2011 08:59
· Личное сообщение · #4

Года 4 назад весь код приходилось проверять вручную, т.к. ида с колдфаером косячила. switch...case криво обрабатывала. Потом там еще прерывания пойдут, около сотни, часть котрых ида не увидит, потом где-то в коде таблица соответствия прерываний и функций и т.д. Исполняемый код - это тоже пройденный этап ))



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

Создано: 08 апреля 2011 16:27 · Поправил: punxer
· Личное сообщение · #5

progman
есть же порт под в винду)) точнее эмулятор



Ранг: 16.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2011 19:42
· Личное сообщение · #6

punxer пишет:
progmanесть же порт под в винду)) точнее эмулятор


эмуль я распотрошил вдоль и поперк. меня интересует именно оригинал.

В частности нужны ленты из мат аппарата новоматика.
Сам алгоритм математический у новоматика не сложный. А вот оригинальные ленты в прошивке лежат и я надеялся дизассемблировав rom визуально найти их там... но не судьба.
или они не в том виде как я рассчитывал лежат или пошифрованы злостно.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 09 апреля 2011 11:50
· Личное сообщение · #7

progman пишет:
перехожу на адрес 0х400 жму С в ида, идет дизасм. кода очень мало, функций 10-20. ожидал несколько большего.

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



Ранг: 16.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 10 апреля 2011 16:17 · Поправил: progman
· Личное сообщение · #8

tundra37 пишет:
Раз функций немного, то визуально посмотри, что они делают. Реверс и еще раз реверс.


функций за 1000. в первый раз видимо сделал что то не то.
часов 16 листинг смотрел. читал, вникал.
хз где и как они ленты хранят. массивов с данными много там и если ленты пошифрованы то хрен найдешь.

а вообще лента это что то такое приерно:
Code:
  1. const unsigned char data1[] = { 4,8,0,4,6,8,7,1,9,5,3,9,5,2,3,7,8,9,6,7,8,6,7,8,2,7,8,6,4,8,6,1 };
  2. const unsigned char data2[] = { 8,7,3,4,7,5,0,6,5,2,6,3,5,8,2,7,4,5,7,8,5,7,4,1,7,4,7,5 };
  3. const unsigned char data3[] = { 4,5,7,6,4,2,8,5,7,6,5,8,6,4,7,3,9,6,8,1,9,8,0,5,7,3,6,4,8,5,6,8 };
  4. const unsigned char data4[] = { 2,8,4,6,0,7,8,1,8,6,3,4,7,0,5,8,7,0,6,8,3,5,7,8,2,4,1,5 };
  5. const unsigned char data5[] = { 6,1,5,7,8,3,6,8,2,7,4,2,8,3,6,4,9,5,7,8,5,9,4,5,3,0,7,6,0,7,8,2 };


способов скрыть такие массивы мульен. (((



Ранг: 4.6 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 10 апреля 2011 19:53 · Поправил: infini
· Личное сообщение · #9

ленты не шифрованы, брось в личку пожатую прошивку с которой работаешь, я скажу где ленты лежат, дальше сам )))

| Сообщение посчитали полезным: progman

Ранг: 16.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 11 апреля 2011 12:53
· Личное сообщение · #10

infini отправил


 eXeL@B —› Вопросы новичков —› IDA Pro 5.5 - дизасм rom`ов motorolla coldfire
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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