eXeL@B —› Основной форум —› Поиск CRC |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 05 февраля 2006 22:44 · Личное сообщение · #1 Кто как ищет функцию которая считает CRC. Ща в мня полетят камни. CreateFile, ReadFile. Это понятно и не очень сложно когда вся прога- один екзешник. А вот представте что у неё 10-20 длл-ок и несколько из них защищены CRC. ReadFile происходит сотни, а то и тысячи раз. F5 топтать замучишся. А если CRC считается не всего файла, а лишь важных участков кода. Давайте делиться своими наработками и приёмами. |
|
Создано: 07 апреля 2006 15:34 · Личное сообщение · #2 |
|
Создано: 07 апреля 2006 15:45 · Личное сообщение · #3 elraton извини конечно, но это по меньшей мере ламерство. Для каждой программы CRC своё, и вычисляется по своему. Да, CRC можно подменить, если полностью разобрать алгоритм его вычисления для конкретной программы. Но это дело никак нильзя поставить напоток, разве что для конкретной версии. ----- Yann Tiersen best and do not fuck |
|
Создано: 07 апреля 2006 15:50 · Личное сообщение · #4 |
|
Создано: 07 апреля 2006 16:16 · Личное сообщение · #5 [Прострация] CRC называется так потому, что алгоритм CRC 16/32 практически единственный, который позволяет быстро вычислить контрольную сумму файла. [Реальность] Я еще не видел ни одной программы, в которой бы использовался алгоритм CRC в оригинальном исполнениии. Поэтому, давая рекомендации по поводу обхода CRC, я бы не опирался на сам алгоритм CRC. ----- Yann Tiersen best and do not fuck |
|
Создано: 07 апреля 2006 16:26 · Личное сообщение · #6 |
|
Создано: 07 апреля 2006 16:31 · Личное сообщение · #7 |
|
Создано: 07 апреля 2006 17:09 · Личное сообщение · #8 PE_Kill пишет: дайт линк на такую прогу, интересно посмотреть. В аттаче, это плагин к PEiD. 823d_07.04.2006_CRACKLAB.rU.tgz |
|
Создано: 07 апреля 2006 20:08 · Личное сообщение · #9 PE_Kill топик заметил случайно идея родилась давно еще при ковырянии интеловых биосов. я там тогда не знал размер блока crc которого считается, соотвественно не мог рассчитать новое crc просле правки. а потом я подумал - а чего это я высаживаюсь? берем блок первые 4кб от "низа", считаем crc, если !=0, берем следующий блок и т.д... затем правим байты, которые хотели исправить, и дописываем "компненсирующие" байтики, чтобы значение crc не изменилось ;) то есть я предлагаю не отламывать механизм проверки CRC, и не пересчитывать оригинальное CRC файла, а... добавлять "корректирующие" байты, чтобы CRC не изменилось. допустим, мы имеет ключевой файл (в нем CRC не храниться), его заглатывает программа (пусть для определенности удаленный сервер), что нам делать, если мы хотим модифицировать этот файл?! ведь не ломать же сервер, да? да очень просто! мы добавляем "корректирующие" байты в результате чего CRC модифицированного файла _НЕ_МЕНЯЕТСЯ__ и этот механизм пригоден не тольо для стандартных CRC16/32. цифровую подпись так, конечено, уже не взломаешь, но... просто хотил лишний раз обратить внимание народа на широко известный, но почему-то упускаемый из виду факт. CRC страхует только от случайных искажений. если антивирус проверяет целосность файлов по CRC, место ему на помойке... |
|
Создано: 07 апреля 2006 20:13 · Поправил: Bad_guy · Личное сообщение · #10 |
|
Создано: 07 апреля 2006 20:25 · Личное сообщение · #11 Bad_guy там ссылки были. находится _очень_ быстро. чуть-чуть медленнее чем считается само CRC32 для MD5 все значительно сложнее, но MD5 не везде.... это, кстати, еще одна монта в компилку "что лучше CRC или MD5" raton - это мыщъх. самец. по испански. souriz - это уже по француски nezumi - по японски а еще есть mauz и topo )) вот такой я многоликий зверь ;) сейчас домик в греции уже присмотрел ;) буду учить греческий и мигрировать ;) |
|
Создано: 07 апреля 2006 20:30 · Личное сообщение · #12 |
|
Создано: 07 апреля 2006 20:50 · Поправил: intty · Личное сообщение · #13 все верно. есть плагин для пеида, который позволяет рассчитать и записать корректирующие байты. по поводу того, что писал PE_Kill - писать с умным видом, то, в чем не уверен, как раз и есть ламерство. Я еще не видел ни одной программы, в которой бы использовался алгоритм CRC в оригинальном исполнениии живой пример: когда отламываем бинарники от DrWeb они в результате распакованные и патченые. Когда пытаемся делать апдейт баз, апдейтер(патченый) помимо обновления баз пытается переписать и себя и сканер.(тоже патченый). Хотя версия например таже. Как я поступал: апдейтер загружает первым делом текстовик, где идет списочек файлов и их црц32 контрольные суммы, копируем его куда-нибудь, пока не удалил. потом вышеназванным плагином, просто меняем црц32 у патченных бинарников. И они не перезаписываются при обновлении баз! |
|
Создано: 07 апреля 2006 21:06 · Личное сообщение · #14 Вот код от RElf'а для нахождения корректирующих байт ;) #include<stdio.h> unsigned long c,c2,p2,pol=0xEDB88320; long n,k; main() { printf("CRC32 Adjuster (c) 2001 by RElf @ HHT/2\n"); printf("Length of data: "); scanf("%ld",&n); printf("Offset to patch: "); scanf("%ld",&k); n = (n-k)<<3; 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); } |
|
Создано: 08 апреля 2006 09:11 · Личное сообщение · #15 |
<< . 1 . 2 . |
eXeL@B —› Основной форум —› Поиск CRC |