|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 18, 2004 20:03:58 Все знают, что если поменять хотя бы 1 бит данных, то значение crc сильно меняется. Так вот некоторые программы для проверки своей целостности выделяют 2/4 байта в себе под значения crc. И когда считают эту хешу перепрыгивают через те байты. Можно ли выдумать алгоритм, которые посчитает crc файла с этими байтами. Ессено кроме тотального перебора, тем более не факт, что и он сможет подобрать. |
|
|
Дата: Июн 18, 2004 20:05:37 Можно ли выдумать алгоритм, которые посчитает crc файла с этими байтами. 8-/ Можно. В алгоритме их не перепрыгивай. |
|
|
Дата: Июн 18, 2004 20:24:11 · Поправил: dShell Да но они ведь то же влияют на crc! Тут типа crc (пусть это == 80 80 80 80 h) посчитан и дописан в конец файла: some_data_АААА crc("some_data_") == "АААА" а теперь мы посчитаем те самые 4 байта (какие еще не изветсно :-) ), то есть уже в зависимости от этого crc (пусть == 81 81 81 81h). some_data_ББББ crc("some_data_ББББ") == "ББББ" а именно: типа вначале был бинарик: ХХ ХХ ХХ ХХ ... ХХ crc от него == 12 34 56 78 если к нему прибавить какие-то 4 байта (которые после станут crc НОВОГО бинарика) то всё круто )) ХХ ХХ ХХ ХХ ... ХХ YY YY YY YY crc("ХХ ХХ ХХ ХХ ... YY YY YY YY") = YY YY YY YY Мне надовсего лишь найти те игриковые 4 байта. |
|
|
Дата: Июн 18, 2004 20:27:52 Да как же так можно объяснять проблему? Мать-перемать, я щаз взвою. Ты скажи, ЧЕГО ТЕБЕ НАДО? Тебе надо подправить байтики в файле так, чтобы CRC остался тем же самым? Это возможно. Или что-то еще? Я ни звезды понять не могу! |
|
|
Дата: Июн 18, 2004 20:37:16 · Поправил: dShell задача: есть строка байт строка = [что-то там..][X][что-то там еще..] где X - 32-битное число как найти такое X, чтобы выполнялось X = CRC(строка) |
|
|
Дата: Июн 18, 2004 20:58:29 Оно ? |
|
|
Дата: Июн 18, 2004 21:02:28 утилита для коррекции подобных случаев: http://reng.ru/board/viewtopic.php?t=1637&highlight=crc&sid=9eef4f19b84639e56a121a8c391ba1ea а вот тут я даже не стану притворяться, что много понял :( http://reng.ru/board/viewtopic.php?t=1700&highlight=crc&sid=9eef4f19b84639e56a121a8c391ba1ea Теорию чисел учить надо :( |
|
|
Дата: Июн 18, 2004 21:04:49 · Поправил: dShell bogrus неа. это я и сам могу написать. мне нужен предполседний пост volodya Пасибо, а теория чисел нужна :-) дабы через 3 месяца будет. Будем писать. |
|
|
Дата: Июн 18, 2004 21:41:41 То есть нада чтобы crc( bytes_1 + CRC + bytes_2) = CRC ??? Если так, то по-моему далеко не для каждых пар bytes_1 и bytes_2 такое число найдется. Зато проверить мона все-таки не перебором а матикой. Или я вообще не про то подумал? ;) |
|
|
Дата: Июн 18, 2004 21:51:35 · Поправил: dShell B_108 Правильно подумал. Конечно не для каждой пары. Но можно оптимизировать перебор до 5 минут :-) crc считается последовательно (байт за байтом) ==> будем пихать его значение в зад файла, а length(bytes_2) = 0. Таким образом сводим задачу к перебору 2^32 числа :-( |
|
|
Дата: Июн 18, 2004 21:56:44 dShell Конечно не для каждой пары. Но можно оптимизировать перебор до суток :-) оптимизировать что ? ведь не всегда же такое возможно, а bytes_1 и bytes_2, как я понимаю, менять же нельзя ? если нельзя, тогда можно рассчитать CRC от этих кусочков и написать более оптимизированный вариант, когда у тебя есть crc(bytes_1),CRC_X,crc(bytes_2) думаю все будет довольно быстро а вообще, лучше сразу у RElf'а спросить :) думаю он все разъяснит |
|
|
Дата: Июн 18, 2004 22:02:40 Х=CRC(5A84E58D[8DE765A0]5A84E58D)=8DE765A0 Я правильно понял , что если например вместо 5A поставить 5B , то потом нужно найти новый Х ? |
|
|
Дата: Июн 18, 2004 22:08:22 если нельзя, тогда можно рассчитать CRC от этих кусочков И что ты потом будешь с ними делать? :) Складывать? :) |
|
|
Дата: Июн 18, 2004 22:37:50 volodya так продолжить можно с любого места, конечно же, я имел в виду то, что придется переписать немного саму ф-цию расчета CRC, тобишь одной ф-ций расчета CRC32(buf,len) не обойдешься |
|
|
Дата: Июн 18, 2004 22:38:49 Русский народ простых путей не ищет :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.079 |