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

kardanium

Начинающий
  • Постов

    3
  • Зарегистрирован

  • Посещение

Информация о kardanium

Информация

  • Город
    Вулканешты
  • Имя
    Андрей
  • Страна
    Moldova

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения kardanium

Новичок

Новичок (1/3)

0

Репутация

  1. Таблица "экспорта" с адресами функций находится по адресу 0x080002EC. Номер, начиная от нуля - 9 (расчет CRC). По номеру 7 располагается адрес функции, возвращающей серийник. Она просто возвращает значение, хранящееся по адресу 0x08000180. По адресу 0x08000184 располагается один большой массив, первые два значения которого используются в некоторых махинациях с серийником и расчетом CRC. Я еще пока не разобрался досконально. Кто знает, что за серийник такой A70099 ?
  2. К серийнику во FLASH (который располагается под таблицей векторов прерываний, по адресу 0x08000180) обращается только загрузчик. В загрузчике есть таблица функций, которыми активно пользуется рабочая прошивка. То есть, рабочая прошивка вызывает специальную функцию загрузчика, передавая ей номер функции и аргумент для нее в виде указателя. Эта специальная функция берет адрес нужной функции из таблицы по ее номеру и вызывает ее, передавая ей аргумент. Среди этих функций я нашел одну, которая возвращает серийник, читая его с того самого вышеупомянутого адреса. А так же нашел функцию расчета контрольной суммы. Декомпилированный код алгоритма во вложении. BOOT_API_CrcCalc.c
  3. По адресу 0x08000180 действительно располагается значение 0x00A78730. Ниже него уже располагается код. А выше него (адрес 0x0800017С) значение 0x080002CD. Это указатель куда-то в код загрузчика. Сама же прошивка разбита на две основные части: С адреса 0x08000000 начинается код загрузчика. С адреса 0x08004000 начинается код рабочей прошивки. Остальное пока разбираю
×
  • Создать...