Как подделывают CRC16-32

       

>>> Врезка как это было


Подделкой CRC мыщъх заинтересовался совершенно случайно. Все началось с экспериментов над Интеловскими биосами, формат прошивок которых был неизвестен и всякая попытка модификации приводила к краху с воплем о неправильном CRC. Вот только найти место хранения CRC никак не удавалось. Границы контролируемого блока были так же неизвестны. Казалось, что дело труба, но…

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

Достижение нуля сигнализирует о том, что границы контролируемого блока с той или иной степенью вероятности уже найдены. Модифицируем BIOS по своему желанию, после чего добавляем "корректирующие" байты так, чтобы контрольная сумма не изменялась, то есть осталось равной нулю!

Таким образом, чтобы "взломать" CRC, помимо алгоритма расчета еще необходимо знать откуда и до куда его считать! В противном случае попытка подделки контрольной суммы будет немедленно разоблачена!



Содержание раздела