Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Неизвестный аппаратный алгоритм защиты
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Loran
Здравствуйте уважаемые господа.
Существует устройство на базе 32-битного процессора + FPGA Altera + 32 - битная ПЗУ. ПЗУ имеет защиту загрузочной области (1Мб) от модификации, контроль проходит на аппаратном уровне (FPGA) и похоже по принципу нулевого остатка (принцип BIOS), при несовпадении контрольной суммы девайс просто блокирует адресную шину и процессор пере запускается посредством срабатывания сторожевого таймера.
Есть несколько прошивок ПЗУ с отличием в 9 байт, где 4 - это именно корректирующие байты. Пробовал массу вариантов, но увы...
Скажите, есть-ли какой либо алгоритм для решения моей проблемы: определение алгоритма подсчета контрольной суммы.
Спасибо.
SM
Цитата(Loran @ Nov 29 2009, 18:27) *
Скажите, есть-ли какой либо алгоритм для решения моей проблемы: определение алгоритма подсчета контрольной суммы.

Есть. Терморектальный. Применять к разработчику устройства.
Других нету, так как все сводится к реверсу прошивки ПЛИС, а средств для этого нет. Ну и перебор всех возможных полиномов для подсчета CRC, всех возможных вариантов суммирования, XOR-енья, и прочего извращения над данными, что скорее всего не реально по затратам времени.
Loran
Увы, но вы подтвердили мои опасения, спасибо.
dvladim
Готового рецепта нет, но можно попробовать наиболее вероятные варианты.
Имеет смысл попробовать CRC32 со стандартными полиномами. Прямыми и зеркальными. С различной инициализацией FFFFFFFF и 0. Шансы невелики, но полный перебор нереален.
Loran
В самом ПЗУ организованы еще алгоритмы защиты, но уже програмные и они не относятся к первому мегабайту, вот их я с товарищем победил. Для первого мегабайта испробовал массу вариантов с использованием стандартных полиномов (ну те которые нашел), плюс варианты содержания начального и конечного буфера.
Сейчас пытаюсь определить одно значение таблицы ARRAYCRC, но возможно это зря. Можно попробовать написать программу с перебором полинома, но пока еще не понял сам принцип и требования при его выборе (ну просто знаний маловато, да и косность ума).
Спасибо откинувшимся.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.