Архив задач

2013 [11] RAR

В результате анализа перехваченного сетевого трафика с компьютера Пятачка, Винни Пух обнаружил файл, который подозрительно похож на zip-архив. Архив intercept.zipоказался защищен паролем и содержит один единственный файл. Винни Пух считал Пятачка своим лучшим другом и поэтому очень сильно хотел узнать, что Пятачок может от него скрывать. Помогите Винни Пуху прочитать содержимое файла защищённого паролем архива, если известно, что:

1.      Пятачок при создании файла использовал клавиатуру, на которой присутствуют только цифры от 0 до 9 включительно.

2.      Для проверки целостности файлов zip архив использует алгоритм CRC32, реализация которого приведена ниже, где:

        data – указатель на буфер с данными длиной length, для которых считается результат работы алгоритма CRC32.

        возвращаемое значение – результат работы алгоритма CRC32

 

unsignedintcrc32(unsigned char*data, intlength)

{

     unsigned m_crc32;

     unsigned table[256];

     const unsigned CRC_POLY = 0xEDB88320;

     unsigned i, j, r;

     for (i = 0; i < 256; i++)

     {

     for (r = i, j = 8; j; j--)

          r = r & 1? (r>> 1) ^ CRC_POLY: r >> 1;

     table[i] = r;

     }

     m_crc32 = 0;

 

     const unsigned CRC_MASK = 0xD202EF8D;

     unsignedcrc = m_crc32;

     while (length--)

     {

     crc = table[(unsigned char)(crc) ^ *data++] ^ crc>> 8;

     crc ^= CRC_MASK;

     }

     return crc;

}