Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 223

/ вопрос открыт /

Здравствуйте, эксперты!
Помогите в следующем вопросе. Необходимо подделать CRC32 файла (можно даже с дописыванием 4-х байт в конец). Изучил много про CRC, но вот организовать подделку не получается. Почитал Криса Касперского, но споткнулся в примере на unsigned long tmp = crc32(0, i) и z = crc32f(z, x[k]), а где брать crc32() и crc32f() там не рассказано.
Так что помогите, если можете, получить эти четыре байта, которые можно поставить в конец измененного файла так, чтоб CRC32 оказалось равным CRC32 исходного (не измененного) файла. Как вычислить само CRC32 я знаю.
Заранее благодарю.

Светлов Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Светлов (статус: Посетитель)
Вопрос отправлен: 23 сентября 2009, 16:14
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 23 сентября 2009, 16:36; участников в обсуждении: 1.
Вадим К

Вадим К (статус: Академик), 23 сентября 2009, 16:36 [#1]:

Оставим этический аспект вопроса в стороне.
В целом, в общем случае хеш (а crc есть тоже хешем!) проектируется так, что бы изменение одного бита в исходном сообщении приводило к значимым изменениям хеша (значимое - приблизительно половина бит хеша). Поэтому в идеале такая "подделка" может быть реализована только полным перебором.
Но у crc32 есть один недостаток - он короткий ( то есть, реально перебрать все варианты) и если к тексту добавим новые байты, то хеш результата не зависит от того, какой был текст, а только от его crc.
Именно на это и намекает Крис. В самом простом случае просто делается перебор всех возможных значений нового байта и результирующего crc. Правда это не так быстро, но...
В лучшем случае ищеться коллизия. Коллизия - это когда два разных текста дают один и тот же хеш. И в результате надо перебирать не всё, а лишь часть. Почитайте ещё и ещё что он пишет. Конечно, прямо так для Вас он решение не напишет (этикет не позволит), но вот всё для этого там будет.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:25
Выполнено за 0.02 сек.