|
Вопрос # 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. Правда это не так быстро, но...
В лучшем случае ищеться коллизия. Коллизия - это когда два разных текста дают один и тот же хеш. И в результате надо перебирать не всё, а лишь часть. Почитайте ещё и ещё что он пишет. Конечно, прямо так для Вас он решение не напишет (этикет не позволит), но вот всё для этого там будет.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|