Easyelectronics.ru

Электроника для всех
Текущее время: 18 авг 2019, 14:15

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 16:55 
Заглядывает иногда

Зарегистрирован: 17 ноя 2014, 13:48
Сообщения: 85
Всем привет,

ковыряю программку CanDoo на .NET, она использует CAN адаптер, в котором, видимо, стоит чип FT245 к которому подключен какой-то CAN-контроллер или микроконтроллер с CAN.

Вложение:
ft_245.png
ft_245.png [ 34.12 Кб | Просмотров: 388 ]


Адаптера в руках нет, так что не заглянуть. Используется библиотека D2XX_Unit_NET. Честь сообщений отправляется командой F417:

CAN_Seed_Request("F417 0710 01 02 27 05 00 00 00 00")

И в ней виден и CAN ID, и данные. Но большая часть сообщений отправляется командами вида:

MPI_Send("F1 99", false);

И MPI_Send, и CAN_Seed_Request разбивают переданную строку на байты и скармливают D2XX_Unit_NET.FT_Write_Bytes(D2XX_Unit_NET.FT_Handle, ref lpvBuffer, 1, ref num);

Я посмотрел описание нескольких чипов FTDI, но команды типа F199 там в протоколах и близко нет, вероятно, всетаки, что команды передаются внешнему контроллеру.

Команд разных посылается много: F100 F212 F201 F202 F234 F221 F211 F24B F234 F247 FD50 FD52 FD53 F401 F400 F450 F403 F198 F199 F195 F526 F508 F504 F503 F502 F510

И большинство из них отправляют какие-то сообщения CAN.

Тут можно было бы опустить руки, но в одном месте заливается EEPROM в адаптер, я его выковорял.

К сожалению, на взгляд прошивку сложно увязать с командами. Но, возможно, кто-то узнает контроллер по прошивке? Можно было бы тогда ее IDA скормить.

С уважением,
Александр


Вложения:
_eeprom.txt [248.91 Кб]
Скачиваний: 103
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 17:30 
Заглядывает иногда

Зарегистрирован: 17 ноя 2014, 13:48
Сообщения: 85
На всякий случай в бинарник конвертнул, но таблицы векторов не видать -- понять бы хоть, что за адресное пространство


Вложения:
eeprom.zip [13.78 Кб]
Скачиваний: 16
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 17:57 
Заглядывает иногда

Зарегистрирован: 17 ноя 2014, 13:48
Сообщения: 85
Неплохая штука смотреть неизвестные прошивки: https://binvis.io/#/view/local


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 18:05 
Заглядывает иногда

Зарегистрирован: 25 сен 2017, 10:57
Сообщения: 165
Откуда: Украина
А почему вы думаете что в EEPROM должна находится прошивка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 18:47 
Заглядывает иногда

Зарегистрирован: 17 ноя 2014, 13:48
Сообщения: 85
Есть подозрение, что это флеш микроконтроллера:

public static void load_flash()
{
MyProject.Forms.Form1.Status.Text = (MyProject.Forms.Form1.Flavor != "CDP") ? "Loading Flash to SBT Hardware..." : "Loading Flash to CanDoo Hardware...";
Trace.WriteLine("Start Load Flash");
Trace.Flush();
if (MyProject.Forms.Form1.Flavor == "CDP")
{
Interaction.MsgBox("Warning: New flash is about to be uploaded to the CanDoo Hardware. YOU MUST DISCONNECT ANY VEHICLE CONNECTED! Failure to do so will render your hardware useless and it will have to be sent in for repair! Do not disconnect device while update is in progress", MsgBoxStyle.ApplicationModal, null);
}
else
{
Interaction.MsgBox("Warning: New flash is about to be uploaded to the SBT Hardware. YOU MUST DISCONNECT ANY VEHICLE CONNECTED! Failure to do so will render your hardware useless and it will have to be sent in for repair! Do not disconnect device while update is in progress", MsgBoxStyle.ApplicationModal, null);
}

Но я не вижу стандартных хвостов библиотек C в бинарнике, не вижу повторяющихся адресов, не вижу таблицы векторов прерываний.

Код:
  1890 (00)   2992 (01)   1054 (02)   1699 (03)    654 (04)    160 (05)    601 (06)   1109 (07)    116 (08)     95 (09)    755 (0A)     58 (0B)     96 (0C)    539 (0D)   7212*(0E)    634 (0F)
   870 (10)    676 (11)   1005 (12)    584 (13)    802 (14)    943 (15)    489 (16)    480 (17)    522 (18)     71 (19)     67 (1A)     36 (1B)     85 (1C)    815 (1D)     28 (1E)     16 (1F)
  1036 (20)    208 (21)    174 (22)     82 (23)     92 (24)     69 (25)     23 (26)     26 (27)     19 (28)     18 (29)    221 (2A)    178 (2B)     36 (2C)     18 (2D)    629 (2E)     21 (2F)
   158 (30)     38 (31)     56 (32)     36 (33)     27 (34)     53 (35)     63 (36)    105 (37)     15 (38)     17 (39)     14 (3A)     67 (3B)     25 (3C)     22 (3D)     39 (3E)     81 (3F)
    85 (40)     57 (41)     28 (42)    544 (43)    521 (44)     72 (45)    212 (46)     86 (47)     66 (48)     50 (49)    550 (4A)    148 (4B)     23 (4C)     30 (4D)     25 (4E)     27 (4F)
   708 (50)    316 (51)     25 (52)     37 (53)    265 (54)     28 (55)     27 (56)     14 (57)    488 (58)     73 (59)     23 (5A)     16 (5B)     67 (5C)    126 (5D)      8 (5E)    407 (5F)
   157 (60)    637 (61)     13 (62)     29 (63)    173 (64)     27 (65)     41 (66)     32 (67)     43 (68)     84 (69)    962 (6A)   3772 (6B)     32 (6C)     38 (6D)    925 (6E)   3722 (6F)
    19 (70)     20 (71)     20 (72)     21 (73)     26 (74)     23 (75)     16 (76)     35 (77)     33 (78)     15 (79)     15 (7A)     16 (7B)     63 (7C)    258 (7D)    481 (7E)     15 (7F)
   195 (80)     62 (81)    274 (82)     26 (83)     43 (84)     73 (85)    144 (86)    310 (87)    204 (88)     33 (89)     67 (8A)     27 (8B)    453 (8C)    275 (8D)    115 (8E)     17 (8F)
   263 (90)    578 (91)    598 (92)     19 (93)     39 (94)     20 (95)     26 (96)     22 (97)    568 (98)    468 (99)     32 (9A)     71 (9B)   1075 (9C)      7 (9D)     78 (9E)      3 (9F)
    30 (A0)     10 (A1)    450 (A2)      7 (A3)     19 (A4)     13 (A5)    288 (A6)      9 (A7)     23 (A8)     19 (A9)     79 (AA)      6 (AB)     11 (AC)     15 (AD)     10 (AE)      7 (AF)
    57 (B0)      7 (B1)     20 (B2)      5 (B3)    207 (B4)      5 (B5)     18 (B6)      5 (B7)    298 (B8)      6 (B9)    105 (BA)      4 (BB)     12 (BC)     11 (BD)     11 (BE)      9 (BF)
   584 (C0)     12 (C1)      2 (C2)    171 (C3)      4 (C4)     10 (C5)      9 (C6)     15 (C7)     24 (C8)     19 (C9)      9 (CA)      7 (CB)      7 (CC)      4 (CD)     10 (CE)     58 (CF)
   586 (D0)     19 (D1)     13 (D2)     12 (D3)     62 (D4)    101 (D5)    133 (D6)    903 (D7)    315 (D8)    260 (D9)     25 (DA)      8 (DB)     14 (DC)      2 (DD)     12 (DE)     12 (DF)
   898 (E0)    766 (E1)     65 (E2)    134 (E3)      7 (E4)    578 (E5)      5 (E6)     14 (E7)    629 (E8)    175 (E9)    209 (EA)     19 (EB)   5088*(EC)     12 (ED)     12 (EE)    894 (EF)
  6222*(F0)     62 (F1)    244 (F2)    396 (F3)    172 (F4)     20 (F5)     11 (F6)     16 (F7)     87 (F8)    252 (F9)      9 (FA)      8 (FB)     39 (FC)      8 (FD)    665 (FE)    287 (FF)


Тупая частотка по байтам выделяет F0, 0E, EC. Если шифрование и есть, то какой-то XOR по короткой (до 16 байт) последовательности...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 18:59 
Заглядывает иногда

Зарегистрирован: 25 сен 2017, 10:57
Сообщения: 165
Откуда: Украина
Я в иду загрузил бинарник, выбрал AVR, и что-то ида понаходила.
Вложение:
eeprom.7z [73.46 Кб]
Скачиваний: 15


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 19:08 
Заглядывает иногда

Зарегистрирован: 17 ноя 2014, 13:48
Сообщения: 85
А какие настройки процессора? Вообще непохоже, чтобы какой-то даже XOR был:

Вложение:
strange.png
strange.png [ 110.43 Кб | Просмотров: 343 ]


У меня древняя какая-то IDA, не открывается :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 17 май 2019, 20:00 
Заглядывает иногда

Зарегистрирован: 25 сен 2017, 10:57
Сообщения: 165
Откуда: Украина
Настройки все оставлял по умолчанию, (AT90s8515), ида 7.0.170914.
....Немного допилил файл, выглядит осмыслено.
.... Судя по размеру файла, возможно чип ATmega128.
Вложение:
eeprom.7z [175.09 Кб]
Скачиваний: 13


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 18 май 2019, 14:50 
Заглядывает иногда

Зарегистрирован: 17 ноя 2014, 13:48
Сообщения: 85
Спасибо, но не очень осмысленным кажется. Хотя мог бы быть AT90CAN128 - похож на Atmega 128 :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 19 май 2019, 00:53 
Заглядывает иногда

Зарегистрирован: 16 сен 2018, 10:41
Сообщения: 124
Бинарник больше похож на прошивку FPGA, а не микроконтроллера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Узнать контроллер по прошивке
СообщениеДобавлено: 19 май 2019, 05:02 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4186
Откуда: Кемеровская область, Киселевск
Опять воровство.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB