Цитата yurfed:
Отчего же? Распаковка с правильным CRC, это как раз то, что мы и добиваемся при помощи правильного пароля. »
|
CRC нужна только для того, чтобы понять, что распаковался мусор и сообщить об этом (я вначале процитировал винрар
![Wink](images/smilies/wink.gif)
). Если ты в момент сравнения контрольной суммы полученного с ожидаемым направишь программу по другой ветке (а для этого даже не надо подменять CRC - достаточно просто изменить оператор перехода на противоположный - типа вместо "Переход если ноль" установить "Переход если НЕ ноль" - один байт кода), то... Ну скажет тебе архиватор "Ок, я все распаковал, забирай", ну и заберешь ты мусор
Я не знаю алгоритм работы винрара. Я просто предположил, как это должно быть. Кстати, контрольная сумма архивированного файла хранится в заголовке. Легкое движение шестнадцатеричным редактором - и оп-па, правильный пароль уже не подходит
![Smile](images/smilies/new/smile.gif)
Т.е. подходить-то он подходит, но РАР считает, что получил ерунду и ругается на ошибку.
Можно, конечно, ради интереса не дать рару стереть неверно расшифрованный файл и посмотреть, что там внутри - но смысла в этом никакого нет.
Да, винрар, прежде чем сказать, что пароль неверный, сначала распаковывает файл полностью. Вопрос: если пароль хранится в заголовке, то зачем распаковывать полностью гигабайтный файл? Из вредности?
![Wink](images/smilies/wink.gif)