Всё началось с того, что перестали устанавливаться скачанные с торрентов репаки игр. Углубление в проблему показало, что не
ставятся только те репаки, в которых использован FreeArc для сжатия данных. Обычно процесс распаковки прерывается одной из
следующих ошибок:
- Заголовок "srep". Архив повреждён;
- Заголовок "IsDone.dll". Unarc.dll вернул код ошибки -7: архив повреждён;
- Заголовок "IsDone.dll". Unarc.dll вернул код ошибки -12: несхождение контрольных сумм.
Открывая файл (как правило, data.bin в репаках) стандартным клиентом FreeArc я вижу дерево файлов, но успешно могу
разархивировать только часть из них. При попытке разархивировать остальные программа просто закрывается.
Я пытался решить проблему, постепенно отсекая причины, которые не могли вызвать ошибку:
1) Первое, что бросается в глаза: наверное, действительно "архив повреждён". Но я проверял работу со многими разными репаками
(около десятка) в том числе с теми, что уже успешно были установлены на других компьютерах. Идентичность файлов сверял по
SHA-1 хэшу.
2) Я заподозрил неполадки с оперативной памятью, проверил. Одна планка и в самом деле оказалась битой, но её удаление не
помогло.
3) Я поставил свежие библиотеки Unarc.dll и IsDone.dll в system32 и зарегестировал их в системе командой regsvr32. Не спасло.
Проверял даже до и после регистрации файлов. Кроме того, раньше в system32 этих файлов не было вообще, как они могли
возвращать какой-то код ошибки?
4) Наконец, я просто запаковывал и распаковывал обратно файлы при помощи FreeArc на своём компьютере и не смог воспроизвести
ошибку снова. Правда, файлы я использовал небольшие.
5) Ещё я подметил, что впервые столкнулся с проблемой около месяца назад, до этого всё было в порядке. Значит, система и
конфигурация железа врял ли виновны.
Надеюсь услышать мнение, чем подобное может быть вызвано, я уже устал искать ответ. Заранее извиняюсь, если подобный вопрос
уже был: в интернете он встречается очень часто, а конкретно в этой теме уже 110 страниц.
Любопытно, что на форумах можно найти много людей, решивших эту проблему совершенно "шаманскими" способами. Дело в том, что
ошибка возникает в случайный момент, и может так случиться, что не возникнет вообще за всё время установки (но файлы
распакуются не все). Тогда, вероятно, пользователь думает: "Баг у становкой я победил, а игра сама по себе у меня не идёт".
Ещё забавный факт: репаки для релиза на торрентах как правило создаются при помощи связки Inno Setup + FreeArc, из-за чего
получается своеобразный "бич пирата" - глюк, который возникает только у любителей халявы. [/more]