Сейчас на форуме: Magister Yoda, subword (+9 невидимых)

 eXeL@B —› Основной форум —› VxWorks kernel
Посл.ответ Сообщение

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

Создано: 04 сентября 2008 19:32
· Личное сообщение · #1

Такая вот проблема...
Как можно дизасемблировать ядро этой с-мы... Ида его не берет.
Есть 2 сервера под Ворксом,
На одном ядро в ELF файле который удалось кое-как роспарсить, Но много ошибок выдала, строки как код показала...и т.д. файл называеться mainos.sys. Может кто-то знает какие смещения в сегментов или какой формат: вот заголовок
00000000 c4 4f eb ce ec 2b 74 00 ff ff ff ff 30 30 32 31 |.O...+t.....0021|
00000010 00 0a 03 00 00 00 00 00 68 35 69 00 47 53 00 00 |........h5i.GS..|
00000020 1c 00 07 01 0b 01 00 00 a0 fe 5c 00 20 36 0c 00 |..........\. 6..|
00000030 d0 e4 47 00 00 10 00 00 00 10 00 00 a0 0e 5d 00 |..G...........].|
00000040 2e 74 65 78 74 00 00 00 00 10 00 00 00 10 00 00 |.text...........|
00000050 a0 fe 5c 00 a8 00 00 00 00 00 00 00 00 00 00 00 |..\.............|
00000060 00 00 00 00 20 00 00 00 2e 64 61 74 61 00 00 00 |.... ....data...|
00000070 a0 0e 5d 00 a0 0e 5d 00 20 36 0c 00 48 ff 5c 00 |..]...]. 6..H.\.|
00000080 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 |............@...|
00000090 2e 62 73 73 00 00 00 00 c0 44 69 00 c0 44 69 00 |.bss.....Di..Di.|



а на второй страные файлы и вроде АРМ-вская арзитектура....файл называеться exec. И я не могу никак роспознать файл. первые байты:
00000000 c4 4f eb ce ec 2b 74 00 ff ff ff ff 30 30 32 31 |.O...+t.....0021|
00000010 00 0a 03 00 00 00 00 00 68 35 69 00 47 53 00 00 |........h5i.GS..|
00000020 1c 00 07 01 0b 01 00 00 a0 fe 5c 00 20 36 0c 00 |..........\. 6..|
00000030 d0 e4 47 00 00 10 00 00 00 10 00 00 a0 0e 5d 00 |..G...........].|
00000040 2e 74 65 78 74 00 00 00 00 10 00 00 00 10 00 00 |.text...........|
00000050 a0 fe 5c 00 a8 00 00 00 00 00 00 00 00 00 00 00 |..\.............|
00000060 00 00 00 00 20 00 00 00 2e 64 61 74 61 00 00 00 |.... ....data...|
00000070 a0 0e 5d 00 a0 0e 5d 00 20 36 0c 00 48 ff 5c 00 |..]...]. 6..H.\.|
00000080 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 |............@...|
00000090 2e 62 73 73 00 00 00 00 c0 44 69 00 c0 44 69 00 |.bss.....Di..Di.|

Может кто-то знает как их дизасемблить правильно ??
Возможно существует какой-то другой дизасемблер для VxWorks ???
Ядро Wind 2.6
OS: VxWorks 5.5.1




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 05 сентября 2008 11:58
· Личное сообщение · #2

Может кто-то знает как их дизасемблить правильно ??

Обычным Linux отладчиком типа, LineIce, GDB

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




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

Создано: 05 сентября 2008 16:32
· Личное сообщение · #3

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




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 05 сентября 2008 21:42
· Личное сообщение · #4

ядро обычно в виде ram образа, что б запить в память и сделать jmp. Тебе надо выяснить куда это загружается (адрес) и потом загрузить образ в иду как binary и создать сегменты.



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

Создано: 05 сентября 2008 22:13
· Личное сообщение · #5

а откуда тогда узнать смещения сегментов ???
Возможно есть какие-то инструменты для дизасемлирования ВхВорксовских файлов ?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 06 сентября 2008 08:24
· Личное сообщение · #6

Просто так, из воздуха, инфу не достать, т.к. общего ответа нету. Весь газенваген компилиццо на компе (host) под конкретную плату. Образ втыкается прямо в ram при отладке, ну а потом пишется загрузчик.

Найди загрузчик и data sheet для проца. В последнем выясни что выполняет силикон при выходе из reset-a - от туда пройди несколько шагов.

Что у тебя из инфы есть?



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

Создано: 10 сентября 2008 22:25
· Личное сообщение · #7

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

Задача вот какая стоит, есть 2 ящика, в сервера, на одном мотороловский проецсор и армовская арзитектура, на втором пентиум. Известно что там вхворкс как ос. Есть доступ по ФТП, а также консоль админосвкая, очень бедная без возможностей отладки и т.д....
На одном я нашел команду которая дала админовскую консоль, на втором не могу... есть доступ по ФТП с которого можно вытянуть бинарники.

Нужно как-то приконектиться дебагером к этим процесам, посмотреть дизасемблерный код и т.д..зделать некоторый анализ.
Возможно на втором сервере и нету тулз для отладки и самого шела, может ядром не предусмотрено чтобы юзеры получали полный доступ ???? А возможно подгрузить отладчик на такую машину ?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 11 сентября 2008 03:10 · Поправил: s0larian
· Личное сообщение · #8

elektronik2000, эээ, очень общие вопросы... Обычно motorola-based boards с embedded OS отлаживаются через JTAG с компа. То есть, нужен кусок железа - hw debugger и софт к нему. Железо цапояется к плате через JTAG, реализация которого в силиконе. В старых vmworks вообще нету user/kernel разделения, весь код работает в supervisor mode, нету процессов, нету загрузки кода, только потоки. Отлаживать этот софт можно только через jtag.

P.S. motorola cpu будет с 68K или PowerPC core, а не arm.



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

Создано: 11 сентября 2008 20:10
· Личное сообщение · #9

интерестно....
получаеться что если купить www.corelis.com/products/Test_Software.htm
и подконектить напрямую к серверу то можно будет просмотреть регистры,ставить бряки и т.д. ?????
а как приконектить ???
есть ЮСБ и КОМ порт, через них ??

На втором серваке пентиум3, может к нему можно приконектиться как...
Я вот что подумал, есть же доступ по ФТП, может возможно залить какой-то дебагер а потом его запускать?

Большое спасибо за ответы, это хоть дало толчек к дальнейшим поискам, а то вот в тупик зашел




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 11 сентября 2008 21:28
· Личное сообщение · #10

Эта, ты програмишь по-работе или реверсишь?

У тебя исходники всего кода есть? Если да, то вот чем я пользовался на работе:

J-TAG отладчик/модуль - дорогая цаца, цепляется к плате:
www.ghs.com/products/probe.html
www.ghs.com/products/slingshot.html

Комерческий отладчик, разговаривает с Slingshot по USB:
www.ghs.com/products/MULTI_IDE_2.html

Это всё достаточно просто настоить имея все спецификации и сев с железячником над схемами Если ж ты реаерсишь, то инструмент тебе не получить, так что смотри data sheet проца и ram/rom image в IDA.



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

Создано: 12 сентября 2008 21:18
· Личное сообщение · #11

спасибо большое за ссылки.
Это я реверсю по роботе)

а если нету исходных кодов ??
то можно с помощю этих девайсов отлаживать в асемблерном коде ?
как с гдб, или в отлаживаешь сишный код или асемблерный ....




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 12 сентября 2008 21:21
· Личное сообщение · #12

Конечно можно, но надо знать где код, где flash/rom... Короче нужен memory map и data sheet проца. Плюс schematics платы.



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

Создано: 12 сентября 2008 22:43
· Личное сообщение · #13

а с бинарников его вытянуть можно ? есть же полный доступ к файловой системе?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 14 сентября 2008 06:00 · Поправил: s0larian
· Личное сообщение · #14

Задавай конкретные вопросы, а то это всё выливается в "научите реверситть" тему...



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

Создано: 15 сентября 2008 17:19
· Личное сообщение · #15

schematics это схема ?

откуда можно взять эту информацию ? документация только юзерская, нету никакой технической...
но к серверу есть доступ через ФТП, я могу одтуда скачать все что угодно, любой бинарник, возможно ли с него вытянуть этуинформацию ?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 16 сентября 2008 06:23
· Личное сообщение · #16

schematics это логическая схема (то есть не разводка платы). От этого зависит что именно читает проц при выходе из reset. Memory map - это таблица областей в адресном пространстве, показывающая где лежит какая перефирия. Код пишется/компилется на основе этих двух вещей + data sheet проца.



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

Создано: 16 сентября 2008 10:21
· Личное сообщение · #17

Судя по заголовкам, исполнимый код будет в секции .text - сравни заголовки двух бинарников, где-то в районе описания секции .text может лежать и ее смещение в самом файле - там и говори ИДЕ, что это код. Физические адреса возможно удастся вычислить по командам переходов и чтения/записи памяти.



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

Создано: 17 сентября 2008 18:56
· Личное сообщение · #18

на счет дебагера...
на одном из серверов есть програмный.. грзуишся под юзерским акаунтом, переходишь к суперюзеру (команда есть в терминале) и можно запустить дебагер.
на другом же нету возможности перейти в режим супер юзера, только юзер...
возможно вообще получить акакут суперюзера ? в тех документацыи нету никаких команд, для него... могли они удалить шел суперюзера ??



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

Создано: 19 сентября 2008 22:41
· Личное сообщение · #19

немного разобрался, этот файл действительно образ ядра, вопрос остаеться только в том как с него можно вытянуть асемблерный код ?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 20 сентября 2008 08:54 · Поправил: s0larian
· Личное сообщение · #20

Ёлки, тебе надо понять вот что:
- есть ли там секции
- если да, то в каком формате и загрузить каждую секцию в свой IDA segment
- если нет, то по какому адресу он грузится и сделать IDA segment

P.S. судя по первым байтам, в начале файла таблица секций песец. Выкладывай файл.



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

Создано: 30 сентября 2008 17:59
· Личное сообщение · #21

я б сразу так зделал... но НДА




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 30 сентября 2008 21:28
· Личное сообщение · #22

elektronik2000, так енто, тебе надо руками загрузить секции и потом написать загрузчик. Выкладывай файл, кудесник.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 26 октября 2008 14:32
· Личное сообщение · #23

elektronik2000
ха. похоже ты нас пытаешься ломать/реверсить


 eXeL@B —› Основной форум —› VxWorks kernel
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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