| Сейчас на форуме: bartolomeo, asfa, _MBK_, Adler (+7 невидимых) | 
| eXeL@B —› Вопросы новичков —› CRC32 | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 11 декабря 2011 21:24  · Личное сообщение · #1 Есть простая задача - создать файл размером 4 байта с заданным CRC32. Для этого можно использовать PEiD - плагин CRC32 натравить на пустой файл и ввести необходимое значение CRC. Однако таких файлов будет ~20k ![]() В сети ничего готового не нашел (fakecrc не подходит). Есть желание переделать для своих целей этот алгоритм: Code: 
 Буду благодарен за любую помощь. ![]()  | 
| 
 | 
Создано: 11 декабря 2011 21:46 · Поправил: Yuri4850  · Личное сообщение · #2 Насколько я понимаю, "Current CRC32", n и k в моем случае равны 0. Соответственно строки 9, 12 - 14 пропускаю. Беру файл в четыре байта ( 69 12 36 С6 ), созданный пейдом, с CRC32 83D3E67B. Беру 83D3E67B в качестве "Desired CRC32" и прогоняю через алгоритм. На выходе, естественно, получаю байты 7B E6 D3 83 ![]() Что я делаю не так? ![]()  | 
| 
 | 
Создано: 11 декабря 2011 23:51  · Личное сообщение · #3 Обычно CRC считают по схеме CRC32 = NOT CalcCRC32(<DATA>,0xFFFFFFFF) Code: 
 P.S. извините за корявый код, это с мясом выдрано из одного проекта. ![]()  | 
| 
 | 
Создано: 11 декабря 2011 23:55 · Поправил: mysterio  · Личное сообщение · #4  | 
| 
 | 
Создано: 12 декабря 2011 01:03  · Личное сообщение · #5  | 
| 
 | 
Создано: 12 декабря 2011 01:27  · Личное сообщение · #6  | 
| 
 | 
Создано: 12 декабря 2011 01:34  · Личное сообщение · #7  | 
| 
 | 
Создано: 12 декабря 2011 07:01 · Поправил: PE_Kill  · Личное сообщение · #8 Yuri4850 твой случай является частным для теории CRC. Поэтому найти Msg32 под Crc32 - фактически найти делимое по остатку, а тот факт, что при делении не применяются переносы бит, вообще всё сводит к сдвигу бит и их перексориванию. Вот побитовый алгоритм: Code: 
 Результат: Data for CRC32(C6361269): BD CF 25 8B Алгоритм можно преобразовать в табличный, для высокой скорости подсчета. ----- Yann Tiersen best and do not fuck ![]()  | 
| 
 | 
Создано: 13 декабря 2011 01:17  · Личное сообщение · #9 Всем спасибо, получилось-таки. Если кому интересно, вот вариант на VB  :Code: 
 ![]()  | 
| eXeL@B —› Вопросы новичков —› CRC32 | 









:
 Для печати