Как заразить, не изменяя CRC? Использовать сжатие? Впихиваться в регулярные последовательности? В алигны? В заголовок?%) Какие идеи по этому поводу?
Есть идея, но похорошему необходимо с самим алгоритмом CRC разбираться. Топорный вариант простого перебора, только терпением на 7 мин. запастись нужно. Код (Text): .data ; строка DataString выполняет роль упакованого зараженного файла, к которому для сохранения размера нужно ;добавить 4 любых байта, т. е. переменная после cтроки ext DataString db 'igogo ogogo crc',0 ;crc 0FD59B8Dh если ext==0 ext dd 0 ;для того чтобы CRC был равен 0AAAAAAAAh ext должен быть равен 0CB81754Ch .code .repeat ;в этом цикле происходит подбор нужного значения ext ;RtlComputeCrc32 - это функция экспортируется из ntdll.dll invoke RtlComputeCrc32,NULL,offset DataString,sizeof DataString+4 inc ext .break .if ZERO? .until eax==0AAAAAAAAh ;допустим у неупакованого и не зараженного файла такой CRC ;хотя я это число от балды взял dec ext ;всё готово ret
Я этот код ещё немного улучшил. У меня на ноутбуке с процесором 1,9 ГГц теперь на это затрачивается 3 минуты, но самое главное что теперь это не зависит от размера зараженного файла. 3 минуты конечно многовато.
Вообще говоря бесперспективное занятие обычно контролируется пара длина и CRC так что довески с CRC=0 изменят длину
s_d_f Ну и толку то ? Авер считает размер файла без гиперпространства и CRC, хоть ты весь день колупая толку нуль.
идей нету - затея бесперспективная теоретически туже длину и сумму может иметь какойнить мусор но не код
Зная конкретный CRC алгоритм, можно как-то вычислить байты, к-е надо дописать к файлу. Об этом еще КК писал. Можно и не дописывать, а просто несколько свободных байт заменить другими. Так размер останется неизменным. А вообще в основном MD5 пользуются для контроля целостности, а не CRC.