Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Если разрешены все 256 возможных значений байтов, то... 30.05.06 01:01 Число просмотров: 3434
Автор: RElf <M> Статус: Member Отредактировано 30.05.06 01:02 Количество правок: 2
|
> Есть значение crc32, надо подобрать строчку с таким же > crc32. > Где-то писали что с помощью 6 символом можно такое сделать > для любого crc32.
Если разрешены все 256 возможных значений байтов, то достаточно изменить значения 4-х байтов для подгонки crc32 под требуемую. Вот соответствующий код:
#include<stdio.h>
#include<stdint.h>
uint32_t c,c2,p2,pol=0xEDB88320;
size_t n,k;
main() {
printf("CRC32 Adjuster 1.1 (c) 2001,06 by RElf\n");
printf("Length of data: "); scanf("%ld",&n);
printf("Offset to patch: "); scanf("%ld",&k);
n = (n-k)*8;
printf("Current CRC32: 0x"); scanf("%x",&c);
printf("Desired CRC32: 0x"); scanf("%x",&c2);
c ^= c2;
p2 = (pol << 1) | 1;
while(n--) if(c&0x80000000) c = (c<<1)^p2; else c<<=1;
printf("XOR masks: %02X %02X %02X %02X\n", c&0xff, (c>>8)&0xff, (c>>16)&0xff, c>>24);
}
|
- reversing crc32 - lse 29.05.06 12:41 [2269]
- Если разрешены все 256 возможных значений байтов, то... - RElf 30.05.06 01:01 [3434]
|
|
|