Лечим Zip архив

Наверное каждому из нас хотя бы раз приходилось сталкиваться с одной маленькой или большой это кому как угодно проблемой. Проблема заключалась в том , что после закачивания какого нибуть Zip архива , при попытке его распаковать , архиватор выдавал типа . Ладно если файл маленький, а если 120 мегабайт ? Вот досада ! Ниже я приведу пример позволяющий все же извлечь файл(ы) из архива. Предупрежу сразу, этот вариант может работать и с другими архиваторами , а с другой стороны может не работать и с Zip , это уж как повезет.

И так маленькая информационная справка: CRC - контрольная сумма - считается архиватором для проверки правильности запаковки данных, а так же проверяется при распаковке. Контрольная сумма может считаться разными способами , начиная от простой суммы, заканчивая хитрыми алгоритмами, позволяющими восстановить не правильно переданные данные. CRC - хранится в самом файле архива и записывается либо в конец файла либо в начало ( зависит от формата(типа) упаковщика). Выше приведенный текст должен натолкнуть читающего на мысль . В правильном направлении идем товарищи ! Для этой операции нам потребуется какой нибуть HEX редактор. Мой выбор пал на HIEW. И так опишу последовательность действий.
1)Надо узнать какую контрольную сумму хочет получить архиватор. На моем примере, мне WinZip Self Extractor , говорил такую фразу при распаковке . Из чего следует что: Сумма записанная в файле : 517A76FE Реальная сумма: 23AC449B
2)И так выяснив все что нам надо приступим: Путь bad.exe - самораспаковывающийся архив. Делаем: hiew.exe bad.exe Меняем режим на HEX. Заходим в поиск. Ищем HEX FE767A51. После того как нашли необходимо убедится реально то что вы нашли контрольная сумма или это данные запакованного файла. Посмотрите рядом с найденными данными, если радом есть имя файла (который в архиве), то это контрольная сумма. Меняем ее : Вместо fe - 9b, 76 - 44, 7a - ac, 51 - 23. Сохраняем результат.
3)Повторим пункт 2. Потому эта контрольная сумма может храниться в нескольких местах.

Вот и все. Еще раз повторяю что этот способ может не сработать ! У меня сработал . Таким макаром я восстановил из мертвых один 120 меговый файл.

Эта статья предназначена только для ознакомительных целей. Ни в коем случае не реализовывайте на практике то, что Вы прочитаете, так как Вы несете полную ответственность за свои поступки в соответствии с действующим законодательством. Я не отвечаю за достоверность информации и не несу ответственности за Ваши поступки!  Все что вы делаете, вы делаете на свой страх и риск!!!